✨
This commit is contained in:
@ -8,12 +8,12 @@ class Parser():
|
||||
self.pg = ParserGenerator(
|
||||
[i[0] for i in ALL_TOKENS],
|
||||
precedence=[
|
||||
('left', ["KEYWORD_SET", "SYMBOL_SET", "KEYWORD_IF", "KEYWORD_MAYBE", "KEYWORD_RETURN"]),
|
||||
('left', ["KEYWORD_SET","KEYWORD_IF", "KEYWORD_MAYBE", "KEYWORD_RETURN"]),
|
||||
('left', [ "KEYWORD_BECAUSE", "KEYWORD_UNTIL", "KEYWORD_DEFINE", "KEYWORD_AS"]),
|
||||
('left', ["KEYWORD_DO", "BUILTIN"]),
|
||||
('left', ["SYMBOL_EQUALS", "SYMBOL_LT","SYMBOL_GT"]),
|
||||
('left', ["SYMBOL_PLUS", "SYMBOL_MINUS", "SYMBOL_OR", "SYMBOL_AND"]),
|
||||
('left', ["SYMBOL_TIMES", "SYMBOL_DIVIDE", "SYMBOL_TILDE"])
|
||||
('left', ["SYMBOL_LCURL", "SYMBOL_TIMES", "SYMBOL_DIVIDE", "SYMBOL_TILDE", "SYMBOL_MOD", "ID"])
|
||||
]
|
||||
)
|
||||
|
||||
@ -78,9 +78,9 @@ class Parser():
|
||||
def command_until(tokens):
|
||||
return ast_nodes.CommandUntil(tokens[0],tokens[2])
|
||||
|
||||
@self.pg.production('command : BUILTIN SYMBOL_LT expressions SYMBOL_GT')
|
||||
@self.pg.production('command : BUILTIN expressions SYMBOL_GT')
|
||||
def command_builtin(tokens):
|
||||
return ast_nodes.Builtin(tokens[0], tokens[2])
|
||||
return ast_nodes.Builtin(tokens[0], tokens[1])
|
||||
|
||||
@self.pg.production('command : SYMBOL_QUOTE ID SYMBOL_QUOTE SYMBOL_LT expressions SYMBOL_GT')
|
||||
def command_call(tokens):
|
||||
@ -129,6 +129,7 @@ class Parser():
|
||||
@self.pg.production('expression : expression SYMBOL_EQUALS expression')
|
||||
@self.pg.production('expression : expression SYMBOL_LT expression')
|
||||
@self.pg.production('expression : expression SYMBOL_GT expression')
|
||||
@self.pg.production('expression : expression SYMBOL_MOD expression')
|
||||
def exp_a_binop(tokens):
|
||||
return ast_nodes.ExpABinop(tokens[1].value,tokens[0],tokens[2])
|
||||
|
||||
|
Reference in New Issue
Block a user