add cminus.l
This commit is contained in:
@@ -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;}
|
||||
|
||||
Reference in New Issue
Block a user