Esempio n. 1
0
class Name(Expression):
    token_node = True

    designated_unit = ExternalProperty(type=AnalysisUnit,
                                       uses_entity_info=False,
                                       uses_envs=True)
    result = Property(Self.designated_unit.root.cast(Expression).result)
Esempio n. 2
0
class Literal(Expression):
    token_node = True

    # This one is private, but it is called by "evaluate" so it's not usused
    result = ExternalProperty(uses_entity_info=False, uses_envs=False)

    # See Expression.name
    names = Property(No(T.Name.array))

    evaluate = Property(Self.result, public=True)
Esempio n. 3
0
class Name(Expression):
    token_node = True

    # This one is private and called transitively from a public property
    designated_unit = ExternalProperty(type=AnalysisUnit,
                                       uses_entity_info=False,
                                       uses_envs=False)

    result = Property(Self.designated_unit.root.cast(Expression).result)

    # See Expression.name
    names = Property(Self.singleton)
Esempio n. 4
0
    class FooNode(ASTNode):
        pass

    @abstract
    class AbstractExample(FooNode):
        p = abstract_prop()

    class Example(AbstractExample):
        p = prop() if prop else None

    def lang_def():
        foo_grammar = Grammar('main_rule')
        foo_grammar.add_rules(
            main_rule=Row('example') ^ Example,
        )
        return foo_grammar
    emit_and_print_errors(lang_def)
    print('')


run("Missing type",
    lambda: ExternalProperty())

run("Invalid abstract",
    lambda: ExternalProperty(abstract=True, type=T.FooNode),
    lambda: Property(Self))

run("Invalid memoized",
    lambda: ExternalProperty(memoized=True))
print 'Done'
Esempio n. 5
0
    class AbstractExample(FooNode):
        p = abstract_prop()
        public_p = Property(Self.p, public=True)

    class Example(AbstractExample):
        if prop:
            p = prop()

    grammar = Grammar('main_rule')
    grammar.add_rules(main_rule=Example('example'), )
    emit_and_print_errors(grammar)
    print('')


run('Missing type',
    lambda: ExternalProperty(uses_entity_info=False, uses_envs=False))

run(
    'Invalid abstract', lambda: ExternalProperty(
        abstract=True, type=T.FooNode, uses_entity_info=False, uses_envs=False
    ), lambda: Property(Self))

run(
    'Invalid memoized', lambda: ExternalProperty(
        memoized=True, type=BoolType, uses_entity_info=False, uses_envs=False))

run('Missing uses_entity_info=...',
    lambda: ExternalProperty(memoized=True, type=BoolType, uses_envs=False))
run(
    'Missing uses_envs=...', lambda: ExternalProperty(
        memoized=True, type=BoolType, uses_entity_info=False))
Esempio n. 6
0
class Literal(Expression):
    token_node = True

    result = ExternalProperty(uses_entity_info=False, uses_envs=False)
Esempio n. 7
0
class Literal(Expression):
    tok = Field()

    result = ExternalProperty()
Esempio n. 8
0
class Literal(Expr):
    token_node = True

    evaluate = ExternalProperty(uses_entity_info=False, uses_envs=False)
Esempio n. 9
0
class Literal(Expression):
    tok = Field()

    result = ExternalProperty(uses_entity_info=False, uses_envs=False)
Esempio n. 10
0
    @abstract
    class AbstractExample(FooNode):
        p = abstract_prop()
        public_p = Property(Self.p, public=True)

    class Example(AbstractExample):
        if prop:
            p = prop()

    emit_and_print_errors(lkt_file='foo.lkt')
    print('')


run('Missing type',
    lambda: ExternalProperty(uses_entity_info=False, uses_envs=False))

run('Invalid abstract',
    lambda: ExternalProperty(abstract=True, type=T.FooNode,
                             uses_entity_info=False, uses_envs=False),
    lambda: Property(Self))

run('Invalid memoized',
    lambda: ExternalProperty(memoized=True, type=Bool,
                             uses_entity_info=False, uses_envs=False))

run('Missing uses_entity_info=...',
    lambda: ExternalProperty(memoized=True, type=Bool, uses_envs=False))
run('Missing uses_envs=...',
    lambda: ExternalProperty(memoized=True, type=Bool, uses_entity_info=False))
Esempio n. 11
0
class Name(Expression):
    tok = Field()

    designated_unit = ExternalProperty(type=AnalysisUnitType)
    result = Property(Self.designated_unit.root.cast(Expression).result)