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