summaryrefslogtreecommitdiff
path: root/Lexer.l
diff options
context:
space:
mode:
authorNagi5Yeq <wu@x-nagi.com>2020-05-31 17:49:34 +0800
committerNagi5Yeq <wu@x-nagi.com>2020-05-31 17:49:34 +0800
commitc2c6e5c7e620c32e7f420e8b9ac21df8855b444c (patch)
treec790ec3650c2f6caed9b59b304bc6a8bbdef1da8 /Lexer.l
parent4a5bc55769804d003d6cd9f8c16eefb76bb53d1b (diff)
support for extern functions
Diffstat (limited to 'Lexer.l')
-rw-r--r--Lexer.l4
1 files changed, 3 insertions, 1 deletions
diff --git a/Lexer.l b/Lexer.l
index d3e6f29..861806d 100644
--- a/Lexer.l
+++ b/Lexer.l
@@ -46,7 +46,7 @@ char_value {trival_char}|{escaped_char}|{hex_char}|{oct_char}|\\'
char '{char_value}'
string '{char_value}+'
-identifier [a-z][0-9a-z_]*
+identifier [a-z_][0-9a-z_]*
white [\t\f\r ]
@@ -64,6 +64,7 @@ white [\t\f\r ]
":=" {return Parser::make_ASSIGN(loc);}
":" {return Parser::make_COLON(loc);}
";" {return Parser::make_SEMICOLON(loc);}
+"..." {return Parser::make_DOTDOTDOT(loc);}
".." {return Parser::make_DOTDOT(loc);}
"." {return Parser::make_DOT(loc);}
"," {return Parser::make_COMMA(loc);}
@@ -99,6 +100,7 @@ white [\t\f\r ]
"end" {return Parser::make_ENDS(loc);}
"program" {return Parser::make_PROGRAM(loc);}
"function" {return Parser::make_FUNCTION(loc);}
+"extern" {return Parser::make_EXTERN(loc);}
"var" {return Parser::make_VAR(loc);}
"const" {return Parser::make_CONST(loc);}
"type" {return Parser::make_TYPE(loc);}