From a426e25c1783e0c63aa97df203b7671a4631da8d Mon Sep 17 00:00:00 2001 From: Fredrik Robertsen Date: Sat, 14 Feb 2026 12:51:51 +0100 Subject: [PATCH] ps2/1: finish scanner --- ps2/src/scanner.l | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/ps2/src/scanner.l b/ps2/src/scanner.l index 27c3ac1..a63475e 100644 --- a/ps2/src/scanner.l +++ b/ps2/src/scanner.l @@ -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]; } %%