From: <bl...@us...> - 2003-08-27 16:53:57
|
Update of /cvsroot/cpptool/rfta/src/pyrfta/test/rfta/parser In directory sc8-pr-cvs1:/tmp/cvs-serv5731/src/pyrfta/test/rfta/parser Modified Files: grammar.py grammartest.py Log Message: * added error recovery for class member specification Index: grammar.py =================================================================== RCS file: /cvsroot/cpptool/rfta/src/pyrfta/test/rfta/parser/grammar.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** grammar.py 24 Aug 2003 21:00:36 -0000 1.1 --- grammar.py 26 Aug 2003 08:30:04 -0000 1.2 *************** *** 606,611 **** access_specification_p = node_f( 'access_specification', access_specifier_p >> ':' ) member_specification_p = node_f('member_specification', ! repeat_f( 1, access_specification_p | member_declaration_p ) ) class_key_pi.setParser( one_of_f('class struct union' ) ) --- 606,613 ---- access_specification_p = node_f( 'access_specification', access_specifier_p >> ':' ) + member_error_p = node_f( 'member_error', block_error_f() ) + member_specification_p = node_f('member_specification', ! repeat_f( 1, access_specification_p | member_declaration_p | member_error_p ) ) class_key_pi.setParser( one_of_f('class struct union' ) ) Index: grammartest.py =================================================================== RCS file: /cvsroot/cpptool/rfta/src/pyrfta/test/rfta/parser/grammartest.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** grammartest.py 24 Aug 2003 21:00:36 -0000 1.1 --- grammartest.py 26 Aug 2003 08:30:04 -0000 1.2 *************** *** 776,779 **** --- 776,783 ---- TestNode( 'using_id', id_n('Base'), '::', id_n('visit') ), ';' ) ) ) + self.checkProducedErrorNodes( "typedef std::map<int,std::string> Dico; Dico dico_;", grammar.member_specification_p, + TestNode( 'member_specification', + JokerTestNode( 'member_error' ), + JokerTestNode( 'member_declaration' ) ) ) # need more detailed check def testClassSpecifierParser( self ): |