fixes to ast, output templates still broken
authorAaron Becker <abecker3@illinois.edu>
Tue, 16 Dec 2008 21:43:10 +0000 (21:43 +0000)
committerAaron Becker <abecker3@illinois.edu>
Tue, 16 Dec 2008 21:43:10 +0000 (21:43 +0000)
src/langs/charj/src/charj/translator/Charj.g
src/langs/charj/src/charj/translator/CharjEmitter.g
src/langs/charj/src/charj/translator/CharjSemantics.g

index a9e0b1965cf5dd2fb9e874ffbb719801509325df..69bc7843e3f73b91d893edc713276c611100e783 100644 (file)
@@ -671,7 +671,7 @@ blockStatement
 localVariableDeclaration
     :   localModifierList simpleType classFieldDeclaratorList
         ->  ^(PRIMITIVE_VAR_DECLARATION localModifierList simpleType classFieldDeclaratorList)
-    :   localModifierList objectType classFieldDeclaratorList
+    |   localModifierList objectType classFieldDeclaratorList
         ->  ^(OBJECT_VAR_DECLARATION localModifierList objectType classFieldDeclaratorList)
     ;
     
index 7ce68e55b1512d4f165823264c0cef611980a919..6fbfb3bc82a18b55e770809178b556b180e8d8f4 100644 (file)
@@ -302,9 +302,9 @@ classScopeDeclarations
                 block={$b.st})
         ->
     |   ^(PRIMITIVE_VAR_DECLARATION modifierList simpleType variableDeclaratorList)
-        -> template(t={$text}) "vardecl <t>"
+        -> template(t={$text}) "primvardecl <t>"
     |   ^(OBJECT_VAR_DECLARATION modifierList objectType variableDeclaratorList)
-        -> template(t={$text}) "vardecl <t>"
+        -> template(t={$text}) "objvardecl <t>"
     |   ^(CONSTRUCTOR_DECL m=modifierList g=genericTypeParameterList? IDENT f=formalParameterList 
             t=throwsClause? b=block)
         { 
@@ -351,9 +351,9 @@ interfaceScopeDeclarations
         // declarations by Charj.g; the parser has already checked that
         // there's an obligatory initializer.
     |   ^(PRIMITIVE_VAR_DECLARATION modifierList simpleType variableDeclaratorList)
-        -> template(t={$text}) "<t>"
+        -> template(t={$text}) "prim...<t>..."
     |   ^(OBJECT_VAR_DECLARATION modifierList objectType variableDeclaratorList)
-        -> template(t={$text}) "<t>"
+        -> template(t={$text}) "obj...<t>..."
     |   typeDeclaration
         -> template(t={$text}) "<t>"
     ;
@@ -440,8 +440,19 @@ localModifier
         -> template(t={$text}) "<t>"
     ;
 
+    
 type
-    :   ^(TYPE (primitiveType | qualifiedTypeIdent) arrayDeclaratorList?) 
+    :   simpleType
+    |   objectType 
+    ;
+
+simpleType
+    :   ^(TYPE primitiveType arrayDeclaratorList?)
+        -> template(t={$text}) "<t>"
+    ;
+
+objectType
+    :   ^(TYPE qualifiedTypeIdent arrayDeclaratorList?)
         -> template(t={$text}) "<t>"
     ;
 
@@ -535,9 +546,9 @@ blockStatement
     
 localVariableDeclaration
     :   ^(PRIMITIVE_VAR_DECLARATION localModifierList simpleType variableDeclaratorList)
-        -> template(t={$text}) "<t>"
-    :   ^(OBJECT_VAR_DECLARATION localModifierList objectType variableDeclaratorList)
-        -> template(t={$text}) "<t>"
+        -> template(t={$text}) "prim!<t>!"
+    |   ^(OBJECT_VAR_DECLARATION localModifierList objectType variableDeclaratorList)
+        -> template(t={$text}) "obj!<t>!"
     ;
     
         
index 55dee1aec3e32a3ab8471b6ee2e6cbbeb40f7af7..e8794401f25ca850c1c99d217bfc5d44ceec7c39 100644 (file)
@@ -315,7 +315,16 @@ localModifier
     ;
 
 type
-    :   ^(TYPE (primitiveType | qualifiedTypeIdent) arrayDeclaratorList?) 
+    :   simpleType
+    |   objectType 
+    ;
+
+simpleType
+    :   ^(TYPE primitiveType arrayDeclaratorList?)
+    ;
+    
+objectType
+    :   ^(TYPE qualifiedTypeIdent arrayDeclaratorList?)
     ;
 
 qualifiedTypeIdent
@@ -380,7 +389,7 @@ blockStatement
     
 localVariableDeclaration
     :   ^(PRIMITIVE_VAR_DECLARATION localModifierList simpleType variableDeclaratorList)
-    :   ^(OBJECT_VAR_DECLARATION localModifierList objectType variableDeclaratorList)
+    |   ^(OBJECT_VAR_DECLARATION localModifierList objectType variableDeclaratorList)
     ;