Source code for enaml.core.enaml_ast

#------------------------------------------------------------------------------
#  Copyright (c) 2011, Enthought, Inc.
#  All rights reserved.
#------------------------------------------------------------------------------
[docs]class ASTNode(object): """ The base Enaml AST node. Attributes ---------- lineno : int The line number in the source code that created this node. """ def __init__(self, lineno): self.lineno = lineno def __repr__(self): return self.__class__.__name__ def __str__(self): return repr(self)
[docs]class Module(ASTNode): """ An AST node representing an Enaml module. Attributes ---------- doc : str The module's documentation string. body : list A list of ast nodes comprising the body of the module. """ def __init__(self, body, lineno): super(Module, self).__init__(lineno) self.body = body
[docs]class Python(ASTNode): """ An AST node representing a chunk of pure Python code. Attributes ---------- py_ast : ast.AST A Python ast node. """ def __init__(self, py_ast, lineno): super(Python, self).__init__(lineno) self.py_ast = py_ast
[docs]class Declaration(ASTNode): """ An AST node representing an Enaml declaration. Attributes ---------- name : str The name of the declaration. base : str The name of the base type. identifier : str The local identifier to use for instances of the declaration. doc : str The documentation string for the declaration. body : list A list of AST nodes that comprise the body of the declaration. """ def __init__(self, name, base, identifier, doc, body, lineno): super(Declaration, self).__init__(lineno) self.name = name self.base = base self.identifier = identifier self.doc = doc self.body = body
[docs]class Instantiation(ASTNode): """ An AST node representing a declaration instantiation. Attributes ---------- name : str The name of declaration being instantiated. identifier : str The local identifier to use for the new instance. body : list A list of AST nodes which comprise the instantiation body. """ def __init__(self, name, identifier, body, lineno): super(Instantiation, self).__init__(lineno) self.name = name self.identifier = identifier self.body = body
[docs]class AttributeDeclaration(ASTNode): """ An AST node which represents an attribute declaration. Attributes ---------- name : str The name of the attribute being declared. type : str A string representing the type of the attribute, or None if no type was given. If None the attribute can be of any type. default : AttributeBinding or None The default binding of the attribute, or None if no default is provided. is_event : boolean Whether or not this declaration represents an event. i.e. was declared with 'event' instead of 'attr'. """ def __init__(self, name, type, default, is_event, lineno): super(AttributeDeclaration, self).__init__(lineno) self.name = name self.type = type self.default = default self.is_event = is_event
[docs]class AttributeBinding(ASTNode): """ An AST node which represents an expression attribute binding. Attributes ---------- name : str The name of the attribute being bound. binding : BoundExpression The BoundExpression ast node which represents the binding. """ def __init__(self, name, binding, lineno): super(AttributeBinding, self).__init__(lineno) self.name = name self.binding = binding
[docs]class BoundExpression(ASTNode): """ An ast node which represents a bound expression. Attributes ---------- op : str The name of the operator that will perform the binding. expr : Python A Python ast node that reprents the bound expression. """ def __init__(self, op, expr, lineno): super(BoundExpression, self).__init__(lineno) self.op = op self.expr = expr