From: Baptiste L. <bl...@us...> - 2004-08-08 16:19:17
|
Update of /cvsroot/cpptool/CppParser/src/pyrfta In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10274/src/pyrfta Modified Files: ast.py dumpast.py Log Message: * improved support for if statement Index: ast.py =================================================================== RCS file: /cvsroot/cpptool/CppParser/src/pyrfta/ast.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ast.py 8 Aug 2004 16:12:52 -0000 1.6 --- ast.py 8 Aug 2004 16:19:09 -0000 1.7 *************** *** 280,284 **** class IfStatement(Statement): ! pass class SwitchStatement(Statement): --- 280,297 ---- class IfStatement(Statement): ! def __init__( self, node ): ! Statement.__init__( self, node ) ! self.condition = None ! self.then_statement = None ! self.else_statement = None ! ! def setCondition( self, condition ): ! self.condition = condition ! ! def setThenStatement( self, statement ): ! self.then_statement = statement ! ! def setElseStatement( self, statement ): ! self.else_statement = statement class SwitchStatement(Statement): *************** *** 639,646 **** ast.setStatement( self.buildStatement( nodetools.getFirstChild( target_statement_node ) ) ) return ast - def buildIfStatement( self, statement ): ! return IfStatement( statement ) def buildSwitchStatement( self, statement ): --- 652,666 ---- ast.setStatement( self.buildStatement( nodetools.getFirstChild( target_statement_node ) ) ) return ast def buildIfStatement( self, statement ): ! ast = IfStatement( statement ) ! condition_node = nodetools.getFirstChildNamed( statement, 'condition' ) ! ast.setCondition( self.buildCondition( condition_node ) ) ! statement_node = nodetools.getFirstChildNamed( statement, 'then_statement' ) ! ast.setThenStatement( self.buildStatement( nodetools.getFirstChild( statement_node ) ) ) ! statement_node = nodetools.tryGetFirstChildNamed( statement, 'else_statement' ) ! if statement_node: ! ast.setElseStatement( self.buildStatement( nodetools.getFirstChild( statement_node ) ) ) ! return ast def buildSwitchStatement( self, statement ): Index: dumpast.py =================================================================== RCS file: /cvsroot/cpptool/CppParser/src/pyrfta/dumpast.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** dumpast.py 8 Aug 2004 16:12:52 -0000 1.5 --- dumpast.py 8 Aug 2004 16:19:09 -0000 1.6 *************** *** 134,137 **** --- 134,141 ---- def visitIfStatement( self, ast ): info = ASTInfo( ast ) + info.attr( 'condition', self.visitASTNode( ast.condition ) ) + info.attr( 'then_statement', self.visitASTNode( ast.then_statement ) ) + if ast.else_statement: + info.attr( 'else_statement', self.visitASTNode( ast.else_statement ) ) return info |