def ret(self, p): return ast.functions.Return( p.expr, location.Location( p.lineno, p.index, eline=p.expr.position.sline, ecol=p.expr.position.ecol, ), )
def variable_assign(self, p): return ast.variables.VariableAssign( p.type_id, p.name_id, p.expr, location.Location( p.type_id.position.sline, p.type_id.position.scol, eline=p.expr.position.sline, ecol=p.expr.position.ecol, ), )
def function_definition(self, p): p.block.label = "entry" return ast.functions.FunctionDefinition( p.type_id, p.name_id, ast.functions.Arguments( positional=ast.functions.PositionalArguments([]), keyword=ast.functions.KeywordArguments([]), ), p.block, location.Location(p.type_id.position.sline, p.type_id.position.scol), )
def ref_id(self, p): return ast.primitives.RefID(p.ID, location.Location(p.lineno, p.index))
def name_id(self, p): return ast.primitives.NameID(p.ID, location.Location(p.lineno, p.index))
def type_id(self, p): return ast.primitives.Type(p.ID, location.Location(p.lineno, p.index))
def expr(self, p): return ast.maths.Mod( p.expr0, p.expr1, location.Location(p.expr0.position.sline, p.expr0.position.scol), )
def expr(self, p): return ast.maths.Neg( p.expr, location.Location(p.expr.position.sline, p.expr.position.scol))
def integer(self, p): return ast.primitives.Integer(p.INT, location.Location(p.lineno, p.index))