jackalc/nodes.py
josh 1661d11c8f initial skeleton parser with simple driver
git-svn-id: svn://anubis/jackalc/trunk@2 2d0ce1a6-f80c-425e-916c-c881d0336438
2010-09-14 20:18:58 +00:00

52 lines
1.1 KiB
Python

# 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