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