package it.xsemantics.example.fj.typesystem.fj.rules; import it.xtypes.runtime.*; public class TParamsEqualsTypeRule extends FJTypeSystemRule { protected Variable<Integer> var_i = new Variable<Integer>( createBasicType("Integer")); protected Variable<java.util.List<it.xsemantics.example.fj.fj.Parameter>> var_params1 = new Variable<java.util.List<it.xsemantics.example.fj.fj.Parameter>>( createCollectionType(createEClassifierType(basicPackage .getParameter()))); protected Variable<java.util.List<it.xsemantics.example.fj.fj.Parameter>> var_params2 = new Variable<java.util.List<it.xsemantics.example.fj.fj.Parameter>>( createCollectionType(createEClassifierType(basicPackage .getParameter()))); protected TypingJudgmentEnvironment env_G = new TypingJudgmentEnvironment(); public TParamsEqualsTypeRule() { this("TParamsEquals", "|-", "=="); } public TParamsEqualsTypeRule(String ruleName, String typeJudgmentSymbol, String typeStatementRelation) { super(ruleName, typeJudgmentSymbol, typeStatementRelation); } @Override public Variable<java.util.List<it.xsemantics.example.fj.fj.Parameter>> getLeft() { return var_params1; } @Override public Variable<java.util.List<it.xsemantics.example.fj.fj.Parameter>> getRight() { return var_params2; } @Override public TypingJudgmentEnvironment getEnvironment() { return env_G; } @Override public void setEnvironment(TypingJudgmentEnvironment environment) { if (environment != null) env_G = environment; } @Override public RuntimeRule newInstance() { return new TParamsEqualsTypeRule("TParamsEquals", "|-", "=="); } @Override public void applyImpl() throws RuleFailedException { equals(length(var_params1), length(var_params2)); register("forall " + stringRep(length(var_params1))); try { for (var_i.setValue(0); var_i.getValue() < length(var_params1); var_i .setValue(var_i.getValue() + 1)) { applyRule(env_G, "|-", "==", var_params1.getValue().get(var_i.getValue()).getType(), var_params2.getValue().get(var_i.getValue()).getType()); } } catch (Throwable e) { registerAndThrowFailure(e); } register("end " + "forall " + stringRep(length(var_params1))); // final check for variable initialization } }