Skip to content
Snippets Groups Projects
Select Git revision
  • 613515b5584c5070a93a5b84a8156f91b9afea27
  • master default protected
  • improvements-suggested-by-martin
  • v0.0
4 results

implementierung.tex

Blame
  • Forked from stgroup / misc / latex-templates / Thesis Template - German
    Source project has a limited visibility.
    agRefResolver.jadd 35.23 KiB
    aspect ReferenceCreation {
    
      public static Constraint Constraint.createRef(String ref) {
        Unresolved$Constraint unresolvedNode = new Unresolved$Constraint();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Constraint Constraint.createRefDirection(String ref) {
        Unresolved$Constraint unresolvedNode = new Unresolved$Constraint();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Term Term.createRef(String ref) {
        Unresolved$Term1 unresolvedNode = new Unresolved$Term1();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Term Term.createRefDirection(String ref) {
        Unresolved$Term1 unresolvedNode = new Unresolved$Term1();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Connective Connective.createRef(String ref) {
        Unresolved$Atom unresolvedNode = new Unresolved$Atom();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Connective Connective.createRefDirection(String ref) {
        Unresolved$Atom unresolvedNode = new Unresolved$Atom();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Atom Atom.createRef(String ref) {
        Unresolved$Atom unresolvedNode = new Unresolved$Atom();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Atom Atom.createRefDirection(String ref) {
        Unresolved$Atom unresolvedNode = new Unresolved$Atom();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Relation Relation.createRef(String ref) {
        Unresolved$SelfEq unresolvedNode = new Unresolved$SelfEq();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Relation Relation.createRefDirection(String ref) {
        Unresolved$SelfEq unresolvedNode = new Unresolved$SelfEq();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static UnaryRelation UnaryRelation.createRef(String ref) {
        Unresolved$SelfEq unresolvedNode = new Unresolved$SelfEq();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static UnaryRelation UnaryRelation.createRefDirection(String ref) {
        Unresolved$SelfEq unresolvedNode = new Unresolved$SelfEq();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static BinaryRelation BinaryRelation.createRef(String ref) {
        Unresolved$Compare unresolvedNode = new Unresolved$Compare();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static BinaryRelation BinaryRelation.createRefDirection(String ref) {
        Unresolved$Compare unresolvedNode = new Unresolved$Compare();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Compare Compare.createRef(String ref) {
        Unresolved$Compare unresolvedNode = new Unresolved$Compare();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Compare Compare.createRefDirection(String ref) {
        Unresolved$Compare unresolvedNode = new Unresolved$Compare();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Equal Equal.createRef(String ref) {
        Unresolved$Equal unresolvedNode = new Unresolved$Equal();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Equal Equal.createRefDirection(String ref) {
        Unresolved$Equal unresolvedNode = new Unresolved$Equal();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static SelfEq SelfEq.createRef(String ref) {
        Unresolved$SelfEq unresolvedNode = new Unresolved$SelfEq();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static SelfEq SelfEq.createRefDirection(String ref) {
        Unresolved$SelfEq unresolvedNode = new Unresolved$SelfEq();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static SelfComp SelfComp.createRef(String ref) {
        Unresolved$SelfComp unresolvedNode = new Unresolved$SelfComp();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static SelfComp SelfComp.createRefDirection(String ref) {
        Unresolved$SelfComp unresolvedNode = new Unresolved$SelfComp();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static UnaryConnective UnaryConnective.createRef(String ref) {
        Unresolved$Negation unresolvedNode = new Unresolved$Negation();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static UnaryConnective UnaryConnective.createRefDirection(String ref) {
        Unresolved$Negation unresolvedNode = new Unresolved$Negation();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static BinaryConnective BinaryConnective.createRef(String ref) {
        Unresolved$Conjunction unresolvedNode = new Unresolved$Conjunction();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static BinaryConnective BinaryConnective.createRefDirection(String ref) {
        Unresolved$Conjunction unresolvedNode = new Unresolved$Conjunction();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Conjunction Conjunction.createRef(String ref) {
        Unresolved$Conjunction unresolvedNode = new Unresolved$Conjunction();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Conjunction Conjunction.createRefDirection(String ref) {
        Unresolved$Conjunction unresolvedNode = new Unresolved$Conjunction();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Disjunction Disjunction.createRef(String ref) {
        Unresolved$Disjunction unresolvedNode = new Unresolved$Disjunction();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Disjunction Disjunction.createRefDirection(String ref) {
        Unresolved$Disjunction unresolvedNode = new Unresolved$Disjunction();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Implication Implication.createRef(String ref) {
        Unresolved$Implication unresolvedNode = new Unresolved$Implication();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Implication Implication.createRefDirection(String ref) {
        Unresolved$Implication unresolvedNode = new Unresolved$Implication();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Negation Negation.createRef(String ref) {
        Unresolved$Negation unresolvedNode = new Unresolved$Negation();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Negation Negation.createRefDirection(String ref) {
        Unresolved$Negation unresolvedNode = new Unresolved$Negation();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Term1 Term1.createRef(String ref) {
        Unresolved$Term1 unresolvedNode = new Unresolved$Term1();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Term1 Term1.createRefDirection(String ref) {
        Unresolved$Term1 unresolvedNode = new Unresolved$Term1();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Term2 Term2.createRef(String ref) {
        Unresolved$Term2 unresolvedNode = new Unresolved$Term2();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Term2 Term2.createRefDirection(String ref) {
        Unresolved$Term2 unresolvedNode = new Unresolved$Term2();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Term3 Term3.createRef(String ref) {
        Unresolved$Term3 unresolvedNode = new Unresolved$Term3();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Term3 Term3.createRefDirection(String ref) {
        Unresolved$Term3 unresolvedNode = new Unresolved$Term3();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Hanoi Hanoi.createRef(String ref) {
        Unresolved$Hanoi unresolvedNode = new Unresolved$Hanoi();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Hanoi Hanoi.createRefDirection(String ref) {
        Unresolved$Hanoi unresolvedNode = new Unresolved$Hanoi();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Disk Disk.createRef(String ref) {
        Unresolved$Disk unresolvedNode = new Unresolved$Disk();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Disk Disk.createRefDirection(String ref) {
        Unresolved$Disk unresolvedNode = new Unresolved$Disk();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
      public static Pillar Pillar.createRef(String ref) {
        Unresolved$Pillar unresolvedNode = new Unresolved$Pillar();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(true);
        return unresolvedNode;
      }
      public static Pillar Pillar.createRefDirection(String ref) {
        Unresolved$Pillar unresolvedNode = new Unresolved$Pillar();
        unresolvedNode.setUnresolved$Token(ref);
        unresolvedNode.setUnresolved$ResolveOpposite(false);
        return unresolvedNode;
      }
    }
    
    aspect ResolverTrigger {
    
      // enforce resolving of all non-containment relations of the current non-terminal
      public void ASTNode.resolveAll() {
      }
    
      // enforce resolving in the entire subtree
      public void ASTNode.treeResolveAll() {
        if (children != null) {
          for (int i = 0; i < numChildren; ++i) {
            ASTNode child = children[i];
            if (child != null) {
              child.treeResolveAll();
            }
          }
        }
        resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Constraint.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Term.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Connective.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Atom.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Relation.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void UnaryRelation.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void BinaryRelation.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Compare.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Equal.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void SelfEq.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void SelfComp.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void UnaryConnective.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void BinaryConnective.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Conjunction.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Disjunction.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Implication.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Negation.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Term1.resolveAll() {
        getRel();
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Term2.resolveAll() {
        getRel();
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Term3.resolveAll() {
        getRel();
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Hanoi.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Disk.resolveAll() {
        super.resolveAll();
      }
      // enforce resolving of all non-containment relations of the current non-terminal
      public void Pillar.resolveAll() {
        super.resolveAll();
      }
    }
    
    aspect RefResolverHelpers {
    
      interface Unresolved$Node$Interface {
        String getUnresolved$Token();
        boolean getUnresolved$ResolveOpposite();
      }
    
      class Unresolved$Constraint extends Constraint  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Constraint.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Constraint.as$Unresolved() {
        return this;
      }
      boolean Constraint.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Constraint.is$Unresolved() {
        return true;
      }
      abstract class Unresolved$Term extends Term  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Term.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Term.as$Unresolved() {
        return this;
      }
      boolean Term.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Term.is$Unresolved() {
        return true;
      }
      abstract class Unresolved$Connective extends Connective  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Connective.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Connective.as$Unresolved() {
        return this;
      }
      boolean Connective.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Connective.is$Unresolved() {
        return true;
      }
      class Unresolved$Atom extends Atom  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Atom.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Atom.as$Unresolved() {
        return this;
      }
      boolean Atom.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Atom.is$Unresolved() {
        return true;
      }
      abstract class Unresolved$Relation extends Relation  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Relation.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Relation.as$Unresolved() {
        return this;
      }
      boolean Relation.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Relation.is$Unresolved() {
        return true;
      }
      abstract class Unresolved$UnaryRelation extends UnaryRelation  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface UnaryRelation.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$UnaryRelation.as$Unresolved() {
        return this;
      }
      boolean UnaryRelation.is$Unresolved() {
        return false;
      }
      boolean Unresolved$UnaryRelation.is$Unresolved() {
        return true;
      }
      abstract class Unresolved$BinaryRelation extends BinaryRelation  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface BinaryRelation.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$BinaryRelation.as$Unresolved() {
        return this;
      }
      boolean BinaryRelation.is$Unresolved() {
        return false;
      }
      boolean Unresolved$BinaryRelation.is$Unresolved() {
        return true;
      }
      class Unresolved$Compare extends Compare  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Compare.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Compare.as$Unresolved() {
        return this;
      }
      boolean Compare.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Compare.is$Unresolved() {
        return true;
      }
      class Unresolved$Equal extends Equal  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Equal.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Equal.as$Unresolved() {
        return this;
      }
      boolean Equal.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Equal.is$Unresolved() {
        return true;
      }
      class Unresolved$SelfEq extends SelfEq  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface SelfEq.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$SelfEq.as$Unresolved() {
        return this;
      }
      boolean SelfEq.is$Unresolved() {
        return false;
      }
      boolean Unresolved$SelfEq.is$Unresolved() {
        return true;
      }
      class Unresolved$SelfComp extends SelfComp  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface SelfComp.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$SelfComp.as$Unresolved() {
        return this;
      }
      boolean SelfComp.is$Unresolved() {
        return false;
      }
      boolean Unresolved$SelfComp.is$Unresolved() {
        return true;
      }
      abstract class Unresolved$UnaryConnective extends UnaryConnective  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface UnaryConnective.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$UnaryConnective.as$Unresolved() {
        return this;
      }
      boolean UnaryConnective.is$Unresolved() {
        return false;
      }
      boolean Unresolved$UnaryConnective.is$Unresolved() {
        return true;
      }
      abstract class Unresolved$BinaryConnective extends BinaryConnective  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface BinaryConnective.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$BinaryConnective.as$Unresolved() {
        return this;
      }
      boolean BinaryConnective.is$Unresolved() {
        return false;
      }
      boolean Unresolved$BinaryConnective.is$Unresolved() {
        return true;
      }
      class Unresolved$Conjunction extends Conjunction  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Conjunction.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Conjunction.as$Unresolved() {
        return this;
      }
      boolean Conjunction.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Conjunction.is$Unresolved() {
        return true;
      }
      class Unresolved$Disjunction extends Disjunction  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Disjunction.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Disjunction.as$Unresolved() {
        return this;
      }
      boolean Disjunction.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Disjunction.is$Unresolved() {
        return true;
      }
      class Unresolved$Implication extends Implication  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Implication.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Implication.as$Unresolved() {
        return this;
      }
      boolean Implication.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Implication.is$Unresolved() {
        return true;
      }
      class Unresolved$Negation extends Negation  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Negation.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Negation.as$Unresolved() {
        return this;
      }
      boolean Negation.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Negation.is$Unresolved() {
        return true;
      }
      class Unresolved$Term1 extends Term1  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Term1.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Term1.as$Unresolved() {
        return this;
      }
      boolean Term1.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Term1.is$Unresolved() {
        return true;
      }
      class Unresolved$Term2 extends Term2  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Term2.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Term2.as$Unresolved() {
        return this;
      }
      boolean Term2.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Term2.is$Unresolved() {
        return true;
      }
      class Unresolved$Term3 extends Term3  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Term3.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Term3.as$Unresolved() {
        return this;
      }
      boolean Term3.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Term3.is$Unresolved() {
        return true;
      }
      class Unresolved$Hanoi extends Hanoi  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Hanoi.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Hanoi.as$Unresolved() {
        return this;
      }
      boolean Hanoi.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Hanoi.is$Unresolved() {
        return true;
      }
      class Unresolved$Disk extends Disk  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Disk.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Disk.as$Unresolved() {
        return this;
      }
      boolean Disk.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Disk.is$Unresolved() {
        return true;
      }
      class Unresolved$Pillar extends Pillar  implements Unresolved$Node$Interface {
        private String unresolved$Token;
        public String getUnresolved$Token() {
          return unresolved$Token;
        }
        void setUnresolved$Token(String token) {
          this.unresolved$Token = token;
        }
        private boolean unresolved$ResolveOpposite;
        public boolean getUnresolved$ResolveOpposite() {
          return unresolved$ResolveOpposite;
        }
        void setUnresolved$ResolveOpposite(boolean resolveOpposite) {
          this.unresolved$ResolveOpposite = resolveOpposite;
        }
      }
      Unresolved$Node$Interface Pillar.as$Unresolved() {
        return null;
      }
      Unresolved$Node$Interface Unresolved$Pillar.as$Unresolved() {
        return this;
      }
      boolean Pillar.is$Unresolved() {
        return false;
      }
      boolean Unresolved$Pillar.is$Unresolved() {
        return true;
      }
    
    }