add cminus.l

This commit is contained in:
2025-10-03 14:06:47 +09:00
parent 844f29a803
commit bd5426c709

View File

@@ -23,33 +23,43 @@ whitespace [ \t]+
%% %%
"if" {return IF;} "if" {return IF;}
"then" {return THEN;}
"else" {return ELSE;} "else" {return ELSE;}
"end" {return END;} "while" {return WHILE;}
"repeat" {return REPEAT;} "return" {return RETURN;}
"until" {return UNTIL;} "int" {return INT;}
"read" {return READ;} "void" {return VOID;}
"write" {return WRITE;}
":=" {return ASSIGN;} "=" {return ASSIGN;}
"=" {return EQ;} "==" {return EQ;}
"!=" {return NE;}
"<" {return LT;} "<" {return LT;}
"<=" {return LE;}
">" {return GT;}
">=" {return GE;}
"+" {return PLUS;} "+" {return PLUS;}
"-" {return MINUS;} "-" {return MINUS;}
"*" {return TIMES;} "*" {return TIMES;}
"/" {return OVER;} "/" {return OVER;}
"(" {return LPAREN;} "(" {return LPAREN;}
")" {return RPAREN;} ")" {return RPAREN;}
"[" {return LBRACE;}
"]" {return RBRACE;}
"{" {return LCURLY;}
"}" {return RCURLY;}
";" {return SEMI;} ";" {return SEMI;}
"," {return COMMA;}
{number} {return NUM;} {number} {return NUM;}
{identifier} {return ID;} {identifier} {return ID;}
{newline} {lineno++;} {newline} {lineno++;}
{whitespace} {/* skip whitespace */} {whitespace} {/* skip whitespace */}
"{" { char c; "/*" { char now, prev;
do do
{ c = input(); { now = input();
if (c == EOF) break; if (now == EOF) break;
if (c == '\n') lineno++; else if (now == '\n') lineno++;
} while (c != '}'); else if (now == '/' && prev == '*') break;
prev = now;
} while (1);
} }
. {return ERROR;} . {return ERROR;}