key_table.put("taskexit", new Integer(Sym.TASKEXIT));
//Keywords for transactions
key_table.put("atomic", new Integer(Sym.ATOMIC));
- key_table.put("local", new Integer(Sym.LOCAL));
key_table.put("global", new Integer(Sym.GLOBAL));
}
}
"extends", "external", "final", "finally",
"flag", //keyword for failure aware computation
"float", "for", "global", "goto", "if",
- "implements", "import", "instanceof", "int", "interface", "local", "long",
+ "implements", "import", "instanceof", "int", "interface", "long",
"native", "new", "optional", "package", "private", "protected", "public",
"return", "short", "static", "strictfp", "super", "switch", "synchronized",
"tag", "task", "taskexit", //keywords for failure aware computation
javadoc -classpath ../cup:.:$(CLASSPATH) -sourcepath . -private -d javadoc Lex Util IR IR.Tree IR.Flat Analysis Analysis.CallGraph Analysis.Flag Analysis.TaskStateAnalysis Main
clean:
- rm IR/*.class IR/Tree/*.class Main/*.class Lex/*.class Parse/*.class Parse/Sym.java Parse/Parser.java IR/Flat/*.class classdefs.h methodheaders.h methods.c structdefs.h virtualtable.h task.h taskdefs.c taskdefs.h Analysis/*.class Analysis/Flag/*.class Analysis/CallGraph/*.class Analysis/TaskStateAnalysis/*.class Util/Relation/*.class Interface/*.class
+ rm IR/*.class IR/Tree/*.class Main/*.class Lex/*.class Parse/*.class Parse/Sym.java Parse/Parser.java IR/Flat/*.class classdefs.h methodheaders.h methods.c structdefs.h virtualtable.h task.h taskdefs.c taskdefs.h Analysis/*.class Analysis/Flag/*.class Analysis/CallGraph/*.class Analysis/TaskStateAnalysis/*.class Interface/*.class Util/*.class
cleandoc:
rm -rf javadoc
\ No newline at end of file
//distributed transaction keywords
terminal ATOMIC;
-terminal LOCAL;
terminal GLOBAL;
non terminal ParseNode atomic_statement;
RESULT=pn;
:}
//Global object
- | LOCAL NEW class_or_interface_type:type LPAREN argument_list_opt:args RPAREN flag_list_opt:feo {:
+ | GLOBAL NEW class_or_interface_type:type LPAREN argument_list_opt:args RPAREN flag_list_opt:feo {:
ParseNode pn=new ParseNode("createobject");
+ pn.addChild("global");
pn.addChild(type);
pn.addChild(args);
pn.addChild(feo);