🐐 Aeternum loops
This commit is contained in:
@@ -3,6 +3,7 @@ from rply import LexerGenerator
|
||||
valid_characters = '|'.join(list("abcdefghiklmnopqrstvxyz_"))
|
||||
|
||||
keyword_tokens = [("KEYWORD_"+i, i) for i in [
|
||||
"AETERNVM",
|
||||
"ALVID",
|
||||
"AVT",
|
||||
"DEFINI",
|
||||
|
||||
@@ -121,6 +121,11 @@ class Parser():
|
||||
def dum(tokens):
|
||||
return ast_nodes.DumStatement(tokens[1], tokens[4])
|
||||
|
||||
# AETERNVM is sugar for `DVM FALSITAS` — same AST, no observable difference.
|
||||
@self.pg.production('dum_statement : KEYWORD_AETERNVM KEYWORD_FACE SYMBOL_LCURL statements SYMBOL_RCURL')
|
||||
def aeternvm(tokens):
|
||||
return ast_nodes.DumStatement(ast_nodes.Bool(False), tokens[3])
|
||||
|
||||
@self.pg.production('per_statement : KEYWORD_PER id KEYWORD_IN expression KEYWORD_FACE SYMBOL_LCURL statements SYMBOL_RCURL')
|
||||
def per(tokens):
|
||||
return ast_nodes.PerStatement(tokens[3], tokens[1], tokens[6])
|
||||
|
||||
Reference in New Issue
Block a user