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
|