Charj: make sure all sdag decls are in the right file and nowhere else
authorAaron Becker <akbecker@gmail.com>
Wed, 25 Aug 2010 21:31:10 +0000 (16:31 -0500)
committerAaron Becker <akbecker@gmail.com>
Wed, 25 Aug 2010 21:31:10 +0000 (16:31 -0500)
src/langs/charj/src/charj/translator/Charj.g
src/langs/charj/src/charj/translator/Charj.stg

index 49d92eba8df165d239c7eda9ac825e7dd64e4a07..47090d455ceec12c6530b5f7fd661062620c9192 100644 (file)
@@ -335,11 +335,9 @@ typeList
 classScopeDeclaration
     :   modifierList?
         (   genericTypeParameterList?
-            (   type IDENT formalParameterList (block | ';')
+            (   type IDENT formalParameterList (';' | block)
                 ->  ^(FUNCTION_METHOD_DECL modifierList? genericTypeParameterList? type IDENT
                     formalParameterList block?)
-            /*|   'void' IDENT formalParameterList (block | ';')
-                ->  ^(VOID_METHOD_DECL modifierList? genericTypeParameterList? IDENT formalParameterList block?)*/
             |   ident=IDENT formalParameterList block
                 ->  ^(CONSTRUCTOR_DECL[$ident, "CONSTRUCTOR_DECL"] modifierList? genericTypeParameterList? IDENT
                         formalParameterList block)
@@ -357,8 +355,6 @@ interfaceScopeDeclaration
             (   type IDENT formalParameterList ';'
                 ->  ^(FUNCTION_METHOD_DECL modifierList? genericTypeParameterList?
                         type IDENT formalParameterList)
-            /*|   'void' IDENT formalParameterList ';'
-                ->  ^(VOID_METHOD_DECL modifierList? genericTypeParameterList? IDENT formalParameterList)*/
             )
         |   simpleType interfaceFieldDeclaratorList ';'
             ->  ^(PRIMITIVE_VAR_DECLARATION modifierList? simpleType interfaceFieldDeclaratorList)
index 92bb043d33d9c601cc3b45f2614e51b2ff797363..b36a5688b5db1d4410dba4b44118bde7c9637042 100644 (file)
@@ -250,7 +250,8 @@ void <sym.name>::pup(PUP::er &p)
 <endif>
     <pupers; separator="\n">
 <if(sym.hasSDAG)>
-    __sdag_pup(p)
+    __sdag_pup(p);
+
 <endif>
 }
 
@@ -272,7 +273,8 @@ void <sym.name>::constructorHelper()
 {
     <inits; separator="\n">
 <if(sym.hasSDAG)>
-    __sdag_init(p)
+    __sdag_init();
+
 <endif>
 }
 
@@ -377,9 +379,9 @@ funcMethodDecl_ci(modl, gtpl, ty, id, fpl, adl, block) ::=
 
 funcMethodDecl_sdag_ci(classSym, methodSym, modl, gtpl, ty, id, fpl, adl, block) ::=
 <<
-<modl><ty><gtpl> <id><fpl><adl>
+<modl><ty><gtpl> <id><fpl><adl><if(!block)>;<else>
 {
-    /* FIXME: macros aren't allowed in sdag code yet, so tracing doesn't work right
+    /* FIXME: macros aren't allowed in sdag code, so tracing doesn't work right
     #if _CHARJ_TRACE_ALL_METHODS<if(methodSym.isTraced)> || _CHARJ_TRACE_TRACED_METHODS<endif>
     int _charj_method_trace_timer = CkWallTimer();
     #endif
@@ -391,11 +393,13 @@ funcMethodDecl_sdag_ci(classSym, methodSym, modl, gtpl, ty, id, fpl, adl, block)
     #endif
     */
 };
+<endif>
 >>
 
 
 funcMethodDecl_cc(classSym, methodSym, modl, gtpl, ty, id, fpl, adl, block) ::=
 <<
+<if(block)>
 <modl><ty><gtpl> <classSym.Name>::<id><fpl><adl>
 {
     #if _CHARJ_TRACE_ALL_METHODS<if(methodSym.isTraced)> || _CHARJ_TRACE_TRACED_METHODS<endif>
@@ -406,6 +410,7 @@ funcMethodDecl_cc(classSym, methodSym, modl, gtpl, ty, id, fpl, adl, block) ::=
     traceUserBracketEvent(<methodSym.traceID>, _charj_method_trace_timer, CkWallTimer());
     #endif
 }
+<endif>
 >>