diff options
author | Shawn O. Pearce <sop@google.com> | 2011-06-03 17:42:47 -0700 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2011-06-03 17:42:47 -0700 |
commit | d98caf42d928f22577bf8f53439e565d1c1c85e2 (patch) | |
tree | 3ab548dc79d1edd7412ad7ac6646d3f5f8382a76 | |
parent | cb388d4d406f5acb352e6a815af6dbe84b13b1a9 (diff) | |
download | prolog-cafe-d98caf42d928f22577bf8f53439e565d1c1c85e2.tar.gz |
Make StructureTerm constructor a varags format
This cleans up the allocation of many StructureTerms.
-rw-r--r-- | src/builtin/PRED_$call_2.java | 9 | ||||
-rw-r--r-- | src/builtin/PRED_$get_instances_2.java | 13 | ||||
-rw-r--r-- | src/builtin/PRED_atom_concat_3.java | 3 | ||||
-rw-r--r-- | src/builtin/PRED_open_4.java | 12 | ||||
-rw-r--r-- | src/lang/StructureTerm.java | 2 |
5 files changed, 13 insertions, 26 deletions
diff --git a/src/builtin/PRED_$call_2.java b/src/builtin/PRED_$call_2.java index 32d3904..b9ace54 100644 --- a/src/builtin/PRED_$call_2.java +++ b/src/builtin/PRED_$call_2.java @@ -53,10 +53,11 @@ class PRED_$call_2 extends Predicate.P2 { if ((engine.getUnknown()).equals("fail")) return engine.fail(); - Term[] fa = {SymbolTerm.makeSymbol(functor), new IntegerTerm(arity)}; - Term[] r = {a1, new StructureTerm(SYM_SLASH_2, fa)}; - Term what = new StructureTerm(SYM_COLON_2, r); - + Term what = new StructureTerm(SYM_COLON_2, + a1, + new StructureTerm(SYM_SLASH_2, + SymbolTerm.makeSymbol(functor), + new IntegerTerm(arity))); ExistenceException err = new ExistenceException(this, 0, "procedure", what, e.getMessage()); err.initCause(e); throw err; diff --git a/src/builtin/PRED_$get_instances_2.java b/src/builtin/PRED_$get_instances_2.java index 4d778cf..2873e9b 100644 --- a/src/builtin/PRED_$get_instances_2.java +++ b/src/builtin/PRED_$get_instances_2.java @@ -41,17 +41,8 @@ class PRED_$get_instances_2 extends Predicate.P2 { int i = ((IntegerTerm)car).intValue(); Term e = engine.internalDB.get(i); if (e != null) { - Term[] arg = {e, car}; - x = new ListTerm(new StructureTerm(COMMA, arg), x); - } - // else { - // System.out.println("index " + i + " is deleted."); - // } - - // if (e == null) - // throw new SystemException("invalid index"); - // Term[] arg = {e, car}; - // x = new ListTerm(new StructureTerm(COMMA, arg), x); + x = new ListTerm(new StructureTerm(COMMA, e, car), x); + } tmp = ((ListTerm)tmp).cdr().dereference(); } if (! a2.unify(x, engine.trail)) diff --git a/src/builtin/PRED_atom_concat_3.java b/src/builtin/PRED_atom_concat_3.java index 48f5875..77e4dec 100644 --- a/src/builtin/PRED_atom_concat_3.java +++ b/src/builtin/PRED_atom_concat_3.java @@ -33,8 +33,7 @@ public class PRED_atom_concat_3 extends Predicate.P3 { SymbolTerm.makeSymbol(str3.substring(i, endIndex))}; t = new ListTerm(new StructureTerm(AC_2, args), t); } - Term[] args12 = {a1,a2}; - return new PRED_$member_in_reverse_2(new StructureTerm(AC_2, args12), t, cont); + return new PRED_$member_in_reverse_2(new StructureTerm(AC_2, a1, a2), t, cont); } else if (! a3.isVariable()) { throw new IllegalTypeException(this, 3, "atom", a3); } diff --git a/src/builtin/PRED_open_4.java b/src/builtin/PRED_open_4.java index f4a2c88..24e482c 100644 --- a/src/builtin/PRED_open_4.java +++ b/src/builtin/PRED_open_4.java @@ -111,16 +111,12 @@ public class PRED_open_4 extends Predicate.P4 { } tmp = ((ListTerm) tmp).cdr().dereference(); } - Term[] args1 = {SYM_TEXT}; - Term[] args2 = {a2}; - Term[] args3 = {SymbolTerm.makeSymbol(file.getAbsolutePath())}; - opts = new ListTerm(new StructureTerm(SYM_TYPE_1, args1), opts); - opts = new ListTerm(new StructureTerm(SYM_MODE_1, args2), opts); - opts = new ListTerm(new StructureTerm(SYM_FILE_NAME_1, args3), opts); + opts = new ListTerm(new StructureTerm(SYM_TYPE_1, SYM_TEXT), opts); + opts = new ListTerm(new StructureTerm(SYM_MODE_1, a2), opts); + opts = new ListTerm(new StructureTerm(SYM_FILE_NAME_1, SymbolTerm.makeSymbol(file.getAbsolutePath())), opts); if (alias != null) { engine.getStreamManager().put(alias, streamObject); - Term[] as = {alias}; - opts = new ListTerm(new StructureTerm(SYM_ALIAS_1, as), opts); + opts = new ListTerm(new StructureTerm(SYM_ALIAS_1, alias), opts); } ((VariableTerm)a3).bind(streamObject, engine.trail); engine.getStreamManager().put(streamObject, opts); diff --git a/src/lang/StructureTerm.java b/src/lang/StructureTerm.java index 354a66b..ef806cf 100644 --- a/src/lang/StructureTerm.java +++ b/src/lang/StructureTerm.java @@ -35,7 +35,7 @@ public class StructureTerm extends Term { * such that <code>_functor</code> is the functor symbol, and * <code>_args</code> is the argument terms respectively. */ - public StructureTerm(SymbolTerm _functor, Term[] _args){ + public StructureTerm(SymbolTerm _functor, Term... _args){ functor = _functor; arity = functor.arity(); args = _args; |