示例#1
0
文件: ast.py 项目: stasm/l20n
class Entity(Entry):
    id = pyast.field(Identifier)
    index = pyast.seq(Expression, null=True)
    value = pyast.field(Value, null=True)
    attrs = pyast.dict(Attribute, null=True)
    local = pyast.field(bool, default=False)

    def _template(self):
        return "<%(id)s %(value)s>"
示例#2
0
        class Entity(ast.Node):
            _debug = True
            id = ast.field(str)
            value = ast.field(Value, null=True)

            @property
            def _template(self):
                if self.value:
                    return '<%(id)s %(value)s>'
                return '<%(id)s>'
示例#3
0
        class Value(ast.Node):
            content = ast.field(str)

            _template = '"%(content)s"'

            def __repr__(self):
                content = self.content.replace('"', '\\"')
                return super(Value, self).__repr__(fields={'content': content})
示例#4
0
文件: ast.py 项目: stasm/l20n
class Expander(Node):
    expression = pyast.field(Expression)
示例#5
0
文件: ast.py 项目: stasm/l20n
class VariableExpression(Expression):
    id = pyast.field(Identifier)
示例#6
0
文件: ast.py 项目: stasm/l20n
class ImportStatement(Statement):
    uri = pyast.field(String)
示例#7
0
        class Value(ast.Node):
            content = ast.field(str)

            @property
            def _template(self):
                return '"%(content)s"'
示例#8
0
文件: ast.py 项目: stasm/l20n
class Attribute(KeyValuePair):
    local = pyast.field(bool, default=False)
示例#9
0
文件: ast.py 项目: stasm/l20n
class BinaryOperator(Operator):
    token = pyast.field(
        ("==", "!=", "<", "<=", ">", ">=", "+", "-", "*", "/", "%"))
示例#10
0
文件: ast.py 项目: stasm/l20n
class UnaryExpression(Expression):
    operator = pyast.field(UnaryOperator)
    argument = pyast.field(Expression)
示例#11
0
文件: ast.py 项目: stasm/l20n
class CallExpression(MemberExpression):
    callee = pyast.field(Expression)
    arguments = pyast.seq(Expression, null=True)
示例#12
0
文件: ast.py 项目: stasm/l20n
class BinaryExpression(Expression):
    operator = pyast.field(BinaryOperator)
    left = pyast.field(Expression)
    right = pyast.field(Expression)
示例#13
0
文件: ast.py 项目: stasm/l20n
class ConditionalExpression(Expression):
    test = pyast.field(Expression)
    consequent = pyast.field(Expression)
    alternate = pyast.field(Expression)
示例#14
0
文件: ast.py 项目: stasm/l20n
class LogicalExpression(Expression):
    operator = pyast.field(LogicalOperator)
    left = pyast.field(Expression)
    right = pyast.field(Expression)
示例#15
0
文件: ast.py 项目: stasm/l20n
class Literal(Expression):
    value = pyast.field(int)

    __template = '%(value)s'
示例#16
0
文件: ast.py 项目: stasm/l20n
class LogicalOperator(Operator):
    token = pyast.field(("||", "&&"))
示例#17
0
文件: ast.py 项目: stasm/l20n
class KeyValuePair(Node):
    key = pyast.field(Identifier)
    value = pyast.field(Value)
    _abstract = True
示例#18
0
文件: ast.py 项目: stasm/l20n
class Comment(Entry):
    content = pyast.field(basestring, null=True)

    _template = "/* %(content)s */"
示例#19
0
文件: ast.py 项目: stasm/l20n
class HashItem(KeyValuePair):
    default = pyast.field(bool, default=False)
示例#20
0
 class KVP(ast.Node):
     key = ast.field(str)
     value = ast.field(str)
示例#21
0
文件: ast.py 项目: stasm/l20n
class PropertyExpression(MemberExpression):
    expression = pyast.field(Expression)
    property = pyast.field(Expression)
    computed = pyast.field(bool)
示例#22
0
文件: ast.py 项目: stasm/l20n
class UnaryOperator(Operator):
    token = pyast.field(("-", "+", "!"))
示例#23
0
文件: ast.py 项目: stasm/l20n
class Macro(Entry):
    id = pyast.field(Identifier)
    args = pyast.seq(VariableExpression)
    expression = pyast.field(Expression)
    attrs = pyast.seq(Attribute, null=True)
示例#24
0
文件: ast.py 项目: stasm/l20n
class AttributeExpression(MemberExpression):
    expression = pyast.field(Expression)
    attribute = pyast.field(Expression)
    computed = pyast.field(bool)
示例#25
0
        class Value(ast.Node):
            content = ast.field(str)

            _template = '"%(content)s"'
示例#26
0
文件: ast.py 项目: stasm/l20n
class ParenthesisExpression(Expression):
    expression = pyast.field(Expression)
示例#27
0
        class Entity(ast.Node):
            _debug = True
            id = ast.field(str)
            value = ast.field(str)

            _template = '<%(id)s %(value)s>'
示例#28
0
文件: ast.py 项目: stasm/l20n
class GlobalsExpression(Expression):
    id = pyast.field(Identifier)
示例#29
0
文件: ast.py 项目: stasm/l20n
class Identifier(Expression):
    name = pyast.field(pyast.re('[_a-zA-Z]\w*'))

    _template = "%(name)s"
示例#30
0
文件: ast.py 项目: stasm/l20n
class String(Value):
    content = pyast.field(basestring)

    _template = "\"%(content)s\""