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]* {
|
||||
^[ \t]+ {
|
||||
int col = indent_stack.calculateColumn(yytext, yyleng);
|
||||
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; }
|
||||
and { return yy::parser::token::TOK_KW_AND; }
|
||||
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_NE; }
|
||||
|
|
@ -47,6 +49,16 @@ or { return yy::parser::token::TOK_KW_OR; }
|
|||
\<\= { return yy::parser::token::TOK_LTE; }
|
||||
\>\= { return yy::parser::token::TOK_GTE; }
|
||||
\= { 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_MINUS; }
|
||||
\* { return yy::parser::token::TOK_MULTIPLY; }
|
||||
|
|
|
|||
|
|
@ -27,8 +27,8 @@
|
|||
%token <std::string> IDENTIFIER
|
||||
%token <std::string> STRING
|
||||
%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 KW_DEF KW_IF KW_RETURN KW_FOR KW_IN KW_NOT KW_AND KW_OR
|
||||
%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 KW_PASS KW_ELSE
|
||||
%token EOF NEWLINE INDENT DEDENT
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ IDENTIFIER c
|
|||
COLON
|
||||
NEWLINE
|
||||
INDENT
|
||||
IDENTIFIER pass
|
||||
KW_PASS
|
||||
NEWLINE
|
||||
DEDENT
|
||||
EOF
|
||||
|
|
@ -38,4 +38,4 @@ IDENTIFIER g
|
|||
RSHIFT_ASSIGN
|
||||
NUMBER 10
|
||||
NEWLINE
|
||||
EOF
|
||||
EOF
|
||||
|
|
@ -16,4 +16,4 @@ L_BRACKET
|
|||
IDENTIFIER index
|
||||
R_BRACKET
|
||||
NEWLINE
|
||||
EOF
|
||||
EOF
|
||||
|
|
@ -38,4 +38,4 @@ COMMA
|
|||
NUMBER 3
|
||||
R_BRACE
|
||||
NEWLINE
|
||||
EOF
|
||||
EOF
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
STRING "line\nbreak"
|
||||
NEWLINE
|
||||
STRING 'quote\'test'
|
||||
NEWLINE
|
||||
STRING "unicode ☃ snowman"
|
||||
NEWLINE
|
||||
EOF
|
||||
EOF
|
||||
|
|
@ -13,4 +13,4 @@ INDENT
|
|||
KW_PASS
|
||||
NEWLINE
|
||||
DEDENT
|
||||
EOF
|
||||
EOF
|
||||
Loading…
Add table
Add a link
Reference in a new issue