def Identifiers(self, p): if len(p) == 0: return None if len(p) == 4: return Statement.IdentifierList(p[1], Expression.IdentifierExpression(p[2]), p[3]) return Statement.IdentifierList(p[1], Expression.IdentifierExpression(p[2]))
def Stmt(self, p): return Statement.DefinitionStatement(p[0], Expression.IdentifierExpression(p[1]))
def FormalList(self, p): if len(p) == 0: return None if len(p) == 3: return Statement.IdentifierList(p[0], Expression.IdentifierExpression(p[1]), p[2]) return Statement.IdentifierList(p[0], Expression.IdentifierExpression(p[1]))
def Decl(self, p): return Statement.FunctionDeclaration(p[0], Expression.IdentifierExpression(p[1]), p[3], p[6])
def Expr(self, p): return Expression.IdentifierExpression(p[0])
def Expr(self, p): return Expression.FunctionCallExpression(Expression.IdentifierExpression(p[0]), Expression.BlockExpression(p[2]))
def Expr(self, p): return Statement.AssignmentStatement(Expression.IdentifierExpression(p[0]), p[2])