# AST nodes for the Jackal compiler # Author: Josh Holtrop # Date: 2010-09-14 class Node: pass class BinOpNode(Node): def __init__(self, binop, s1, s2): self.binop = binop self.s1 = s1 self.s2 = s2 class ModuleNode(Node): def __init__(self, classes): self.classes = classes class ClassNode(Node): def __init__(self, name, items): self.name = name self.items = items class TypeNode(Node): def __init__(self, name): self.name = name class FunctionNode(Node): def __init__(self, name, parameters, rtype, body): self.name = name self.parameters = parameters self.rtype = rtype self.body = body class BlockNode(Node): def __init__(self, body): self.body = body class VarspecNode(Node): def __init__(self, name, typ): self.name = name self.typ = typ class ReturnNode(Node): def __init__(self, expr): self.expr = expr class ParamNode(Node): def __init__(self, name, typ): self.name = name self.typ = typ