ps2/1: finish scanner
This commit is contained in:
+17
-2
@@ -12,13 +12,15 @@
|
||||
%option array
|
||||
%option yylineno
|
||||
|
||||
WHITESPACE [ \t\v\r\n]
|
||||
WHITESPACE [ \v\t\n\r]
|
||||
COMMENT \/\/[^\n]+
|
||||
QUOTED \"([^\"\n]|\\\")*\"
|
||||
NUMERIC ^[0-9]+$
|
||||
BINDING ^[a-zA-Z]+[a-zA-Z0-9_]*$
|
||||
|
||||
%%
|
||||
{WHITESPACE}+ { /* Eliminate whitespace */ }
|
||||
{COMMENT} { /* Eliminate comments */ }
|
||||
{WHITESPACE}+ { /* Eliminate whitespace */ }
|
||||
{QUOTED} { return STRING_TOKEN; }
|
||||
|
||||
/*
|
||||
@@ -39,5 +41,18 @@ QUOTED \"([^\"\n]|\\\")*\"
|
||||
*/
|
||||
|
||||
/* All other chars get returned as single char tokens */
|
||||
{func} { return FUNC; }
|
||||
{var} { return VAR; }
|
||||
{return} { return RETURN; }
|
||||
{print} { return PRINT; }
|
||||
{println} { return PRINTLN; }
|
||||
{if} { return IF; }
|
||||
{else} { return ELSE; }
|
||||
{while} { return WHILE; }
|
||||
{break} { return BREAK; }
|
||||
{and} { return AND; }
|
||||
{or} { return OR; }
|
||||
{NUMERIC} { return NUMBER_TOKEN; }
|
||||
{BINDING} { return IDENTIFIER_TOKEN; }
|
||||
. { return yytext[0]; }
|
||||
%%
|
||||
|
||||
Reference in New Issue
Block a user