This commit is contained in:
bronku 2025-11-25 17:51:42 +01:00
parent 7d5787c84c
commit 619ea2c03f
8 changed files with 23 additions and 9 deletions

View file

@ -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; }

View file

@ -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