public Node convert(final ATerm term, final Node s) { final Node prevSubj = _subj; _subj = s; _obj = null; if (term instanceof ATermAppl) visit((ATermAppl) term); else if (term instanceof ATermInt) _obj = NodeFactory.createLiteral(term.toString(), null, XSDDatatype.XSDnonNegativeInteger); else if (term instanceof ATermList) visitList((ATermList) term); else throw new IllegalArgumentException(term.toString()); _subj = prevSubj; return _obj; }
/** * Returns a header for the given term. * * @param term * The term we are requesting a header for. * @return The constructed header. */ private static byte getHeader(final ATerm term) { return (byte) term.getType(); }
final ATerm term = current.term; if (term.getChildCount() > current.subTermIndex + 1) if (term.getType() != ATerm.LIST) next = term.getChildAt(++current.subTermIndex); else
public void testFiles() throws IOException { final ATerm t1 = _factory.readFromFile(_srcdir + "/test.trm"); // System.out.println("done reading test.trm"); final ATerm t2 = _factory.readFromFile(_srcdir + "/test.taf"); // System.out.println("done reading test.taf"); try (PrintStream stream = new PrintStream(new FileOutputStream("test.trm2"))) { t1.writeToTextFile(stream); stream.println(); stream.close(); // System.out.println("done writing test.trm2"); } try (PrintStream stream = new PrintStream(new FileOutputStream("test.taf2"))) { t1.writeToSharedTextFile(stream); stream.close(); // System.out.println("done writing test.taf2"); test_assert(t1.equals(t2)); } }
list = subject.match(lhs[ruleNumber]); if (list != null) { return rhs[ruleNumber]; } ruleNumber++; list = subject.match(lhs[ruleNumber]); if (list != null) { return rhs[ruleNumber]; } ruleNumber++; list = subject.match(lhs[ruleNumber]); if (list != null) list = subject.match(lhs[ruleNumber]); if (list != null) { return _factory.make(rhs[ruleNumber], list); } ruleNumber++; list = subject.match(lhs[ruleNumber]); if (list != null) { return _factory.make(rhs[ruleNumber], list); } ruleNumber++; list = subject.match(lhs[ruleNumber]); if (list != null) if (Xp.equals(fail)) { return fail; } list.clear(); list.add(Xp); list = subject.match(lhs[ruleNumber]); if (list != null)
public void testMatch() { ATerm t = _factory.parse("node(\"Pico-eval\",box,182,21,62,26)"); List<Object> result = t.match("node(<str>,<fun>,<int>,<int>,<int>,<int>)"); test_assert(result != null); t = _factory.parse("f(1,2,3)"); result = t.match("f(1,2,3)"); test_assert(result != null); // System.out.println("pass: testMatch"); }
@Override public ATerm visit(final ATerm v) { return v.accept(this); }
public ATerm oneStepInnermost(ATerm subject) { List<Object> list; // fib(zero) -> suc(zero) list = subject.match(lhs[0]); if (list != null) { return rhs[0]; } // fib(suc(zero)) -> suc(zero) list = subject.match(lhs[1]); if (list != null) { return rhs[1]; } // fib(suc(suc(X))) -> plus(fib(X),fib(suc(X))) list = subject.match(lhs[2]); if (list != null) { final ATerm X = (ATerm) list.get(0); final ATerm X1 = normalize(_factory.makeAppl(fib, X)); final ATerm X2 = normalize(_factory.makeAppl(fib, _factory.makeAppl(suc, X))); return _factory.makeAppl(plus, X1, X2); } // plus(zero,X) -> X list = subject.match(lhs[3]); if (list != null) { return (ATerm) list.get(0); } // plus(suc(X),Y) -> plus(X,suc(Y))) list = subject.match(lhs[4]); if (list != null) { return _factory.make(rhs[4], list); } return fail; }
@Override public ATerm visit(final ATerm v) { return v.accept(this); }
public Node convert(final ATerm term, final Node s) { final Node prevSubj = _subj; _subj = s; _obj = null; if (term instanceof ATermAppl) visit((ATermAppl) term); else if (term instanceof ATermInt) _obj = NodeFactory.createLiteral(term.toString(), null, XSDDatatype.XSDnonNegativeInteger); else if (term instanceof ATermList) visitList((ATermList) term); else throw new IllegalArgumentException(term.toString()); _subj = prevSubj; return _obj; }
test(T[0].match("f(1,2,3)") != null, "match-1a"); List<Object> result = T[1].match("<term>"); result = T[1].match("[<list>]"); result = T[1].match("[<int>,<list>]"); result = _factory.parse("f(a)").match("f(<term>)"); result = _factory.parse("f(a)").match("<term>"); result = _factory.parse("f(a)").match("<fun(<term>)>"); result = _factory.parse("a").match("<fun>"); result = T[0].match("f(1,<int>,3)"); test(result != null && result.size() == 1 && result.get(0).equals(new Integer(2)), "match-3"); result = T[1].match("[<list>]"); test(result != null && result.size() == 1 && result.get(0).equals(T[1]), "match-6a"); result = T[1].match("[<int>,<list>]"); test(result != null && result.size() == 2 && result.get(0).equals(new Integer(1)), "match-6b"); test(result != null && result.get(1).equals(_factory.parse("[2,3]")), "match-6c"); result = empty.match("[]"); result = empty.match("[<list>]");
static public ATermList toSet(final ATerm[] a, final int size) { Arrays.sort(a, 0, size, Comparators.termComparator); ATermList set = makeList(a[size - 1]); for (int i = size - 2; i >= 0; i--) { final ATerm s = set.getFirst(); if (!s.equals(a[i])) set = set.insert(a[i]); } return set; }
public Node convert(final ATerm term, final Node s) { final Node prevSubj = _subj; _subj = s; _obj = null; if (term instanceof ATermAppl) visit((ATermAppl) term); else if (term instanceof ATermInt) _obj = NodeFactory.createLiteral(term.toString(), null, XSDDatatype.XSDnonNegativeInteger); else if (term instanceof ATermList) visitList((ATermList) term); else throw new IllegalArgumentException(term.toString()); _subj = prevSubj; return _obj; }
protected boolean match(final ATerm pattern, final List<Object> list) { if (pattern.getType() == PLACEHOLDER) { final ATerm type = ((ATermPlaceholder) pattern).getPlaceholder(); if (type.getType() == ATerm.APPL) { final ATermAppl appl = (ATermAppl) type; final AFun afun = appl.getAFun(); if (afun.getName().equals("term") && afun.getArity() == 0 && !afun.isQuoted()) { list.add(this); return true; } } } return false; }
static public ATermList toSet(final ATerm[] a, final int size) { Arrays.sort(a, 0, size, Comparators.termComparator); ATermList set = makeList(a[size - 1]); for (int i = size - 2; i >= 0; i--) { final ATerm s = set.getFirst(); if (!s.equals(a[i])) set = set.insert(a[i]); } return set; }