[Nice-commit] Nice/src/bossa/parser Parser.jj,1.225,1.226
Brought to you by:
bonniot
From: <ar...@us...> - 2003-12-15 00:04:51
|
Update of /cvsroot/nice/Nice/src/bossa/parser In directory sc8-pr-cvs1:/tmp/cvs-serv22745/F:/nice/src/bossa/parser Modified Files: Parser.jj Log Message: Implemented user defined fields for enums. Index: Parser.jj =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/parser/Parser.jj,v retrieving revision 1.225 retrieving revision 1.226 diff -C2 -d -r1.225 -r1.226 *** Parser.jj 13 Dec 2003 14:06:00 -0000 1.225 --- Parser.jj 15 Dec 2003 00:04:48 -0000 1.226 *************** *** 1198,1210 **** EnumDefinition enumDefinition(List definitions): { ! LocatedString name, elem; List elements = new LinkedList(); } { "enum" name=ident() ! "{" elem=ident() { elements.add(elem); } ! ( "," elem =ident() { elements.add(elem); } )+ "}" ! { return new EnumDefinition(name, elements, definitions); } } --- 1198,1231 ---- EnumDefinition enumDefinition(List definitions): { ! LocatedString name; List elements = new LinkedList(); + List fields = new LinkedList(); + MonoSymbol field; + List argsList = new LinkedList(); } { "enum" name=ident() ! [ ! "(" field=monoSymbol() { fields.add(field); } ! ( "," field=monoSymbol() { fields.add(field); } )* ")" ! ] ! "{" enumElement(elements, argsList) ! ( "," enumElement(elements, argsList) )+ "}" ! { return new EnumDefinition(name, elements, fields, argsList, definitions); } ! } ! ! void enumElement(List elements, List argsList): ! { ! LocatedString elem; ! Expression arg; ! List args = new LinkedList(); ! } ! { ! elem=ident() { elements.add(elem); } ! [ "(" arg=Expression() { args.add(arg); } ! ( "," arg=Expression() { args.add(arg); } )* ")" ! ] ! { argsList.add(args); } } |