internal override bool match(ATerm pattern, ArrayList list) { if (this.equals(pattern)) { return(true); } if (pattern.getType() == ATermType.PLACEHOLDER) { ATerm type = ((ATermPlaceholder)pattern).getPlaceholder(); if (type.getType() == ATermType.APPL) { ATermAppl appl = (ATermAppl)type; AFun afun = appl.getAFun(); if (afun.getName().Equals("blob") && afun.getArity() == 0 && !afun.isQuoted()) { list.Add(data); return(true); } } } return(base.match(pattern, list)); }
public virtual void initHashCode(ATermList annos, AFun fun, ATerm[] i_args) { this.fun = fun; this.args = i_args; this.internSetAnnotations(annos); this.setHashCode(this.hashFunction()); }
public virtual ATermAppl makeAppl(AFun fun, ATerm[] args, ATermList annos) { lock (protoAppl) { protoAppl.initHashCode(annos, fun, args); return((ATermAppl)build(protoAppl)); } }
/* public final static void main(String[] args) * { * TestFib t = new TestFib(new PureFactory()); * * t.test1(); * t.test2(); * t.test3(15); * } */ public TestFib(ATermFactory factory) { this.factory = factory; zero = factory.makeAFun("zero", 0, false); suc = factory.makeAFun("suc", 1, false); plus = factory.makeAFun("plus", 2, false); fib = factory.makeAFun("fib", 1, false); tzero = factory.makeAppl(zero); }
/* public final static void main(String[] args) { TestFib t = new TestFib(new PureFactory()); t.test1(); t.test2(); t.test3(15); } */ public TestFib(ATermFactory factory) { this.factory = factory; zero = factory.makeAFun("zero", 0, false); suc = factory.makeAFun("suc", 1, false); plus = factory.makeAFun("plus", 2, false); fib = factory.makeAFun("fib", 1, false); tzero = factory.makeAppl(zero); }
internal override bool match(ATerm pattern, ArrayList list) { if (pattern.getType() == ATermType.APPL) { ATermAppl appl = (ATermAppl)pattern; if (fun.equals(appl.getAFun())) { return(matchArguments(appl.getArgumentArray(), list)); } else { return(false); } } if (pattern.getType() == ATermType.PLACEHOLDER) { ATerm type = ((ATermPlaceholder)pattern).getPlaceholder(); if (type.getType() == ATermType.APPL) { ATermAppl appl = (ATermAppl)type; AFun afun = appl.getAFun(); if (afun.getName().Equals("appl") && !afun.isQuoted()) { list.Add(fun.getName()); return(matchArguments(appl.getArgumentArray(), list)); } else if (afun.getName().Equals("str") && !afun.isQuoted()) { if (fun.isQuoted()) { list.Add(fun.getName()); return(matchArguments(appl.getArgumentArray(), list)); } } else if (afun.getName().Equals("fun") && !afun.isQuoted()) { if (!fun.isQuoted()) { list.Add(fun.getName()); return(matchArguments(appl.getArgumentArray(), list)); } } else if (afun.getName().Equals("id") && !afun.isQuoted()) { if (!fun.isQuoted()) { list.Add(fun.getName()); return(matchArguments(appl.getArgumentArray(), list)); } } } } return(base.match(pattern, list)); }
/* * public final static void main(String[] args) * { * TestFibInterpreted t = new TestFibInterpreted(new PureFactory()); * * t.initRules(); * t.test1(5); * } */ public TestFibInterpreted(ATermFactory factory) { this.factory = factory; zero = factory.makeAFun("zero", 0, false); suc = factory.makeAFun("suc", 1, false); plus = factory.makeAFun("plus", 2, false); fib = factory.makeAFun("fib", 1, false); tzero = factory.makeAppl(zero); fail = factory.parse("fail"); }
internal virtual void init(int hashCode, ATermList annos, AFun fun, ATerm[] i_args) { base.init(hashCode, annos); this.fun = fun; this.args = new ATerm[fun.getArity()]; for(int i=0; i<fun.getArity(); i++) { this.args[i] = i_args[i]; } }
internal virtual void init(int hashCode, ATermList annos, AFun fun, ATerm[] i_args) { base.init(hashCode, annos); this.fun = fun; this.args = new ATerm[fun.getArity()]; for (int i = 0; i < fun.getArity(); i++) { this.args[i] = i_args[i]; } }
/* * public final static void main(String[] args) { TestFibInterpreted t = new TestFibInterpreted(new PureFactory()); t.initRules(); t.test1(5); } */ public TestFibInterpreted(ATermFactory factory) { this.factory = factory; zero = factory.makeAFun("zero", 0, false); suc = factory.makeAFun("suc", 1, false); plus = factory.makeAFun("plus", 2, false); fib = factory.makeAFun("fib", 1, false); tzero = factory.makeAppl(zero); fail = factory.parse("fail"); }
protected override void SetUp() { base.SetUp(); factory = Tester.theFactory; zero = factory.makeAFun("zero", 0, false); suc = factory.makeAFun("suc", 1, false); plus = factory.makeAFun("plus", 2, false); fib = factory.makeAFun("fib", 1, false); tzero = factory.makeAppl(zero); fail = factory.parse("fail"); }
public virtual ATermAppl makeAppl( AFun fun, ATerm arg1, ATerm arg2, ATerm arg3, ATerm arg4, ATerm arg5, ATerm arg6, ATerm arg7) { ATerm[] args = { arg1, arg2, arg3, arg4, arg5, arg6, arg7 }; return(makeAppl(fun, args)); }
public override bool equivalent(SharedObject obj) { try { AFun peer = (AFun)obj; return(peer.getName() == name && peer.getArity() == arity && peer.isQuoted() == _isQuoted); } catch (InvalidCastException) { return(false); } }
public virtual void testMakeAppl() { factory = Tester.theFactory; AFun[] symmies = new AFun[4]; ATermAppl[] apples = new ATermAppl[16]; symmies[0] = factory.makeAFun("f0", 0, false); symmies[1] = factory.makeAFun("f1", 1, false); symmies[2] = factory.makeAFun("f6", 6, false); symmies[3] = factory.makeAFun("f10", 10, false); apples[0] = factory.makeAppl(symmies[0]); apples[1] = factory.makeAppl(symmies[1], (ATerm)apples[0]); apples[2] = factory.makeAppl(symmies[1], (ATerm)apples[1]); apples[3] = factory.makeAppl(symmies[1], (ATerm)apples[0]); apples[4] = factory.makeAppl(symmies[2], new ATerm[] {(ATerm)apples[0], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[0], (ATerm)apples[1]}); apples[5] = factory.makeAppl(symmies[3], new ATerm[] {(ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1]}); apples[6] = (ATermAppl)apples[2].setArgument((ATerm)apples[0], 0); ATerm[] args = { apples[0], apples[1], apples[0], apples[1], apples[0], apples[1], apples[0], apples[1], apples[0], apples[1] }; apples[7] = factory.makeAppl(symmies[3], args); AssertTrue(factory.makeAppl(symmies[0]) == apples[0]); AssertTrue(factory.makeAppl(symmies[1], (ATerm) apples[0]) == apples[1]); AssertTrue(apples[6].isEqual(apples[1])); AssertTrue(apples[1].isEqual(apples[3])); AssertTrue(!apples[2].isEqual(apples[1])); AssertTrue(!apples[2].isEqual(apples[6])); AssertTrue(!apples[1].isEqual(apples[2])); AssertTrue(!apples[2].isEqual(apples[3])); AssertTrue(!apples[0].isEqual(apples[1])); // Console.Out.WriteLine("pass: testMakeAppl"); }
public virtual void testMakeAppl() { factory = Tester.theFactory; AFun[] symmies = new AFun[4]; ATermAppl[] apples = new ATermAppl[16]; symmies[0] = factory.makeAFun("f0", 0, false); symmies[1] = factory.makeAFun("f1", 1, false); symmies[2] = factory.makeAFun("f6", 6, false); symmies[3] = factory.makeAFun("f10", 10, false); apples[0] = factory.makeAppl(symmies[0]); apples[1] = factory.makeAppl(symmies[1], (ATerm)apples[0]); apples[2] = factory.makeAppl(symmies[1], (ATerm)apples[1]); apples[3] = factory.makeAppl(symmies[1], (ATerm)apples[0]); apples[4] = factory.makeAppl(symmies[2], new ATerm[] { (ATerm)apples[0], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[0], (ATerm)apples[1] }); apples[5] = factory.makeAppl(symmies[3], new ATerm[] { (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1] }); apples[6] = (ATermAppl)apples[2].setArgument((ATerm)apples[0], 0); ATerm[] args = { apples[0], apples[1], apples[0], apples[1], apples[0], apples[1], apples[0], apples[1], apples[0], apples[1] }; apples[7] = factory.makeAppl(symmies[3], args); AssertTrue(factory.makeAppl(symmies[0]) == apples[0]); AssertTrue(factory.makeAppl(symmies[1], (ATerm)apples[0]) == apples[1]); AssertTrue(apples[6].isEqual(apples[1])); AssertTrue(apples[1].isEqual(apples[3])); AssertTrue(!apples[2].isEqual(apples[1])); AssertTrue(!apples[2].isEqual(apples[6])); AssertTrue(!apples[1].isEqual(apples[2])); AssertTrue(!apples[2].isEqual(apples[3])); AssertTrue(!apples[0].isEqual(apples[1])); // Console.Out.WriteLine("pass: testMakeAppl"); }
public virtual ATermAppl makeApplList(AFun fun, ATermList list, ATermList annos) { ATerm[] arg_array; arg_array = new ATerm[list.getLength()]; int i = 0; while (!list.isEmpty()) { arg_array[i++] = list.getFirst(); list = list.getNext(); } return(makeAppl(fun, arg_array, annos)); }
private bool isListPlaceHolder(ATerm pattern) { if (pattern.getType() == ATermType.PLACEHOLDER) { ATerm type = ((ATermPlaceholder)pattern).getPlaceholder(); if (type.getType() == ATermType.APPL) { ATermAppl appl = (ATermAppl)type; AFun afun = appl.getAFun(); if (afun.getName().Equals("list") && afun.getArity() == 0 && !afun.isQuoted()) { return(true); } } } return(false); }
internal virtual bool match(ATerm pattern, ArrayList list) { if (pattern.getType() == ATermType.PLACEHOLDER) { ATerm type = ((ATermPlaceholder)pattern).getPlaceholder(); if (type.getType() == ATermType.APPL) { ATermAppl appl = (ATermAppl)type; AFun afun = appl.getAFun(); if (afun.getName().Equals("term") && afun.getArity() == 0 && !afun.isQuoted()) { list.Add(this); return(true); } } } return(false); }
public void testMakeAppl() { AFun[] symmies = new AFun[4]; ATermAppl[] apples = new ATermAppl[16]; symmies[0] = factory.makeAFun("f0", 0, false); symmies[1] = factory.makeAFun("f1", 1, false); symmies[2] = factory.makeAFun("f6", 6, false); symmies[3] = factory.makeAFun("f10", 10, false); apples[0] = factory.makeAppl(symmies[0]); apples[1] = factory.makeAppl(symmies[1], (ATerm)apples[0]); apples[2] = factory.makeAppl(symmies[1], (ATerm)apples[1]); apples[3] = factory.makeAppl(symmies[1], (ATerm)apples[0]); apples[4] = factory.makeAppl(symmies[2], new ATerm[] { (ATerm)apples[0], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[0], (ATerm)apples[1] }); apples[5] = factory.makeAppl(symmies[3], new ATerm[] { (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1] }); apples[6] = (ATermAppl)apples[2].setArgument((ATerm)apples[0], 0); assertTrue(apples[6].isEqual(apples[1])); assertTrue(apples[1].isEqual(apples[3])); assertTrue(!apples[2].isEqual(apples[1])); assertTrue(!apples[2].isEqual(apples[6])); assertTrue(!apples[1].isEqual(apples[2])); assertTrue(!apples[2].isEqual(apples[3])); assertTrue(!apples[0].isEqual(apples[1])); Console.Out.WriteLine("pass: testMakeAppl"); }
public override void visitAppl(ATermAppl appl) // throws VisitFailure { AFun fun = appl.getAFun(); string name = fun.ToString(); stream.Write(name); position += name.Length; if (fun.getArity() > 0 || name.Equals("")) { stream.Write('('); position++; for (int i = 0; i < fun.getArity(); i++) { if (i != 0) { stream.Write(','); position++; } visitChild(appl.getArgument(i)); } stream.Write(')'); position++; } }
public virtual ATermAppl makeAppl(AFun fun) { return makeAppl(fun, array0); }
internal virtual ATermAppl make(AFun fun, ATerm[] i_args, ATermList annos) { return getPureFactory().makeAppl(fun, i_args, annos); }
public virtual void visitAFun(AFun fun) // throws VisitFailure { visitor.visit(fun); }
public virtual ATermAppl makeAppl(AFun fun, ATerm[] args) { return(makeAppl(fun, args, empty)); }
public void testMakeAppl() { AFun[] symmies = new AFun[4]; ATermAppl[] apples = new ATermAppl[16]; symmies[0] = factory.makeAFun("f0", 0, false); symmies[1] = factory.makeAFun("f1", 1, false); symmies[2] = factory.makeAFun("f6", 6, false); symmies[3] = factory.makeAFun("f10", 10, false); apples[0] = factory.makeAppl(symmies[0]); apples[1] = factory.makeAppl(symmies[1], (ATerm)apples[0]); apples[2] = factory.makeAppl(symmies[1], (ATerm)apples[1]); apples[3] = factory.makeAppl(symmies[1], (ATerm)apples[0]); apples[4] = factory.makeAppl(symmies[2], new ATerm[] {(ATerm)apples[0], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[0], (ATerm)apples[1]}); apples[5] = factory.makeAppl(symmies[3], new ATerm[] {(ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1], (ATerm)apples[0], (ATerm)apples[1]}); apples[6] = (ATermAppl)apples[2].setArgument((ATerm)apples[0], 0); assertTrue(apples[6].isEqual(apples[1])); assertTrue(apples[1].isEqual(apples[3])); assertTrue(!apples[2].isEqual(apples[1])); assertTrue(!apples[2].isEqual(apples[6])); assertTrue(!apples[1].isEqual(apples[2])); assertTrue(!apples[2].isEqual(apples[3])); assertTrue(!apples[0].isEqual(apples[1])); Console.Out.WriteLine("pass: testMakeAppl"); }
public virtual ATermAppl makeAppl(AFun fun, ATerm arg1, ATerm arg2, ATerm arg3, ATerm arg4, ATerm arg5) { ATerm[] argarray5 = new ATerm[] { arg1, arg2, arg3, arg4, arg5 }; return makeAppl(fun, argarray5); }
public virtual ATermAppl makeAppl(AFun fun, ATerm arg1, ATerm arg2, ATerm arg3) { ATerm[] argarray3 = new ATerm[] { arg1, arg2, arg3 }; return makeAppl(fun, argarray3); }
internal virtual ATermAppl make(AFun fun, ATerm[] i_args) { return(make(fun, i_args, getPureFactory().makeList())); }
internal virtual ATermAppl make(AFun fun, ATerm[] i_args, ATermList annos) { return(getPureFactory().makeAppl(fun, i_args, annos)); }
public virtual ATermAppl makeAppl(AFun fun, ATerm arg1, ATerm arg2, ATerm arg3) { ATerm[] argarray3 = new ATerm[] { arg1, arg2, arg3 }; return(makeAppl(fun, argarray3)); }
public virtual ATermAppl makeAppl(AFun fun, ATerm arg1, ATerm arg2, ATerm arg3, ATerm arg4) { ATerm[] argarray4 = new ATerm[] { arg1, arg2, arg3, arg4 }; return(makeAppl(fun, argarray4)); }
public virtual ATermAppl makeAppl(AFun fun, ATerm arg) { ATerm[] argarray1 = new ATerm[] { arg }; return makeAppl(fun, argarray1); }
public void testMaxTerm() { AFun f = factory.makeAFun("f", 1, false); AFun a = factory.makeAFun("a", 0, false); int size = 500; ATerm[] array1 = new ATerm[size]; ATerm[] array2 = new ATerm[size]; long start = DateTime.Now.Ticks; Console.Out.WriteLine("array1"); for (int i = 0; i < size; i++) { if (i % 100 == 0) { Console.Out.Write(i + " "); } int idx = i % 10; array1[idx] = factory.makeAppl(a); for (int j = 0; j < 2 * i; j++) { array1[idx] = factory.makeAppl(f, array1[idx]); } //Console.Out.WriteLine("array[" + i + "] = " + array[i]); } Console.Out.WriteLine("\narray2"); for (int i = 0; i < size; i++) { if (i % 100 == 0) { Console.Out.Write(i + " "); } int idx = i % 10; array2[idx] = factory.makeAppl(a); for (int j = 0; j < 2 * i; j++) { array2[idx] = factory.makeAppl(f, array2[idx]); } //Console.Out.WriteLine("array[" + i + "] = " + array[i]); } Console.Out.WriteLine("\ntest"); for (int i = 0; i < size; i++) { if (i % 500 == 0) { Console.Out.Write(i + " "); } int idx = i % 10; if (array1[idx] != array2[idx]) { Console.Out.WriteLine("array1[" + idx + "] = " + array1[idx]); Console.Out.WriteLine("array2[" + idx + "] = " + array2[idx]); throw new Exception("i = " + idx); } } long end = DateTime.Now.Ticks; Console.Out.WriteLine("\ntest " + size + " ok in " + (end - start) + " ms"); Console.Out.WriteLine(factory); }
public virtual ATermAppl makeAppl(AFun fun, ATerm arg1, ATerm arg2) { ATerm[] argarray2 = new ATerm[] { arg1, arg2 }; return makeAppl(fun, argarray2); }
public virtual ATermAppl makeAppl(AFun fun, ATerm arg1, ATerm arg2) { ATerm[] argarray2 = new ATerm[] { arg1, arg2 }; return(makeAppl(fun, argarray2)); }
public virtual ATermAppl makeAppl(AFun fun, ATerm arg1, ATerm arg2, ATerm arg3, ATerm arg4) { ATerm[] argarray4 = new ATerm[] { arg1, arg2, arg3, arg4 }; return makeAppl(fun, argarray4); }
public virtual ATermAppl makeAppl(AFun fun) { return(makeAppl(fun, array0)); }
public virtual ATermAppl makeAppl( AFun fun, ATerm arg1, ATerm arg2, ATerm arg3, ATerm arg4, ATerm arg5, ATerm arg6, ATerm arg7) { ATerm[] args = { arg1, arg2, arg3, arg4, arg5, arg6, arg7 }; return makeAppl(fun, args); }
internal virtual ATermAppl make(AFun fun, ATerm[] i_args) { return make(fun, i_args, getPureFactory().makeList()); }
public virtual ATermAppl makeAppl(AFun fun, ATerm arg) { ATerm[] argarray1 = new ATerm[] { arg }; return(makeAppl(fun, argarray1)); }
public virtual ATermAppl makeAppl(AFun fun, ATerm[] args) { return makeAppl(fun, args, empty); }
public virtual ATermAppl makeApplList(AFun fun, ATermList list) { return(makeApplList(fun, list, empty)); }
public virtual ATermAppl makeAppl(AFun fun, ATerm[] args, ATermList annos) { lock (protoAppl) { protoAppl.initHashCode(annos, fun, args); return (ATermAppl) build(protoAppl); } }
public virtual ATermAppl makeApplList(AFun fun, ATermList list) { return makeApplList(fun, list, empty); }
public virtual ATermAppl makeApplList(AFun fun, ATermList list, ATermList annos) { ATerm[] arg_array; arg_array = new ATerm[list.getLength()]; int i = 0; while (!list.isEmpty()) { arg_array[i++] = list.getFirst(); list = list.getNext(); } return makeAppl(fun, arg_array, annos); }
public override ATerm make(ArrayList args) { PureFactory factory = getPureFactory(); ATermAppl appl; AFun fun; string name; appl = (ATermAppl)type; fun = appl.getAFun(); name = fun.getName(); if (!fun.isQuoted()) { if (fun.getArity() == 0) { if (name.Equals("term")) { ATerm t = (ATerm)args[0]; args.RemoveAt(0); return(t); } else if (name.Equals("list")) { ATermList l = (ATermList)args[0]; args.RemoveAt(0); return(l); } else if (name.Equals("bool")) { bool b = (bool)args[0]; args.RemoveAt(0); return(factory.makeAppl(factory.makeAFun(b.ToString(), 0, false))); } else if (name.Equals("int")) { int i = (int)args[0]; args.RemoveAt(0); return(factory.makeInt(i)); } else if (name.Equals("real")) { double d = (double)args[0]; args.RemoveAt(0); return(factory.makeReal(d)); } else if (name.Equals("placeholder")) { ATerm atype = (ATerm)args[0]; args.RemoveAt(0); return(factory.makePlaceholder(atype)); } else if (name.Equals("str")) { string str = (string)args[0]; args.RemoveAt(0); return(factory.makeAppl(factory.makeAFun(str, 0, true))); } else if (name.Equals("id")) { string str = (string)args[0]; args.RemoveAt(0); return(factory.makeAppl(factory.makeAFun(str, 0, false))); } else if (name.Equals("fun")) { string str = (string)args[0]; args.RemoveAt(0); return(factory.makeAppl(factory.makeAFun(str, 0, false))); } } if (name.Equals("appl")) { ATermList oldargs = appl.getArguments(); string newname = (string)args[0]; args.RemoveAt(0); ATermList newargs = (ATermList)oldargs.make(args); AFun newfun = factory.makeAFun(newname, newargs.getLength(), false); return(factory.makeApplList(newfun, newargs)); } } throw new Exception("illegal pattern: " + this); }
public virtual ATermAppl makeAppl(AFun fun, ATerm arg1, ATerm arg2, ATerm arg3, ATerm arg4, ATerm arg5) { ATerm[] argarray5 = new ATerm[] { arg1, arg2, arg3, arg4, arg5 }; return(makeAppl(fun, argarray5)); }