def match(self, context):
     expr = context.beginExpression()
     res = Group.match(self, context)
     context.endExpression()
     if res == True:
         context.getCurrentScope().statements.append(expr[0])
     return res
示例#2
0
 def match(self, context):
     expr = context.beginExpression()
     res = Group.match(self, context)
     context.endExpression()
     if res == True:
         context.getCurrentScope().statements.append(expr.clean())
     return res
示例#3
0
 def match(self, context):
     context.beginExpression()
     res = Group.match(self, context)
     expr = context.getCurrentExpression()
     context.endExpression()
     if res == True:
         context.getCurrentExpression().append(expr.clean())
     return res
示例#4
0
 def match(self, context):
     context.beginExpression()
     res = Group.match(self, context)
     expr = context.getCurrentExpression()
     context.endExpression()
     if res == True:
         context.getCurrentExpression().append(ast.FunctionCall(expr[0], expr[1:]))
     return res
示例#5
0
 def match(self, context):
     context.beginExpression()
     res = Group.match(self, context)
     expr = context.getCurrentExpression()
     context.endExpression()
     if res == True:
         context.getCurrentExpression().append(expr)
     return res
示例#6
0
    def match(self, context):
        self._class_name = None
        self._bases = []
        self._scope = None

        res = Group.match(self, context)
        if self._scope is not None:
            context.endScope()
        if res == False and self._class_name is not None:
            raise Exception("Error in class declaration " + self._class_name)
        return res
 def match(self, context):
     self._is_first = True
     main = context.beginExpression()
     self._expr = context.beginExpression()
     res = Group.match(self, context)
     context.endExpression()
     if res == True and len(self._expr) > 0:
         main.append(self._expr)
     context.endExpression()
     context.getCurrentExpression().append(main)
     return res
示例#8
0
    def match(self, context):
        self._class_name = None
        self._bases = []
        self._scope = None

        res = Group.match(self, context)
        if self._scope is not None:
            context.endScope()
        if res == False and self._class_name is not None:
            raise Exception("Error in class declaration " + self._class_name)
        return res
示例#9
0
 def match(self, context):
     print '#STARTMATCH',object.__str__(self)
     context.printTokenStack()
     self._params = []
     self._scope = None
     res = Group.match(self, context)
     if self._scope is not None:
         context.endScope()
     self._params = []
     self._scope = None
     print '#ENDMATCH',object.__str__(self), res
     return res
示例#10
0
 def match(self, context):
     if self._with_expression == True:
         self._expr = context.beginExpression()
     if isinstance(self._keywords, list):
         name = "-".join(self._keywords)+'_'
     else:
         name = str(self._keywords)+'_'
     self._scope = context.beginScope(
         ast.SCOPE_TYPES['block'],
         name,
         generate_unique=True
     )
     res = Group.match(self, context)
     if self._with_expression == True:
         context.endExpression()
     if self._scope is not None:
         context.endScope()
     return res
示例#11
0
 def match(self, context):
     context.beginExpression()
     res = Group.match(self, context)
     context.endExpression()
     return res
示例#12
0
 def match(self, context):
     context.beginExpression()
     res = Group.match(self, context)
     context.endExpression()
     return res