diff options
author | Flavian Kaufmann <flavian@flaviankaufmann.ch> | 2025-05-20 10:29:33 +0200 |
---|---|---|
committer | Flavian Kaufmann <flavian@flaviankaufmann.ch> | 2025-05-20 10:29:33 +0200 |
commit | 3829a704150a06b2767d542b39179377a592da0f (patch) | |
tree | 316a1e01f3306d717739e6d73b25f5215c2cf8f0 /lexer.l | |
parent | cc383b7b2d89f05b724460b4d5cb385525911671 (diff) | |
download | imp-3829a704150a06b2767d542b39179377a592da0f.tar.gz imp-3829a704150a06b2767d542b39179377a592da0f.zip |
folder structure
Diffstat (limited to 'lexer.l')
-rw-r--r-- | lexer.l | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/lexer.l b/lexer.l deleted file mode 100644 index c9aaff0..0000000 --- a/lexer.l +++ /dev/null @@ -1,47 +0,0 @@ -%option noyywrap yylineno - -%{ -#include "parser.tab.h" -%} - -DIGIT [0-9] -IDENT [A-Za-z][A-Za-z0-9]* -WHITESPACE [ \t\r\n]+ - -%% - -"skip" { return TOKEN_SKIP; } -"if" { return TOKEN_IF; } -"then" { return TOKEN_THEN; } -"else" { return TOKEN_ELSE; } -"end" { return TOKEN_END; } -"while" { return TOKEN_WHILE; } -"do" { return TOKEN_DO; } - -"(" { return TOKEN_LEFT_PARENTHESIS; } -")" { return TOKEN_RIGHT_PARENTHESIS; } -";" { return TOKEN_SEMICOLON; } -":=" { return TOKEN_ASSIGN; } - -"+" { return TOKEN_PLUS; } -"-" { return TOKEN_MINUS; } -"*" { return TOKEN_MULTIPLY; } - -"or" { return TOKEN_OR; } -"and" { return TOKEN_AND; } -"not" { return TOKEN_NOT; } - -"=" { return TOKEN_EQUALS; } -"#" { return TOKEN_NOT_EQUALS; } -"<=" { return TOKEN_LESS_EQUAL; } -"<" { return TOKEN_LESS_THAN; } -">=" { return TOKEN_GREATER_EQUAL; } -">" { return TOKEN_GREATER_THAN; } - -{DIGIT}+ { yylval.num = atoi(yytext); return TOKEN_NUMERAL; } -{IDENT} { yylval.id = strdup(yytext); return TOKEN_IDENTIFIER; } - -{WHITESPACE} { } -. { fprintf(stderr, "Unknown char: %s\n", yytext); } - -%% |