]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/contexts/TranslationContext.java
Refactoring CHR handling code
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / contexts / TranslationContext.java
index 0e7df755c3a5eede4b52db6b355611afe3fd7708..757aca8b5e272880e7c6526048f1b20837709f82 100644 (file)
@@ -119,7 +119,7 @@ public class TranslationContext extends TypeTranslationContext implements Enviro
     public static boolean isConstructorName(String name) {
         int p = name.lastIndexOf('.');
         char firstChar = name.charAt(p<0 ? 0 : p+1);
-        return Character.isUpperCase(firstChar);
+        return Character.isUpperCase(firstChar) || firstChar == '(';
     }
     
     /* Tries to resolve name as a local variable. It is assumed
@@ -401,7 +401,7 @@ public class TranslationContext extends TypeTranslationContext implements Enviro
         chrConstraintFrames.add(chrConstraintEntries.size());
     }
     
-    public void popCHRConstraintFrame(ArrayList<CHRConstraint> constraints) {
+    public void popCHRConstraintFrame(CHRRuleset ruleset) {
         int frame = chrConstraintFrames.removeAt(chrConstraintFrames.size()-1);
         int i = chrConstraintEntries.size();
         while(i > frame) {
@@ -413,7 +413,7 @@ public class TranslationContext extends TypeTranslationContext implements Enviro
             else
                 newConstraint = chrConstraints.put(entry.name, entry.constraint);
             if(newConstraint.implicitlyDeclared)
-                constraints.add(newConstraint);
+                ruleset.addConstraint(newConstraint);
         }
     }