test 14
This commit is contained in:
parent
7d5787c84c
commit
619ea2c03f
8 changed files with 23 additions and 9 deletions
14
src/lexer.l
14
src/lexer.l
|
|
@ -14,7 +14,7 @@
|
||||||
^[ \t]*#.*\n { /* Ignore comment-only lines */ }
|
^[ \t]*#.*\n { /* Ignore comment-only lines */ }
|
||||||
|
|
||||||
|
|
||||||
^[ \t]* {
|
^[ \t]+ {
|
||||||
int col = indent_stack.calculateColumn(yytext, yyleng);
|
int col = indent_stack.calculateColumn(yytext, yyleng);
|
||||||
auto action = indent_stack.updateIndentation(col);
|
auto action = indent_stack.updateIndentation(col);
|
||||||
|
|
||||||
|
|
@ -39,6 +39,8 @@ in { return yy::parser::token::TOK_KW_IN; }
|
||||||
not { return yy::parser::token::TOK_KW_NOT; }
|
not { return yy::parser::token::TOK_KW_NOT; }
|
||||||
and { return yy::parser::token::TOK_KW_AND; }
|
and { return yy::parser::token::TOK_KW_AND; }
|
||||||
or { return yy::parser::token::TOK_KW_OR; }
|
or { return yy::parser::token::TOK_KW_OR; }
|
||||||
|
pass { return yy::parser::token::TOK_KW_PASS; }
|
||||||
|
else { return yy::parser::token::TOK_KW_ELSE; }
|
||||||
|
|
||||||
\=\= { return yy::parser::token::TOK_EQ; }
|
\=\= { return yy::parser::token::TOK_EQ; }
|
||||||
\!\= { return yy::parser::token::TOK_NE; }
|
\!\= { return yy::parser::token::TOK_NE; }
|
||||||
|
|
@ -47,6 +49,16 @@ or { return yy::parser::token::TOK_KW_OR; }
|
||||||
\<\= { return yy::parser::token::TOK_LTE; }
|
\<\= { return yy::parser::token::TOK_LTE; }
|
||||||
\>\= { return yy::parser::token::TOK_GTE; }
|
\>\= { return yy::parser::token::TOK_GTE; }
|
||||||
\= { return yy::parser::token::TOK_ASSIGN; }
|
\= { return yy::parser::token::TOK_ASSIGN; }
|
||||||
|
\+\= { return yy::parser::token::TOK_PLUS_ASSIGN; }
|
||||||
|
\-\= { return yy::parser::token::TOK_MINUS_ASSIGN; }
|
||||||
|
\*\= { return yy::parser::token::TOK_MULTIPLY_ASSIGN; }
|
||||||
|
\/\= { return yy::parser::token::TOK_DIVIDE_ASSIGN; }
|
||||||
|
\%\= { return yy::parser::token::TOK_MODULO_ASSIGN; }
|
||||||
|
\&\= { return yy::parser::token::TOK_BIT_AND_ASSIGN; }
|
||||||
|
\|\= { return yy::parser::token::TOK_BIT_OR_ASSIGN; }
|
||||||
|
\^\= { return yy::parser::token::TOK_BIT_XOR_ASSIGN; }
|
||||||
|
\<\<\= { return yy::parser::token::TOK_LSHIFT_ASSIGN; }
|
||||||
|
\>\>\= { return yy::parser::token::TOK_RSHIFT_ASSIGN; }
|
||||||
\+ { return yy::parser::token::TOK_PLUS; }
|
\+ { return yy::parser::token::TOK_PLUS; }
|
||||||
\- { return yy::parser::token::TOK_MINUS; }
|
\- { return yy::parser::token::TOK_MINUS; }
|
||||||
\* { return yy::parser::token::TOK_MULTIPLY; }
|
\* { return yy::parser::token::TOK_MULTIPLY; }
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,8 @@
|
||||||
%token <std::string> IDENTIFIER
|
%token <std::string> IDENTIFIER
|
||||||
%token <std::string> STRING
|
%token <std::string> STRING
|
||||||
%token <int> NUMBER
|
%token <int> NUMBER
|
||||||
%token ASSIGN PLUS MINUS L_PAREN R_PAREN COLON EQ NE LT GT LTE GTE MULTIPLY DIVIDE MODULO L_BRACKET L_BRACE R_BRACKET R_BRACE DOT SEMICOLON COMMA BIT_NOT BIT_AND BIT_OR BIT_XOR LSHIFT RSHIFT
|
%token ASSIGN PLUS MINUS L_PAREN R_PAREN COLON EQ NE LT GT LTE GTE MULTIPLY DIVIDE MODULO L_BRACKET L_BRACE R_BRACKET R_BRACE DOT SEMICOLON COMMA BIT_NOT BIT_AND BIT_OR BIT_XOR LSHIFT RSHIFT PLUS_ASSIGN MINUS_ASSIGN MULTIPLY_ASSIGN DIVIDE_ASSIGN MODULO_ASSIGN BIT_AND_ASSIGN BIT_OR_ASSIGN BIT_XOR_ASSIGN LSHIFT_ASSIGN RSHIFT_ASSIGN
|
||||||
%token KW_DEF KW_IF KW_RETURN KW_FOR KW_IN KW_NOT KW_AND KW_OR
|
%token KW_DEF KW_IF KW_RETURN KW_FOR KW_IN KW_NOT KW_AND KW_OR KW_PASS KW_ELSE
|
||||||
%token EOF NEWLINE INDENT DEDENT
|
%token EOF NEWLINE INDENT DEDENT
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ IDENTIFIER c
|
||||||
COLON
|
COLON
|
||||||
NEWLINE
|
NEWLINE
|
||||||
INDENT
|
INDENT
|
||||||
IDENTIFIER pass
|
KW_PASS
|
||||||
NEWLINE
|
NEWLINE
|
||||||
DEDENT
|
DEDENT
|
||||||
EOF
|
EOF
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
STRING "line\nbreak"
|
STRING "line\nbreak"
|
||||||
|
NEWLINE
|
||||||
STRING 'quote\'test'
|
STRING 'quote\'test'
|
||||||
|
NEWLINE
|
||||||
STRING "unicode ☃ snowman"
|
STRING "unicode ☃ snowman"
|
||||||
NEWLINE
|
NEWLINE
|
||||||
EOF
|
EOF
|
||||||
Loading…
Add table
Add a link
Reference in a new issue