diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-08-15 21:41:29 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-08-15 21:41:29 +0300 |
| commit | bad9ab7479d66dfdb1c8e2d18c23fbcff9ec394b (patch) | |
| tree | d43dd3a26685c9adc8201dfe1a4035418175c1eb /src/lexer.l | |
| parent | 5ffc39352ef0195697953e9318b8a17c79e7ae84 (diff) | |
| download | ek-bad9ab7479d66dfdb1c8e2d18c23fbcff9ec394b.tar.gz ek-bad9ab7479d66dfdb1c8e2d18c23fbcff9ec394b.zip | |
updates to syntax
Diffstat (limited to 'src/lexer.l')
| -rw-r--r-- | src/lexer.l | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/lexer.l b/src/lexer.l index c30e802..ac8ed67 100644 --- a/src/lexer.l +++ b/src/lexer.l @@ -40,6 +40,7 @@ DECF [+-]?[0-9]+[.]([eE]?[+-]?[0-9]+)?[fF]? FLOAT {HEXF}|{DECF}|inf|nan ID [_a-zA-Z][_a-zA-Z0-9]* +APPLY {ID}[[:space:]]*! STRING \"(\\.|[^"\\])*\" @@ -60,8 +61,8 @@ STRING \"(\\.|[^"\\])*\" "*"+ {} [^/*\n]+ {} - [/] {} - \n {} + [/] {} + \n {} } "::" {return SCOPE;} @@ -119,6 +120,7 @@ STRING \"(\\.|[^"\\])*\" return INT; } +"?" {return QUESTION;} "'" {return SQUOTE;} "&" {return AND;} @@ -178,6 +180,7 @@ STRING \"(\\.|[^"\\])*\" "define" {return DEFINE;} "break" {return BREAK;} "continue" {return CONTINUE;} +"default" {return DEFAULT;} {STRING} { /* seems risky, I know, but letting the parser choose when to allocate a @@ -201,6 +204,15 @@ STRING \"(\\.|[^"\\])*\" return ID; } +{APPLY} { + /* strip trailing '!' */ + char *s = yytext + strlen(yytext); + s[-1] = '\0'; + + yylval->str = yytext; + return APPLY; +} + [[:space:]]+ {/* skip whitespace */} |
