Пример #1
0
    def vIfStatement(self, node):
        self.w('if')
        self.w('(')
        self.doCondition(node, node.cond)
        self.w(')')
        if not isinstance(node.then, ast.CompoundStatement):
            t = ast.CompoundStatement()
            t.add(node.then)
            self.visit(t)
        else:
            self.visit(node.then)

        if node.elze:
            self.w('else')

            if not isinstance(node.elze, ast.CompoundStatement):
                t = ast.CompoundStatement()
                t.add(node.elze)
                self.visit(t)
            else:
                self.visit(node.elze)
Пример #2
0
    def vWhileStatement(self, node):
        self.w('while')
        self.w('(')
        self.doCondition(node, node.cond)
        self.w(')')

        if not isinstance(node.loop, ast.CompoundStatement):
            t = ast.CompoundStatement()
            t.add(node.loop)
            self.visit(t)
        else:
            self.visit(node.loop)
Пример #3
0
 def vForStatement(self, node):
     self.visit(node.init)
     self.w(';')
     self.p()
     self.w('WHILE')
     self.visit(node.cond)
     self.w('DO')
     if not isinstance(node.loop, ast.CompoundStatement):
         node.loop = ast.CompoundStatement(node.loop)
     node.incr.isStatement = True
     node.loop.add(node.incr)
     self.visit(node.loop)
     self.p()
Пример #4
0
 def vForStatementInit(self, node):
     self.w('for')
     self.w('(')
     self.visit(node.init)
     self.w(';')
     self.doCondition(node, node.cond)
     self.w(';')
     self.visit(node.incr)
     self.w(')')
     self.p()
     if not isinstance(node.loop, ast.CompoundStatement):
         t = ast.CompoundStatement()
         t.add(node.loop)
         self.visit(t)
     else:
         self.visit(node.loop)
Пример #5
0
def p_statement_list_01(t):
    '''statement_list : statement'''
    t[1].isStatement = True
    t[0] = ast.CompoundStatement(t[1])