Пример #1
0
def prop_expand(start, end, context):

    start_ = connector()
    end_ = connector()

    start.connect(tnode(PROPERTY)).connect(ComposedId("name")).connect(tnode(BRACE_OPEN)).connect(start_)

    descr = sequence(tnode(DESCRIPTION), tnode(COLON), tnode(LITERAL, "description"), tnode(SEMICOLON))

    auto = sequence(tnode(AUTO_CREATE, "auto"), tnode(SEMICOLON))

    switch = Switch(
        {
            TYPE: _PropType("type"),
            ACCESS: _Access("access"),
            DESCRIPTION: descr,
            GTYPE: _PropGType("gtype"),
            PROP_MAX: _PropMax("max"),
            PROP_MIN: _PropMin("min"),
            PROP_DEFAULT: _PropDefault("default"),
            AUTO_CREATE: auto,
        }
    )

    start_.connect(switch).connect(start_)
    start_.connect(end_)

    end_.connect(tnode(BRACE_CLOSE)).connect(end)
Пример #2
0
 def expand(self, start, end, context):
     
     start_ = connector()
     
     branches = {}
     branches[PARAMETER] = Parameter('parameter')
     branches[RESULT] = Result('result')
     
     if not context.getEnvVar('INTERFACE'):
         
         branches[VISI] = Visibility('visi')
         branches[INHERITANCE] = Inheritance('inh')
         branches[SCOPE] = Scope('scope')
     
     start\
     .connect(tnode(METHOD))\
     .connect(tnode(ID, 'name'))\
     .connect(tnode(BRACE_OPEN))\
     .connect(start_)
     
     start_.connect(Switch(branches)).connect(start_)
     start_\
     .connect(zeroToOne(sequence(tnode(FURTHER_PARAMETERS, 'further_params'), tnode(SEMICOLON))))\
     .connect(tnode(BRACE_CLOSE))\
     .connect(end)
Пример #3
0
 def expand(self, start, end, context):
     
     seq = sequence(tnode(DASH), tnode(ID))
     start\
     .connect(tnode(ID))\
     .connect(zeroToMany(seq))\
     .connect(end)
Пример #4
0
 def expand(self, start, end, context):
     
     seq = sequence(tnode(ID), tnode(NAMESPACE_SEP))
     
     start\
     .connect(zeroToOne(tnode(NAMESPACE_ROOT_SEP)))\
     .connect(zeroToMany(seq))\
     .connect(tnode(ID))\
     .connect(end)
Пример #5
0
 def expand(self, start, end, context):
     
     modifiers = sequence(tnode(MODIFIERS, 'modifiers'),
                          tnode(COLON),  
                          tnode(CONST, 'const'),
                          tnode(SEMICOLON)
                          )      
     start\
     .connect(tnode(RESULT))\
     .connect(tnode(BRACE_OPEN))\
     .connect(Type('type'))\
     .connect(zeroToOne(modifiers))\
     .connect(tnode(BRACE_CLOSE))\
     .connect(end)