public void ReplaceLiterals(string n1, string t1, string t2, string expectedResult, Refactorization r) { string resultStr = string.Empty; if (r == Refactorization.Current) { Name result = null; var name = Name.BuildName(n1); for (long i = 0; i < reps; i++) { result = name.SwapTerms((Name)t1, (Name)t2); } resultStr = RemoveWhiteSpace(result.ToString()); } else if (r == Refactorization.New) { SimpleName result = null; var name = new SimpleName(n1); for (long i = 0; i < reps; i++) { result = SimpleWFN.ReplaceLiterals(name, t1, t2); } resultStr = result.ToString(); } Assert.That(string.Equals(resultStr, expectedResult, StringComparison.InvariantCultureIgnoreCase)); }
public void MakeGround_GroundedName(string n1, string var, string sub, string expectedResult, Refactorization r) { String result = string.Empty; if (r == Refactorization.New) { var name = new SimpleName(n1); SimpleName nameResult = null; Dictionary <string, SimpleName> subs = new Dictionary <string, SimpleName>(); subs[var] = new SimpleName(sub); for (long i = 0; i < reps; i++) { nameResult = SimpleWFN.MakeGround(name, subs); } result = nameResult.ToString(); } else if (r == Refactorization.Current) { var name = Name.BuildName(n1); Name nameResult = null; SubstitutionSet subSet = new SubstitutionSet(); subSet.AddSubstitution(new Substitution("[x]/J(I)")); for (long i = 0; i < reps; i++) { nameResult = name.MakeGround(subSet); } } Assert.AreEqual(expectedResult, result); }
public void Add_Variable_Tag_SimpleWFN(string n1, string tag, string expectedResult, Refactorization r) { string result = string.Empty; if (r == Refactorization.New) { SimpleName name = new SimpleName(n1); SimpleName resName = null; for (long i = 0; i < reps; i++) { resName = SimpleWFN.AddVariableTag(name, tag); } result = resName.ToString(); } else if (r == Refactorization.Current) { Name name = Name.BuildName(n1); Name resName = null; for (long i = 0; i < reps; i++) { resName = name.ReplaceUnboundVariables("_tag"); } result = RemoveWhiteSpace(resName.ToString()); } Assert.AreEqual(expectedResult, result); }
public void AddDefiningValCtor(SimpleName valCtorName, TypeExpr final) { var loc = valCtorName._lexLocation; var name = valCtorName.ToString(); if (ValueCtorMap.TryGetValue(name, out var ty)) { throw new ValueCtorDuplicatedException(ty._lexLocation, loc); } _definingCtor.CheckAddValCtor(name, loc, final); CheckValCtorType(valCtorName, final); }
private void CheckValCtorType(SimpleName valCtorName, TypeExpr valTy) { CheckGlobalName(valCtorName.ToString(), valCtorName._lexLocation); var kind = Typeof(_definingCtorEnv, valTy); if (kind == null) { throw new SemanticException("Invalid Type of Value Constructor", valCtorName._lexLocation); } var final = valTy.FinalType; //var errType = final.Match(DefiningCtorAsShape(),this); //no gadt so simplify into the following var expectingCtorTy = DefiningCtorAsType(); var errType = final.Match(expectingCtorTy, this); if (errType != null) { throw new InvalidFinalTypeForValueCtor(valCtorName, expectingCtorTy, final); } }
public void ToString(string n1, string expectedResult, Refactorization r) { string result = string.Empty; if (r == Refactorization.Current) { var name = Name.BuildName(n1); for (long i = 0; i < reps; i++) { result = name.ToString(); } result = RemoveWhiteSpace(result); } else if (r == Refactorization.New) { var name = new SimpleName(n1); for (long i = 0; i < reps; i++) { result = name.ToString(); } } Assert.That(string.Equals(expectedResult, result, StringComparison.InvariantCultureIgnoreCase)); }