Charj: allow multiple type definitions per file
[charm.git] / src / langs / charj / src / charj / translator / CharjEmitter.g
index c103c9ce1d3cf54f7c8352e425a1957253c80515..b6a342d5475d24f6d8bc945644bb7ace622e9c50 100644 (file)
@@ -85,10 +85,10 @@ charjSource[SymbolTable symtab, OutputMode m]
 }
     :   ^(CHARJ_SOURCE (p=packageDeclaration)? 
         (i+=importDeclaration)* 
-        (t=typeDeclaration))
-        -> {emitCC()}? charjSource_cc(basename={basename()}, pd={$p.names}, ids={$i}, tds={$t.st}, debug={debug()})
-        -> {emitCI()}? charjSource_ci(basename={basename()}, pd={$p.names}, ids={$i}, tds={$t.st}, debug={debug()})
-        -> {emitH()}? charjSource_h(basename={basename()}, pd={$p.names}, ids={$i}, tds={$t.st}, debug={debug()})
+        (t+=typeDeclaration)*)
+        -> {emitCC()}? charjSource_cc(basename={basename()}, pd={$p.names}, ids={$i}, tds={$t}, debug={debug()})
+        -> {emitCI()}? charjSource_ci(basename={basename()}, pd={$p.names}, ids={$i}, tds={$t}, debug={debug()})
+        -> {emitH()}? charjSource_h(basename={basename()}, pd={$p.names}, ids={$i}, tds={$t}, debug={debug()})
         ->
     ;
 
@@ -185,7 +185,6 @@ classScopeDeclaration
 @init {
   boolean entry = false;
   List<String> modList = new ArrayList<String>();
-
 }
     :   ^(FUNCTION_METHOD_DECL m=modifierList? g=genericTypeParameterList? 
             ty=type IDENT f=formalParameterList a=arrayDeclaratorList?