From ec7f07335da80346037eabf67e2de868af331ffb Mon Sep 17 00:00:00 2001 From: jjenista Date: Wed, 26 May 2010 17:33:04 +0000 Subject: [PATCH] Can now use the rblock keyword instead of sese keyword to write OoOJava programs, but both work interchangeably so old programs are still fine --- Robust/src/Lex/Keyword.java | 1 + Robust/src/Lex/Lexer.java | 5 +++-- Robust/src/Parse/java14.cup | 12 ++++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Robust/src/Lex/Keyword.java b/Robust/src/Lex/Keyword.java index b6615937..763086ed 100644 --- a/Robust/src/Lex/Keyword.java +++ b/Robust/src/Lex/Keyword.java @@ -86,5 +86,6 @@ class Keyword extends Token { key_table.put("disjoint", new Integer(Sym.DISJOINT)); //Keywords for coarse-grain parallelization key_table.put("sese", new Integer(Sym.SESE)); + key_table.put("rblock", new Integer(Sym.RBLOCK)); } } diff --git a/Robust/src/Lex/Lexer.java b/Robust/src/Lex/Lexer.java index 7b79531b..2d16e68a 100644 --- a/Robust/src/Lex/Lexer.java +++ b/Robust/src/Lex/Lexer.java @@ -267,8 +267,9 @@ public class Lexer { //"interface", "isavailable", "long", - "native", "new", "optional", "package", "private", "protected", "public", - "return", "scratch", "sese", "short", "static", "strictfp", "super", "switch", "synchronized", + "native", "new", "optional", "package", "private", "protected", "public", + "rblock", "return", + "scratch", "sese", "short", "static", "strictfp", "super", "switch", "synchronized", "tag", "task", "taskexit", //keywords for failure aware computation "this", "throw", "throws", "transient", "try", "void", "volatile", "while" diff --git a/Robust/src/Parse/java14.cup b/Robust/src/Parse/java14.cup index dbe8dda0..4831dee3 100644 --- a/Robust/src/Parse/java14.cup +++ b/Robust/src/Parse/java14.cup @@ -267,6 +267,7 @@ terminal DISJOINT; //coarse-grain parallelization terminal SESE; +terminal RBLOCK; non terminal ParseNode sese_statement; @@ -1392,6 +1393,17 @@ sese_statement ::= pn.addChild("identifier").addChild(id); RESULT=pn; :} + | RBLOCK block:blk {: + ParseNode pn = new ParseNode("sese"); + pn.addChild("body").addChild(blk); + RESULT=pn; + :} + | RBLOCK variable_declarator_id:id block:blk {: + ParseNode pn = new ParseNode("sese"); + pn.addChild("body").addChild(blk); + pn.addChild("identifier").addChild(id); + RESULT=pn; + :} ; //try_statement ::= // TRY block catches -- 2.34.1