terminal ELLIPSIS;
terminal ENUM;
+//failure aware computation keywords
+terminal FLAG;
+terminal TAG;
+terminal TASK;
+non terminal ParseNode flag_declaration;
+
// 19.2) The Syntactic Grammar
non terminal ParseNode goal;
// 19.3) Lexical Structure
:}
;
class_member_declaration ::=
+ //failure aware computation
+ flag_declaration:flag {:
+ RESULT=(new ParseNode("flag")).addChild(flag).getRoot();
+ :}
+ |
field_declaration:field {:
RESULT=(new ParseNode("field")).addChild(field).getRoot();
:}
| SEMICOLON {: RESULT=new ParseNode("empty"); :}
;
+//Failure aware computation
+flag_declaration ::=
+ FLAG IDENTIFIER:id SEMICOLON {:
+ ParseNode pn=new ParseNode("flag_declaration");
+ pn.addChild("name").addChild(id);
+ RESULT=pn;
+ :}
+ ;
+
// 19.8.2) Field Declarations
field_declaration ::=
modifiers_opt:mo type:type variable_declarators:var SEMICOLON {: