Add missing @Override annotations Change-Id: I0ad0c0952a556de4b38a0f31f38cfdc84f843508
diff --git a/src/builtin/PRED_$atom_type0_2.java b/src/builtin/PRED_$atom_type0_2.java index b3e81c3..99bf5b6 100644 --- a/src/builtin/PRED_$atom_type0_2.java +++ b/src/builtin/PRED_$atom_type0_2.java
@@ -13,6 +13,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_$begin_exception_1.java b/src/builtin/PRED_$begin_exception_1.java index c4583fe..54fefc7 100644 --- a/src/builtin/PRED_$begin_exception_1.java +++ b/src/builtin/PRED_$begin_exception_1.java
@@ -16,6 +16,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_$call_2.java b/src/builtin/PRED_$call_2.java index 7034583..3362933 100644 --- a/src/builtin/PRED_$call_2.java +++ b/src/builtin/PRED_$call_2.java
@@ -20,6 +20,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_$call_closure_1.java b/src/builtin/PRED_$call_closure_1.java index 6371364..b4c7b4e 100644 --- a/src/builtin/PRED_$call_closure_1.java +++ b/src/builtin/PRED_$call_closure_1.java
@@ -12,6 +12,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_$compare0_3.java b/src/builtin/PRED_$compare0_3.java index 99339f2..24fd061 100644 --- a/src/builtin/PRED_$compare0_3.java +++ b/src/builtin/PRED_$compare0_3.java
@@ -13,6 +13,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a2 = arg2.dereference();
diff --git a/src/builtin/PRED_$compiled_predicate_3.java b/src/builtin/PRED_$compiled_predicate_3.java index 4ac03ff..4d3a547 100644 --- a/src/builtin/PRED_$compiled_predicate_3.java +++ b/src/builtin/PRED_$compiled_predicate_3.java
@@ -14,6 +14,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1 = arg1.dereference();
diff --git a/src/builtin/PRED_$compiled_predicate_or_builtin_3.java b/src/builtin/PRED_$compiled_predicate_or_builtin_3.java index d220849..8b37fdb 100644 --- a/src/builtin/PRED_$compiled_predicate_or_builtin_3.java +++ b/src/builtin/PRED_$compiled_predicate_or_builtin_3.java
@@ -14,6 +14,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1 = arg1.dereference();
diff --git a/src/builtin/PRED_$cut_1.java b/src/builtin/PRED_$cut_1.java index fe44bf8..2814ac8 100644 --- a/src/builtin/PRED_$cut_1.java +++ b/src/builtin/PRED_$cut_1.java
@@ -13,6 +13,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { // engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_$end_exception_1.java b/src/builtin/PRED_$end_exception_1.java index 6e7385a..a42d2ff 100644 --- a/src/builtin/PRED_$end_exception_1.java +++ b/src/builtin/PRED_$end_exception_1.java
@@ -14,6 +14,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_$erase_1.java b/src/builtin/PRED_$erase_1.java index 427ea41..62548a9 100644 --- a/src/builtin/PRED_$erase_1.java +++ b/src/builtin/PRED_$erase_1.java
@@ -13,6 +13,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1 = arg1;
diff --git a/src/builtin/PRED_$fast_write_2.java b/src/builtin/PRED_$fast_write_2.java index d70ff3f..e826999 100644 --- a/src/builtin/PRED_$fast_write_2.java +++ b/src/builtin/PRED_$fast_write_2.java
@@ -18,6 +18,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_$fast_writeq_2.java b/src/builtin/PRED_$fast_writeq_2.java index be7deab..97fa0f4 100644 --- a/src/builtin/PRED_$fast_writeq_2.java +++ b/src/builtin/PRED_$fast_writeq_2.java
@@ -18,6 +18,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_$get_current_B_1.java b/src/builtin/PRED_$get_current_B_1.java index 7ee3bb6..b3cbc84 100644 --- a/src/builtin/PRED_$get_current_B_1.java +++ b/src/builtin/PRED_$get_current_B_1.java
@@ -12,6 +12,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_$get_exception_1.java b/src/builtin/PRED_$get_exception_1.java index 139ae12..5b8cc96 100644 --- a/src/builtin/PRED_$get_exception_1.java +++ b/src/builtin/PRED_$get_exception_1.java
@@ -12,6 +12,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_$get_hash_manager_1.java b/src/builtin/PRED_$get_hash_manager_1.java index 032859c..fca810d 100644 --- a/src/builtin/PRED_$get_hash_manager_1.java +++ b/src/builtin/PRED_$get_hash_manager_1.java
@@ -13,6 +13,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_$get_instances_2.java b/src/builtin/PRED_$get_instances_2.java index 6459148..707e8cd 100644 --- a/src/builtin/PRED_$get_instances_2.java +++ b/src/builtin/PRED_$get_instances_2.java
@@ -18,6 +18,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_$get_level_1.java b/src/builtin/PRED_$get_level_1.java index 55ad235..c42370f 100644 --- a/src/builtin/PRED_$get_level_1.java +++ b/src/builtin/PRED_$get_level_1.java
@@ -12,6 +12,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { // engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_$get_prolog_impl_flag_2.java b/src/builtin/PRED_$get_prolog_impl_flag_2.java index d53e7d9..2688b62 100644 --- a/src/builtin/PRED_$get_prolog_impl_flag_2.java +++ b/src/builtin/PRED_$get_prolog_impl_flag_2.java
@@ -16,6 +16,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_$hash_adda_3.java b/src/builtin/PRED_$hash_adda_3.java index 8fa9068..313fe70 100644 --- a/src/builtin/PRED_$hash_adda_3.java +++ b/src/builtin/PRED_$hash_adda_3.java
@@ -21,6 +21,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2, a3;
diff --git a/src/builtin/PRED_$hash_addz_3.java b/src/builtin/PRED_$hash_addz_3.java index 600deda..80e90ae 100644 --- a/src/builtin/PRED_$hash_addz_3.java +++ b/src/builtin/PRED_$hash_addz_3.java
@@ -21,6 +21,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2, a3;
diff --git a/src/builtin/PRED_$hash_remove_first_3.java b/src/builtin/PRED_$hash_remove_first_3.java index 7733ced..048bffe 100644 --- a/src/builtin/PRED_$hash_remove_first_3.java +++ b/src/builtin/PRED_$hash_remove_first_3.java
@@ -21,6 +21,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2, a3;
diff --git a/src/builtin/PRED_$insert_2.java b/src/builtin/PRED_$insert_2.java index 25d9525..e2df8dc 100644 --- a/src/builtin/PRED_$insert_2.java +++ b/src/builtin/PRED_$insert_2.java
@@ -14,6 +14,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_$neck_cut_0.java b/src/builtin/PRED_$neck_cut_0.java index 0049a92..c6618e3 100644 --- a/src/builtin/PRED_$neck_cut_0.java +++ b/src/builtin/PRED_$neck_cut_0.java
@@ -12,6 +12,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { // engine.setB0(); engine.neckCut();
diff --git a/src/builtin/PRED_$read_token0_3.java b/src/builtin/PRED_$read_token0_3.java index 68ac170..1369a3d 100644 --- a/src/builtin/PRED_$read_token0_3.java +++ b/src/builtin/PRED_$read_token0_3.java
@@ -23,6 +23,7 @@ /* The a1 must be user, user_input, and java.io.PushbackReader, otherwise fails. */ + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2, a3;
diff --git a/src/builtin/PRED_$set_exception_1.java b/src/builtin/PRED_$set_exception_1.java index bb8d33e..d95e8b6 100644 --- a/src/builtin/PRED_$set_exception_1.java +++ b/src/builtin/PRED_$set_exception_1.java
@@ -12,6 +12,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_$set_prolog_impl_flag_2.java b/src/builtin/PRED_$set_prolog_impl_flag_2.java index 1bb354b..c0f981b 100644 --- a/src/builtin/PRED_$set_prolog_impl_flag_2.java +++ b/src/builtin/PRED_$set_prolog_impl_flag_2.java
@@ -15,6 +15,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_$statistics_2.java b/src/builtin/PRED_$statistics_2.java index 897ebf7..db91e3b 100644 --- a/src/builtin/PRED_$statistics_2.java +++ b/src/builtin/PRED_$statistics_2.java
@@ -20,6 +20,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine){ engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_$term_hash_2.java b/src/builtin/PRED_$term_hash_2.java index c209375..5e46c41 100644 --- a/src/builtin/PRED_$term_hash_2.java +++ b/src/builtin/PRED_$term_hash_2.java
@@ -13,6 +13,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_$univ_2.java b/src/builtin/PRED_$univ_2.java index f6918cf..ca2a1e1 100644 --- a/src/builtin/PRED_$univ_2.java +++ b/src/builtin/PRED_$univ_2.java
@@ -19,10 +19,12 @@ this.cont = cont; } + @Override public String toString() { return "=..(" + arg1 + "," + arg2 + ")"; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_$write_toString_2.java b/src/builtin/PRED_$write_toString_2.java index 7c0dc18..0cc1671 100644 --- a/src/builtin/PRED_$write_toString_2.java +++ b/src/builtin/PRED_$write_toString_2.java
@@ -19,6 +19,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_arg_3.java b/src/builtin/PRED_arg_3.java index 1e472bc..8dfc519 100644 --- a/src/builtin/PRED_arg_3.java +++ b/src/builtin/PRED_arg_3.java
@@ -17,6 +17,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2, a3;
diff --git a/src/builtin/PRED_atom_chars_2.java b/src/builtin/PRED_atom_chars_2.java index e971f40..721b4f2 100644 --- a/src/builtin/PRED_atom_chars_2.java +++ b/src/builtin/PRED_atom_chars_2.java
@@ -15,6 +15,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_atom_codes_2.java b/src/builtin/PRED_atom_codes_2.java index e369f99..0687bba 100644 --- a/src/builtin/PRED_atom_codes_2.java +++ b/src/builtin/PRED_atom_codes_2.java
@@ -16,6 +16,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_atom_concat_3.java b/src/builtin/PRED_atom_concat_3.java index 8879cb8..7d16ea4 100644 --- a/src/builtin/PRED_atom_concat_3.java +++ b/src/builtin/PRED_atom_concat_3.java
@@ -18,6 +18,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2, a3;
diff --git a/src/builtin/PRED_atom_length_2.java b/src/builtin/PRED_atom_length_2.java index 60f9924..c778504 100644 --- a/src/builtin/PRED_atom_length_2.java +++ b/src/builtin/PRED_atom_length_2.java
@@ -16,6 +16,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_char_code_2.java b/src/builtin/PRED_char_code_2.java index 677d3be..f04ef1b 100644 --- a/src/builtin/PRED_char_code_2.java +++ b/src/builtin/PRED_char_code_2.java
@@ -16,6 +16,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_close_2.java b/src/builtin/PRED_close_2.java index eef0418..9937fde 100644 --- a/src/builtin/PRED_close_2.java +++ b/src/builtin/PRED_close_2.java
@@ -37,6 +37,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.requireFeature(Prolog.Feature.IO, this, arg1); engine.setB0();
diff --git a/src/builtin/PRED_current_engine_1.java b/src/builtin/PRED_current_engine_1.java index 626a4aa..2bbdb38 100644 --- a/src/builtin/PRED_current_engine_1.java +++ b/src/builtin/PRED_current_engine_1.java
@@ -12,6 +12,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_flush_output_1.java b/src/builtin/PRED_flush_output_1.java index d248069..bbd5c26 100644 --- a/src/builtin/PRED_flush_output_1.java +++ b/src/builtin/PRED_flush_output_1.java
@@ -17,6 +17,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_functor_3.java b/src/builtin/PRED_functor_3.java index 0ec8ca0..4b99ff1 100644 --- a/src/builtin/PRED_functor_3.java +++ b/src/builtin/PRED_functor_3.java
@@ -19,6 +19,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2, a3;
diff --git a/src/builtin/PRED_get_2.java b/src/builtin/PRED_get_2.java index 2939324..57014b4 100644 --- a/src/builtin/PRED_get_2.java +++ b/src/builtin/PRED_get_2.java
@@ -23,6 +23,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_get_char_2.java b/src/builtin/PRED_get_char_2.java index 88bc3e1..8acd91b 100644 --- a/src/builtin/PRED_get_char_2.java +++ b/src/builtin/PRED_get_char_2.java
@@ -31,6 +31,7 @@ return ((SymbolTerm)t).name().length() == 1; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_halt_1.java b/src/builtin/PRED_halt_1.java index 827f1c3..88b1dad 100644 --- a/src/builtin/PRED_halt_1.java +++ b/src/builtin/PRED_halt_1.java
@@ -14,6 +14,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_hash_clear_1.java b/src/builtin/PRED_hash_clear_1.java index 09f815a..5fbe0fe 100644 --- a/src/builtin/PRED_hash_clear_1.java +++ b/src/builtin/PRED_hash_clear_1.java
@@ -17,6 +17,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_hash_contains_key_2.java b/src/builtin/PRED_hash_contains_key_2.java index 0bbe0c2..cdf7929 100644 --- a/src/builtin/PRED_hash_contains_key_2.java +++ b/src/builtin/PRED_hash_contains_key_2.java
@@ -18,6 +18,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_hash_get_3.java b/src/builtin/PRED_hash_get_3.java index 6830e28..f530e2c 100644 --- a/src/builtin/PRED_hash_get_3.java +++ b/src/builtin/PRED_hash_get_3.java
@@ -19,6 +19,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2, a3;
diff --git a/src/builtin/PRED_hash_is_empty_1.java b/src/builtin/PRED_hash_is_empty_1.java index 2075963..772edbc 100644 --- a/src/builtin/PRED_hash_is_empty_1.java +++ b/src/builtin/PRED_hash_is_empty_1.java
@@ -17,6 +17,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_hash_keys_2.java b/src/builtin/PRED_hash_keys_2.java index dc0a73b..3275efc 100644 --- a/src/builtin/PRED_hash_keys_2.java +++ b/src/builtin/PRED_hash_keys_2.java
@@ -19,6 +19,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_hash_put_3.java b/src/builtin/PRED_hash_put_3.java index f5377e8..f8ab3b8 100644 --- a/src/builtin/PRED_hash_put_3.java +++ b/src/builtin/PRED_hash_put_3.java
@@ -19,6 +19,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2, a3;
diff --git a/src/builtin/PRED_hash_remove_2.java b/src/builtin/PRED_hash_remove_2.java index 8bb7284..0f85f6a 100644 --- a/src/builtin/PRED_hash_remove_2.java +++ b/src/builtin/PRED_hash_remove_2.java
@@ -18,6 +18,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_hash_size_2.java b/src/builtin/PRED_hash_size_2.java index ed1623a..10408f5 100644 --- a/src/builtin/PRED_hash_size_2.java +++ b/src/builtin/PRED_hash_size_2.java
@@ -19,6 +19,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_keysort_2.java b/src/builtin/PRED_keysort_2.java index 6ff42f5..6c5fa46 100644 --- a/src/builtin/PRED_keysort_2.java +++ b/src/builtin/PRED_keysort_2.java
@@ -20,6 +20,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2; @@ -74,6 +75,7 @@ } class KeySortComparator implements java.util.Comparator<Term> { + @Override public int compare(Term t1, Term t2) { Term arg1 = ((StructureTerm)t1).args()[0].dereference(); Term arg2 = ((StructureTerm)t2).args()[0].dereference();
diff --git a/src/builtin/PRED_new_hash_2.java b/src/builtin/PRED_new_hash_2.java index 9ac2923..6d0ef05 100644 --- a/src/builtin/PRED_new_hash_2.java +++ b/src/builtin/PRED_new_hash_2.java
@@ -19,6 +19,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_number_chars_2.java b/src/builtin/PRED_number_chars_2.java index 14526c7..6b54c5c 100644 --- a/src/builtin/PRED_number_chars_2.java +++ b/src/builtin/PRED_number_chars_2.java
@@ -16,6 +16,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_number_codes_2.java b/src/builtin/PRED_number_codes_2.java index b87173c..f93be07 100644 --- a/src/builtin/PRED_number_codes_2.java +++ b/src/builtin/PRED_number_codes_2.java
@@ -17,6 +17,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_open_4.java b/src/builtin/PRED_open_4.java index d502060..17a9cc4 100644 --- a/src/builtin/PRED_open_4.java +++ b/src/builtin/PRED_open_4.java
@@ -33,6 +33,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.requireFeature(Prolog.Feature.IO, this, arg1); engine.setB0();
diff --git a/src/builtin/PRED_put_char_2.java b/src/builtin/PRED_put_char_2.java index 6c4dba3..582310d 100644 --- a/src/builtin/PRED_put_char_2.java +++ b/src/builtin/PRED_put_char_2.java
@@ -20,6 +20,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_put_code_2.java b/src/builtin/PRED_put_code_2.java index 2de0a59..b39103b 100644 --- a/src/builtin/PRED_put_code_2.java +++ b/src/builtin/PRED_put_code_2.java
@@ -20,6 +20,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_raise_exception_1.java b/src/builtin/PRED_raise_exception_1.java index 54bca01..fb88008 100644 --- a/src/builtin/PRED_raise_exception_1.java +++ b/src/builtin/PRED_raise_exception_1.java
@@ -14,6 +14,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1;
diff --git a/src/builtin/PRED_read_line_2.java b/src/builtin/PRED_read_line_2.java index 5d53724..c32d8c5 100644 --- a/src/builtin/PRED_read_line_2.java +++ b/src/builtin/PRED_read_line_2.java
@@ -20,6 +20,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_regex_compile_2.java b/src/builtin/PRED_regex_compile_2.java index 147e5e5..3e48d0a 100644 --- a/src/builtin/PRED_regex_compile_2.java +++ b/src/builtin/PRED_regex_compile_2.java
@@ -27,6 +27,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1 = arg1.dereference();
diff --git a/src/builtin/PRED_regex_match_3.java b/src/builtin/PRED_regex_match_3.java index cf5fcd2..f23b048 100644 --- a/src/builtin/PRED_regex_match_3.java +++ b/src/builtin/PRED_regex_match_3.java
@@ -33,6 +33,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); engine.cont = cont;
diff --git a/src/builtin/PRED_sort_2.java b/src/builtin/PRED_sort_2.java index be71d37..0ae7b79 100644 --- a/src/builtin/PRED_sort_2.java +++ b/src/builtin/PRED_sort_2.java
@@ -17,6 +17,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/builtin/PRED_tab_2.java b/src/builtin/PRED_tab_2.java index f92c6df..bbe01fb 100644 --- a/src/builtin/PRED_tab_2.java +++ b/src/builtin/PRED_tab_2.java
@@ -19,6 +19,7 @@ this.cont = cont; } + @Override public Operation exec(Prolog engine) { engine.setB0(); Term a1, a2;
diff --git a/src/exceptions/BuiltinException.java b/src/exceptions/BuiltinException.java index e025454..c31106e 100644 --- a/src/exceptions/BuiltinException.java +++ b/src/exceptions/BuiltinException.java
@@ -28,6 +28,7 @@ message = _message; } + @Override public Term getMessageTerm() { return message; }
diff --git a/src/exceptions/EvaluationException.java b/src/exceptions/EvaluationException.java index 72a07fb..be37db0 100644 --- a/src/exceptions/EvaluationException.java +++ b/src/exceptions/EvaluationException.java
@@ -40,6 +40,7 @@ /** Returns a term representation of this <code>EvaluationException</code>: * <code>evaluation_error(goal,argNo,errorType)</code>. */ + @Override public Term getMessageTerm() { Term[] args = { new JavaObjectTerm(goal), @@ -49,6 +50,7 @@ } /** Returns a string representation of this <code>EvaluationException</code>. */ + @Override public String toString() { String s = "{EVALUATION ERROR: " + goal.toString(); if (argNo > 0)
diff --git a/src/exceptions/ExistenceException.java b/src/exceptions/ExistenceException.java index 4c1b843..c9e21c9 100644 --- a/src/exceptions/ExistenceException.java +++ b/src/exceptions/ExistenceException.java
@@ -51,6 +51,7 @@ /** Returns a term representation of this <code>ExistenceException</code>: * <code>existence_error(goal,argNo,objType,culprit,message)</code>. */ + @Override public Term getMessageTerm() { Term[] args = { new JavaObjectTerm(goal), @@ -62,6 +63,7 @@ } /** Returns a string representation of this <code>ExistenceException</code>. */ + @Override public String toString() { String s = "{EXISTENCE ERROR:"; if (argNo > 0)
diff --git a/src/exceptions/IllegalDomainException.java b/src/exceptions/IllegalDomainException.java index c0d72f6..7eb45b1 100644 --- a/src/exceptions/IllegalDomainException.java +++ b/src/exceptions/IllegalDomainException.java
@@ -54,6 +54,7 @@ /** Returns a term representation of this <code>IllegalDomainException</code>: * <code>domain_error(goal,argNo,type,culprit)</code>. */ + @Override public Term getMessageTerm() { Term[] args = { new JavaObjectTerm(goal), @@ -64,6 +65,7 @@ } /** Returns a string representation of this <code>IllegalDomainException</code>. */ + @Override public String toString() { String s = "{DOMAIN ERROR: " + goal.toString(); if (argNo > 0)
diff --git a/src/exceptions/IllegalTypeException.java b/src/exceptions/IllegalTypeException.java index 3ecfe93..61a9b7f 100644 --- a/src/exceptions/IllegalTypeException.java +++ b/src/exceptions/IllegalTypeException.java
@@ -51,6 +51,7 @@ /** Returns a term representation of this <code>IllegalTypeException</code>: * <code>type_error(goal,argNo,type,culprit)</code>. */ + @Override public Term getMessageTerm() { Term[] args = { new JavaObjectTerm(goal), @@ -61,6 +62,7 @@ } /** Returns a string representation of this <code>IllegalTypeException</code>. */ + @Override public String toString() { String s = "{TYPE ERROR: " + goal.toString(); if (argNo > 0)
diff --git a/src/exceptions/InternalException.java b/src/exceptions/InternalException.java index 9ce9495..5ad2fe9 100644 --- a/src/exceptions/InternalException.java +++ b/src/exceptions/InternalException.java
@@ -26,12 +26,14 @@ /** Returns a term representation of this <code>InternalException</code>: * <code>internal_error(message)</code>. */ + @Override public Term getMessageTerm() { Term[] args = {SymbolTerm.create(message)}; return new StructureTerm(INTERNAL_ERROR, args); } /** Returns a string representation of this <code>InternalException</code>. */ + @Override public String toString() { String s = "{INTERNAL ERROR: " + message; s += "}";
diff --git a/src/exceptions/JavaException.java b/src/exceptions/JavaException.java index 6d0b347..7e9d61c 100644 --- a/src/exceptions/JavaException.java +++ b/src/exceptions/JavaException.java
@@ -39,6 +39,7 @@ /** Returns a term representation of this <code>JavaException</code>: * <code>java_error(goal,argNo,exception)</code>. */ + @Override public Term getMessageTerm() { Term[] args = { new JavaObjectTerm(goal), @@ -53,6 +54,7 @@ } /** Returns a string representation of this <code>JavaException</code>. */ + @Override public String toString() { String s = "{JAVA ERROR: " + goal.toString(); if (argNo > 0)
diff --git a/src/exceptions/PInstantiationException.java b/src/exceptions/PInstantiationException.java index e190520..fab73e7 100644 --- a/src/exceptions/PInstantiationException.java +++ b/src/exceptions/PInstantiationException.java
@@ -34,12 +34,14 @@ /** Returns a term representation of this <code>PInstantiationException</code>: * <code>instantiation_error(goal,argNo)</code>. */ + @Override public Term getMessageTerm() { Term[] args = {new JavaObjectTerm(goal), new IntegerTerm(argNo)}; return new StructureTerm(INSTANTIATION_ERROR, args); } /** Returns a string representation of this <code>PInstantiationException</code>. */ + @Override public String toString() { String s = "{INSTANTIATION ERROR: " + goal.toString(); if (argNo > 0)
diff --git a/src/exceptions/PermissionException.java b/src/exceptions/PermissionException.java index e7ad609..b4a029d 100644 --- a/src/exceptions/PermissionException.java +++ b/src/exceptions/PermissionException.java
@@ -54,6 +54,7 @@ /** Returns a term representation of this <code>PermissionException</code>: * <code>permission_error(goal,argNo,operation,permissionType,culprit,message)</code>. */ + @Override public Term getMessageTerm() { Term[] args = { new JavaObjectTerm(goal), @@ -65,6 +66,7 @@ } /** Returns a string representation of this <code>PermissionException</code>. */ + @Override public String toString() { String s = "{PERMISSION ERROR: " + goal.toString(); s += " - can not " + operation + " " + permissionType + " " + culprit.toString();
diff --git a/src/exceptions/RepresentationException.java b/src/exceptions/RepresentationException.java index 320f277..50f73a3 100644 --- a/src/exceptions/RepresentationException.java +++ b/src/exceptions/RepresentationException.java
@@ -42,6 +42,7 @@ /** Returns a term representation of this <code>RepresentationException</code>: * <code>representation_error(goal,argNo,flag)</code>. */ + @Override public Term getMessageTerm() { Term[] args = { new JavaObjectTerm(goal), @@ -51,6 +52,7 @@ } /** Returns a string representation of this <code>RepresentationException</code>. */ + @Override public String toString() { String s = "{REPRESENTATION ERROR: " + goal.toString(); if (argNo > 0)
diff --git a/src/exceptions/SyntaxException.java b/src/exceptions/SyntaxException.java index 8912f34..161869d 100644 --- a/src/exceptions/SyntaxException.java +++ b/src/exceptions/SyntaxException.java
@@ -49,6 +49,7 @@ /** Returns a term representation of this <code>SyntaxException</code>: * <code>syntax_error(goal,argNo,type,culprit,message)</code>. */ + @Override public Term getMessageTerm() { Term[] args = { new JavaObjectTerm(goal), @@ -60,6 +61,7 @@ } /** Returns a string representation of this <code>SyntaxException</code>. */ + @Override public String toString() { String s = "{SYNTAX ERROR: " + goal.toString(); if (argNo > 0)
diff --git a/src/exceptions/SystemException.java b/src/exceptions/SystemException.java index 4689a86..44507b3 100644 --- a/src/exceptions/SystemException.java +++ b/src/exceptions/SystemException.java
@@ -26,12 +26,14 @@ /** Returns a term representation of this <code>SystemException</code>: * <code>system_error(message)</code>. */ + @Override public Term getMessageTerm() { Term[] args = {SymbolTerm.create(message)}; return new StructureTerm(SYSTEM_ERROR, args); } /** Returns a string representation of this <code>SystemException</code>. */ + @Override public String toString() { String s = "{SYSTEM ERROR: " + message; s += "}";
diff --git a/src/exceptions/TermException.java b/src/exceptions/TermException.java index b95d4e2..634f36b 100644 --- a/src/exceptions/TermException.java +++ b/src/exceptions/TermException.java
@@ -25,6 +25,7 @@ message = _message; } + @Override public Term getMessageTerm() { return message; }
diff --git a/src/lang/ChoicePointFrame.java b/src/lang/ChoicePointFrame.java index e7b6b5c..69cef32 100644 --- a/src/lang/ChoicePointFrame.java +++ b/src/lang/ChoicePointFrame.java
@@ -20,6 +20,7 @@ engine.cont = this.cont; } + @Override public String toString() { String t = " time:" + timeStamp + "\n" ; t = t + " cont:" + cont + "\n"; @@ -36,6 +37,7 @@ this.r1 = engine.r1; } + @Override void restore(Prolog engine) { engine.cont = this.cont; engine.r1 = this.r1; @@ -50,6 +52,7 @@ this.r2 = engine.r2; } + @Override void restore(Prolog engine) { engine.cont = this.cont; engine.r1 = this.r1; @@ -66,6 +69,7 @@ this.r3 = engine.r3; } + @Override void restore(Prolog engine) { engine.cont = this.cont; engine.r1 = this.r1; @@ -84,6 +88,7 @@ this.r4 = engine.r4; } + @Override void restore(Prolog engine) { engine.cont = this.cont; engine.r1 = this.r1; @@ -104,6 +109,7 @@ this.r5 = engine.r5; } + @Override void restore(Prolog engine) { engine.cont = this.cont; engine.r1 = this.r1; @@ -126,6 +132,7 @@ this.r6 = engine.r6; } + @Override void restore(Prolog engine) { engine.cont = this.cont; engine.r1 = this.r1; @@ -150,6 +157,7 @@ this.r7 = engine.r7; } + @Override void restore(Prolog engine) { engine.cont = this.cont; engine.r1 = this.r1; @@ -176,6 +184,7 @@ this.r8 = engine.r8; } + @Override void restore(Prolog engine) { engine.cont = this.cont; engine.r1 = this.r1; @@ -204,6 +213,7 @@ this.r9 = engine.r9; } + @Override void restore(Prolog engine) { engine.cont = this.cont; engine.r1 = this.r1; @@ -234,6 +244,7 @@ this.r10 = engine.r10; } + @Override void restore(Prolog engine) { engine.cont = this.cont; engine.r1 = this.r1;
diff --git a/src/lang/ClosureTerm.java b/src/lang/ClosureTerm.java index 053035c..b3c4acd 100644 --- a/src/lang/ClosureTerm.java +++ b/src/lang/ClosureTerm.java
@@ -23,6 +23,7 @@ return TYPE_CLOSURE; } + @Override public boolean unify(Term t, Trail trail) { // t = t.dereference(); if (t instanceof VariableTerm) @@ -32,8 +33,10 @@ return code.equals(((ClosureTerm)t).code); } + @Override public String toQuotedString() { return toString(); } + @Override public String name() { return ""; } /* Object */ @@ -47,17 +50,20 @@ * equivalent to this <code>ClosureTerm</code>, false otherwise. * @see #compareTo */ + @Override public boolean equals(Object obj) { // obj must be dereferenced if (! (obj instanceof ClosureTerm)) return false; return code.equals(((ClosureTerm)obj).code); } + @Override public int hashCode() { return code.hashCode(); } /** Returns a string representation of this <code>ClosureTerm</code>. */ + @Override public String toString() { return "closure[" + code.toString() + "]"; } @@ -72,6 +78,7 @@ * a value less than <code>0</code> if this term is <em>before</em> the <code>anotherTerm</code>; * and a value greater than <code>0</code> if this term is <em>after</em> the <code>anotherTerm</code>. */ + @Override public int compareTo(Term anotherTerm) { // anotherTerm must be dereferenced if (! (anotherTerm instanceof ClosureTerm)) return AFTER;
diff --git a/src/lang/DoubleTerm.java b/src/lang/DoubleTerm.java index dbb80f7..479cf41 100644 --- a/src/lang/DoubleTerm.java +++ b/src/lang/DoubleTerm.java
@@ -38,6 +38,7 @@ return TYPE_DOUBLE; } + @Override public boolean unify(Term t, Trail trail) { if (t instanceof VariableTerm) return ((VariableTerm)t).unify(this, trail); @@ -46,6 +47,7 @@ return this.val == ((DoubleTerm)t).value(); } + @Override public String name() { return ""; } /** @@ -53,6 +55,7 @@ * <code>convertible(Double.class, type)</code>. * @see Term#convertible(Class, Class) */ + @Override public boolean convertible(Class type) { return convertible(Double.class, type); } /** @@ -61,10 +64,12 @@ * @return a <code>java.lang.Double</code> object equivalent to * this <code>DoubleTerm</code>. */ + @Override public Object toJava() { return Double.valueOf(val); } /* Object */ /** Returns a string representation of this <code>DoubleTerm</code>. */ + @Override public String toString() { return Double.toString(this.val); } /** @@ -76,12 +81,14 @@ * point number equivalent to this <code>DoubleTerm</code>, false otherwise. * @see #compareTo */ + @Override public boolean equals(Object obj) { if (! (obj instanceof DoubleTerm)) return false; return Double.doubleToLongBits(this.val) == Double.doubleToLongBits(((DoubleTerm)obj).val); } + @Override public int hashCode() { long bits = Double.doubleToLongBits(this.val); return (int)(bits ^ (bits >>> 32)); @@ -97,6 +104,7 @@ * a value less than <code>0</code> if this term is <em>before</em> the <code>anotherTerm</code>; * and a value greater than <code>0</code> if this term is <em>after</em> the <code>anotherTerm</code>. */ + @Override public int compareTo(Term anotherTerm) { // anotherTerm must be dereferenced if (anotherTerm instanceof VariableTerm) return AFTER; @@ -106,94 +114,119 @@ } /* NumberTerm */ + @Override public int intValue() { return (int)val; } + @Override public long longValue() { return (long)val; } + @Override public double doubleValue() { return val; } + @Override public int arithCompareTo(NumberTerm t) { return Double.compare(this.val, t.doubleValue()); } + @Override public NumberTerm abs() { return new DoubleTerm(Math.abs(this.val)); } + @Override public NumberTerm acos() { return new DoubleTerm(Math.acos(this.val)); } + @Override public NumberTerm add(NumberTerm t) { return new DoubleTerm(this.val + t.doubleValue()); } /** * Throws a <code>type_error</code>. * @exception IllegalTypeException */ + @Override public NumberTerm and(NumberTerm t) { throw new IllegalTypeException("integer", this); } // public NumberTerm and(NumberTerm t) { return new IntegerTerm(this.intValue() & t.intValue()); } + @Override public NumberTerm asin() { return new DoubleTerm(Math.asin(this.val)); } + @Override public NumberTerm atan() { return new DoubleTerm(Math.atan(this.val)); } + @Override public NumberTerm ceil() { return new IntegerTerm((int) Math.ceil(this.val)); } + @Override public NumberTerm cos() { return new DoubleTerm(Math.cos(this.val)); } /** * @exception EvaluationException if the given argument * <code>NumberTerm</code> represents <coe>0</code>. */ + @Override public NumberTerm divide(NumberTerm t) { if (t.doubleValue() == 0) throw new EvaluationException("zero_divisor"); return new DoubleTerm(this.val / t.doubleValue()); } + @Override public NumberTerm exp() { return new DoubleTerm(Math.exp(this.val)); } + @Override public NumberTerm floatIntPart() { return new DoubleTerm(Math.signum(this.val) * Math.floor(Math.abs(this.val))); } + @Override public NumberTerm floatFractPart() { return new DoubleTerm(this.val - Math.signum(this.val) * Math.floor(Math.abs(this.val))); } + @Override public NumberTerm floor() { return new IntegerTerm((int) Math.floor(this.val)); } /** * Throws a <code>type_error</code>. * @exception IllegalTypeException */ + @Override public NumberTerm intDivide(NumberTerm t) { throw new IllegalTypeException("integer", this); } // public NumberTerm intDivide(NumberTerm t) { return new IntegerTerm((int)(this.intValue() / t.intValue())); } /** * @exception EvaluationException if this object represents <coe>0</code>. */ + @Override public NumberTerm log() { if (this.val == 0) throw new EvaluationException("undefined"); return new DoubleTerm(Math.log(this.val)); } + @Override public NumberTerm max(NumberTerm t) { return new DoubleTerm(Math.max(this.val, t.doubleValue())); } + @Override public NumberTerm min(NumberTerm t) { return new DoubleTerm(Math.min(this.val, t.doubleValue())); } /** * Throws a <code>type_error</code>. * @exception IllegalTypeException */ + @Override public NumberTerm mod(NumberTerm t) { throw new IllegalTypeException("integer", this); } // public NumberTerm mod(NumberTerm t) { return new IntegerTerm(this.intValue() % t.intValue()); } + @Override public NumberTerm multiply(NumberTerm t) { return new DoubleTerm(this.val * t.doubleValue()); } + @Override public NumberTerm negate() { return new DoubleTerm(- this.val); } /** * Throws a <code>type_error</code>. * @exception IllegalTypeException */ + @Override public NumberTerm not() { throw new IllegalTypeException("integer", this); } // public NumberTerm not() { return new IntegerTerm(~ this.intValue()); } @@ -201,51 +234,66 @@ * Throws a <code>type_error</code>. * @exception IllegalTypeException */ + @Override public NumberTerm or(NumberTerm t) { throw new IllegalTypeException("integer", this); } // public NumberTerm or(NumberTerm t) { return new IntegerTerm(this.intValue() | t.intValue()); } + @Override public NumberTerm pow(NumberTerm t) { return new DoubleTerm(Math.pow(this.val, t.doubleValue())); } + @Override public NumberTerm rint() { return new DoubleTerm(Math.rint(this.val)); } + @Override public NumberTerm round() { return new IntegerTerm((int) Math.round(this.val)); } /** * Throws a <code>type_error</code>. * @exception IllegalTypeException */ + @Override public NumberTerm shiftLeft(NumberTerm t) { throw new IllegalTypeException("integer", this); } /** * Throws a <code>type_error</code>. * @exception IllegalTypeException */ + @Override public NumberTerm shiftRight(NumberTerm t) { throw new IllegalTypeException("integer", this); } + @Override public NumberTerm signum() {return new DoubleTerm(Math.signum(this.val)); } + @Override public NumberTerm sin() { return new DoubleTerm(Math.sin(this.val)); } /** * @exception EvaluationException if this object represents * a floating point number less than <coe>0</code>. */ + @Override public NumberTerm sqrt() { if (this.val < 0) throw new EvaluationException("undefined"); return new DoubleTerm(Math.sqrt(this.val)); } + @Override public NumberTerm subtract(NumberTerm t) { return new DoubleTerm(this.val - t.doubleValue()); } + @Override public NumberTerm tan() { return new DoubleTerm(Math.tan(this.val)); } + @Override public NumberTerm toDegrees() { return new DoubleTerm(Math.toDegrees(this.val)); } + @Override public NumberTerm toFloat() { return this; } + @Override public NumberTerm toRadians() { return new DoubleTerm(Math.toRadians(this.val)); } + @Override public NumberTerm truncate() { if (this.val >= 0) return new IntegerTerm((int) Math.floor(this.val)); @@ -257,5 +305,6 @@ * Throws a <code>type_error</code>. * @exception IllegalTypeException */ + @Override public NumberTerm xor(NumberTerm t) { throw new IllegalTypeException("integer", this); } }
diff --git a/src/lang/Failure.java b/src/lang/Failure.java index 7b109a0..ddd4823 100644 --- a/src/lang/Failure.java +++ b/src/lang/Failure.java
@@ -13,6 +13,7 @@ public static final Failure FAILURE = new Failure(); private Failure() {} + @Override public Operation exec(Prolog engine) { engine.control.fail(); engine.halt = 1; // halt(0) @@ -20,6 +21,7 @@ } /** Returns a string representation of this <code>Failure</code>. */ + @Override public String toString(){ return "Failure"; } public static final Operation fail_0 = new PRED_fail_0();
diff --git a/src/lang/IntegerTerm.java b/src/lang/IntegerTerm.java index d9e1596..3684377 100644 --- a/src/lang/IntegerTerm.java +++ b/src/lang/IntegerTerm.java
@@ -35,6 +35,7 @@ } /* Term */ + @Override public boolean unify(Term t, Trail trail) { if (t instanceof VariableTerm) return ((VariableTerm)t).unify(this, trail); @@ -49,8 +50,10 @@ * <code>convertible(Integer.class, type)</code>. * @see Term#convertible(Class, Class) */ + @Override public boolean convertible(Class type) { return convertible(Integer.class, type); } + @Override public String name() { return ""; } /** @@ -59,10 +62,12 @@ * @return a <code>java.lang.Integer</code> object equivalent to * this <code>IntegerTerm</code>. */ + @Override public Object toJava() { return Integer.valueOf(val); } /* Object */ /** Returns a string representation of this <code>IntegerTerm</code>. */ + @Override public String toString() { return Integer.toString(this.val); } /** @@ -74,12 +79,14 @@ * equivalent to this <code>IntegerTerm</code>, false otherwise. * @see #compareTo */ + @Override public boolean equals(Object obj) { if (! (obj instanceof IntegerTerm)) return false; return this.val == ((IntegerTerm)obj).value(); } + @Override public int hashCode() { return this.val; } /* Comparable */ @@ -92,6 +99,7 @@ * a value less than <code>0</code> if this term is <em>before</em> the <code>anotherTerm</code>; * and a value greater than <code>0</code> if this term is <em>after</em> the <code>anotherTerm</code>. */ + @Override public int compareTo(Term anotherTerm) { // anotherTerm must be dereferenced. if (anotherTerm instanceof VariableTerm || anotherTerm instanceof DoubleTerm) return AFTER; @@ -106,12 +114,16 @@ } /* NumberTerm */ + @Override public int intValue() { return this.val; } + @Override public long longValue() { return (long)(this.val); } + @Override public double doubleValue() { return (double)(this.val); } + @Override public int arithCompareTo(NumberTerm t) { if (t instanceof DoubleTerm) return - (t.arithCompareTo(this)); @@ -123,10 +135,13 @@ return BEFORE; } + @Override public NumberTerm abs() { return new IntegerTerm(Math.abs(this.val)); } + @Override public NumberTerm acos() { return new DoubleTerm(Math.acos(this.doubleValue())); } + @Override public NumberTerm add(NumberTerm t) { if (t instanceof DoubleTerm) return t.add(this); @@ -137,36 +152,46 @@ * @exception IllegalTypeException if the given argument * <code>NumberTerm</code> is a floating point number. */ + @Override public NumberTerm and(NumberTerm t) { if (t instanceof DoubleTerm) throw new IllegalTypeException("integer", t); return new IntegerTerm(this.val & t.intValue()); } + @Override public NumberTerm asin() { return new DoubleTerm(Math.asin(this.doubleValue())); } + @Override public NumberTerm atan() { return new DoubleTerm(Math.atan(this.doubleValue())); } + @Override public NumberTerm ceil() { return this; } + @Override public NumberTerm cos() { return new DoubleTerm(Math.cos(this.doubleValue())); } /** * @exception EvaluationException if the given argument * <code>NumberTerm</code> represents <coe>0</code>. */ + @Override public NumberTerm divide(NumberTerm t) { if (t.doubleValue() == 0) throw new EvaluationException("zero_divisor"); return new DoubleTerm(this.doubleValue() / t.doubleValue()); } + @Override public NumberTerm exp() { return new DoubleTerm(Math.exp(this.doubleValue())); } + @Override public NumberTerm floatIntPart() { throw new IllegalTypeException("float", this); } + @Override public NumberTerm floatFractPart() { throw new IllegalTypeException("float", this); } + @Override public NumberTerm floor() { return this; } /** @@ -175,6 +200,7 @@ * @exception EvaluationException if the given argument * <code>NumberTerm</code> represents <coe>0</code>. */ + @Override public NumberTerm intDivide(NumberTerm t) { if (t instanceof DoubleTerm) throw new IllegalTypeException("integer", t); @@ -186,18 +212,21 @@ /** * @exception EvaluationException if this object represents <coe>0</code>. */ + @Override public NumberTerm log() { if (this.val == 0) throw new EvaluationException("undefined"); return new DoubleTerm(Math.log(this.doubleValue())); } + @Override public NumberTerm max(NumberTerm t) { if (t instanceof DoubleTerm) return t.max(this); return new IntegerTerm(Math.max(this.val, t.intValue())); } + @Override public NumberTerm min(NumberTerm t) { if (t instanceof DoubleTerm) return t.min(this); @@ -210,6 +239,7 @@ * @exception EvaluationException if the given argument * <code>NumberTerm</code> represents <coe>0</code>. */ + @Override public NumberTerm mod(NumberTerm t) { if (t instanceof DoubleTerm) throw new IllegalTypeException("integer", t); @@ -218,36 +248,44 @@ return new IntegerTerm(this.val % t.intValue()); } + @Override public NumberTerm multiply(NumberTerm t) { if (t instanceof DoubleTerm) return t.multiply(this); return new IntegerTerm(this.val * t.intValue()); } + @Override public NumberTerm negate() { return new IntegerTerm(- this.val); } + @Override public NumberTerm not() { return new IntegerTerm(~ this.val); } /** * @exception IllegalTypeException if the given argument * <code>NumberTerm</code> is a floating point number. */ + @Override public NumberTerm or(NumberTerm t) { if (t instanceof DoubleTerm) throw new IllegalTypeException("integer", t); return new IntegerTerm(this.val | t.intValue()); } + @Override public NumberTerm pow(NumberTerm t) { return new DoubleTerm(Math.pow(this.doubleValue(), t.doubleValue())); } + @Override public NumberTerm rint() { return new DoubleTerm(this.doubleValue()); } + @Override public NumberTerm round() { return this; } /** * @exception IllegalTypeException if the given argument * <code>NumberTerm</code> is a floating point number. */ + @Override public NumberTerm shiftLeft(NumberTerm t) { if (t instanceof DoubleTerm) throw new IllegalTypeException("integer", t); @@ -258,46 +296,57 @@ * @exception IllegalTypeException if the given argument * <code>NumberTerm</code> is a floating point number. */ + @Override public NumberTerm shiftRight(NumberTerm t) { if (t instanceof DoubleTerm) throw new IllegalTypeException("integer", t); return new IntegerTerm(this.val >> t.intValue()); } + @Override public NumberTerm signum() {return new IntegerTerm((int) Math.signum((double) this.val)); } + @Override public NumberTerm sin() { return new DoubleTerm(Math.sin(this.doubleValue())); } /** * @exception EvaluationException if this object represents * an integer less than <coe>0</code>. */ + @Override public NumberTerm sqrt() { if (this.val < 0) throw new EvaluationException("undefined"); return new DoubleTerm(Math.sqrt(this.doubleValue())); } + @Override public NumberTerm subtract(NumberTerm t) { if (t instanceof DoubleTerm) return new DoubleTerm(this.doubleValue() - t.doubleValue()); return new IntegerTerm(this.val - t.intValue()); } + @Override public NumberTerm tan() { return new DoubleTerm(Math.tan(this.doubleValue())); } + @Override public NumberTerm toDegrees() { return new DoubleTerm(Math.toDegrees(this.doubleValue())); } + @Override public NumberTerm toFloat() { return new DoubleTerm((double) this.val); } + @Override public NumberTerm toRadians() { return new DoubleTerm(Math.toRadians(this.doubleValue())); } + @Override public NumberTerm truncate() { return this; } /** * @exception IllegalTypeException if the given argument * <code>NumberTerm</code> is a floating point number. */ + @Override public NumberTerm xor(NumberTerm t) { if (t instanceof DoubleTerm) throw new IllegalTypeException("integer", t);
diff --git a/src/lang/JavaObjectTerm.java b/src/lang/JavaObjectTerm.java index 89c946f..a0c0256 100644 --- a/src/lang/JavaObjectTerm.java +++ b/src/lang/JavaObjectTerm.java
@@ -33,8 +33,10 @@ /** Returns a <code>java.lang.Class</code> of object wrapped by this <code>JavaObjectTerm</code>. */ public Class getClazz() { return obj.getClass(); } + @Override public String name() { return ""; } + @Override public String toQuotedString() { return toString(); } @Override @@ -42,6 +44,7 @@ return TYPE_JAVA_OBJECT; } + @Override public boolean unify(Term t, Trail trail) { if (t instanceof VariableTerm) return ((VariableTerm)t).unify(this, trail); @@ -57,6 +60,7 @@ * @see #getClazz() * @see Term#convertible(Class, Class) */ + @Override public boolean convertible(Class type) { return convertible(obj.getClass(), type); } /** @@ -64,6 +68,7 @@ * @return the value of <code>obj</code>. * @see #obj */ + @Override public Object toJava() { return obj; } /* Object */ @@ -78,17 +83,20 @@ * equivalent to this <code>JavaObjectTerm</code>, false otherwise. * @see #compareTo */ + @Override public boolean equals(Object o) { if (! (o instanceof JavaObjectTerm)) return false; return obj.equals(((JavaObjectTerm)o).obj); } + @Override public int hashCode() { return obj.hashCode(); } /** Returns a string representation of this <code>JavaObjectTerm</code>. */ + @Override public String toString() { return obj.getClass().getName() + "(0x" + Integer.toHexString(hashCode()) + ")"; @@ -104,6 +112,7 @@ * a value less than <code>0</code> if this term is <em>before</em> the <code>anotherTerm</code>; * and a value greater than <code>0</code> if this term is <em>after</em> the <code>anotherTerm</code>. */ + @Override public int compareTo(Term anotherTerm) { // anotherTerm must be dereferenced. if (anotherTerm instanceof VariableTerm || ((anotherTerm instanceof IntegerTerm) || (anotherTerm instanceof DoubleTerm))
diff --git a/src/lang/ListTerm.java b/src/lang/ListTerm.java index e1ead71..f5ea8d1 100644 --- a/src/lang/ListTerm.java +++ b/src/lang/ListTerm.java
@@ -81,6 +81,7 @@ } /* Term */ + @Override public boolean unify(Term t, Trail trail) { t = t.dereference(); if (t instanceof VariableTerm) { @@ -98,14 +99,17 @@ * <code>convertible(List.class, type)</code>. * @see Term#convertible(Class, Class) */ + @Override public boolean convertible(Class type) { return convertible(List.class, type); } + @Override protected Term copy(Prolog engine) { return new ListTerm(car.copy(engine), cdr.copy(engine)); } + @Override public boolean isGround() { if (! car.isGround()) return false; @@ -114,8 +118,10 @@ return true; } + @Override public String name() { return SYM_DOT.name(); } + @Override public Term arg(int nth) { Term t = this; int old_nth = nth; @@ -145,6 +151,7 @@ * @return a {@link java.util.List} object equivalent to * this <code>IntegerTerm</code>. */ + @Override public List toJava() { List<Object> vec = new ArrayList<Object>(); Term t = this; @@ -155,6 +162,7 @@ return vec; } + @Override public String toQuotedString() { Term x = this; String s = "["; @@ -182,6 +190,7 @@ * equivalent to this <code>ListTerm</code>, false otherwise. * @see #compareTo */ + @Override public boolean equals(Object obj) { if (! (obj instanceof ListTerm)) return false; @@ -189,6 +198,7 @@ && cdr.equals(((ListTerm)obj).cdr().dereference()); } + @Override public int hashCode() { int h = 1; h = 31*h + SYM_DOT.hashCode(); @@ -198,6 +208,7 @@ } /** Returns a string representation of this <code>ListTerm</code>. */ + @Override public String toString() { Term x = this; String s = "["; @@ -224,6 +235,7 @@ * a value less than <code>0</code> if this term is <em>before</em> the <code>anotherTerm</code>; * and a value greater than <code>0</code> if this term is <em>after</em> the <code>anotherTerm</code>. */ + @Override public int compareTo(Term anotherTerm) { // anotherTerm must be dereferenced. if (anotherTerm instanceof VariableTerm || ((anotherTerm instanceof IntegerTerm) || (anotherTerm instanceof DoubleTerm)) || anotherTerm instanceof SymbolTerm) return AFTER;
diff --git a/src/lang/OutOfLoop.java b/src/lang/OutOfLoop.java index bb6c123..19c4cfa 100644 --- a/src/lang/OutOfLoop.java +++ b/src/lang/OutOfLoop.java
@@ -16,6 +16,7 @@ p = _p; } + @Override public void undo() { p.outOfLoop = true; }
diff --git a/src/lang/OutOfScope.java b/src/lang/OutOfScope.java index 9c18100..41d7d81 100644 --- a/src/lang/OutOfScope.java +++ b/src/lang/OutOfScope.java
@@ -16,6 +16,7 @@ p = _p; } + @Override public void undo() { p.outOfScope = false; }
diff --git a/src/lang/StructureTerm.java b/src/lang/StructureTerm.java index 17e8864..4578d6b 100644 --- a/src/lang/StructureTerm.java +++ b/src/lang/StructureTerm.java
@@ -61,6 +61,7 @@ * @return the value of <code>arity</code>. * @see #arity */ + @Override public int arity(){ return args.length; } /** Returns the argument terms of this <code>StructureTerm</code>. @@ -74,8 +75,10 @@ * @see #functor * @see SymbolTerm#name */ + @Override public String name(){ return functor.name(); } + @Override public Term arg(int nth) { return args[nth]; } @Override @@ -83,6 +86,7 @@ return TYPE_STRUCTURE; } + @Override public boolean unify(Term t, Trail trail) { t = t.dereference(); if (t instanceof VariableTerm) { @@ -100,6 +104,7 @@ return true; } + @Override protected Term copy(Prolog engine) { Term[] a = new Term[args.length]; for (int i=0; i<args.length; i++) @@ -107,6 +112,7 @@ return new StructureTerm(functor, a); } + @Override public boolean isGround() { for (int i=0; i<args.length; i++) { if (! args[i].isGround()) @@ -115,6 +121,7 @@ return true; } + @Override public String toQuotedString() { String delim = ""; String s = functor.toQuotedString() + "("; @@ -137,6 +144,7 @@ * equivalent to this <code>StructureTerm</code>, false otherwise. * @see #compareTo */ + @Override public boolean equals(Object obj) { if (! (obj instanceof StructureTerm)) return false; @@ -149,6 +157,7 @@ return true; } + @Override public int hashCode() { int h = 1; h = 31*h + functor.hashCode(); @@ -158,6 +167,7 @@ } /** Returns a string representation of this <code>StructureTerm</code>. */ + @Override public String toString() { String delim = ""; String s = functor.toString() + "("; @@ -179,6 +189,7 @@ * a value less than <code>0</code> if this term is <em>before</em> the <code>anotherTerm</code>; * and a value greater than <code>0</code> if this term is <em>after</em> the <code>anotherTerm</code>. */ + @Override public int compareTo(Term anotherTerm) { // anotherTerm must be dereferenced. SymbolTerm functor2; Term[] args2;
diff --git a/src/lang/Success.java b/src/lang/Success.java index ac937a5..8c86b0b 100644 --- a/src/lang/Success.java +++ b/src/lang/Success.java
@@ -18,11 +18,13 @@ * @param engine Prolog engine * @see PrologControl#success */ + @Override public Operation exec(Prolog engine) { engine.control.success(); return engine.fail(); } /** Returns a string representation of this <code>Success</code>. */ + @Override public String toString(){ return "Success"; } }
diff --git a/src/lang/SymbolTerm.java b/src/lang/SymbolTerm.java index 9c6e4cf..2dd8921 100644 --- a/src/lang/SymbolTerm.java +++ b/src/lang/SymbolTerm.java
@@ -171,12 +171,14 @@ * @return the value of <code>arity</code>. * @see #arity */ + @Override public int arity() { return arity; } /** Returns the string representation of this <code>SymbolTerm</code>. * @return the value of <code>name</code>. * @see #name */ + @Override public String name() { return name; } @Override @@ -184,6 +186,7 @@ return TYPE_SYMBOL; } + @Override public boolean unify(Term t, Trail trail) { t = t.dereference(); if (t instanceof VariableTerm) { @@ -219,6 +222,7 @@ * <code>convertible(String.class, type)</code>. * @see Term#convertible(Class, Class) */ + @Override public boolean convertible(Class type) { return convertible(String.class, type); } /** @@ -227,11 +231,14 @@ * @return a <code>java.lang.String</code> object equivalent to * this <code>SymbolTerm</code>. */ + @Override public Object toJava() { return name; } + @Override public String toQuotedString() { return Token.toQuotedString(name); } /** Returns a string representation of this <code>SymbolTerm</code>. */ + @Override public String toString() { return name; } /* Comparable */ @@ -244,6 +251,7 @@ * a value less than <code>0</code> if this term is <em>before</em> the <code>anotherTerm</code>; * and a value greater than <code>0</code> if this term is <em>after</em> the <code>anotherTerm</code>. */ + @Override public int compareTo(Term anotherTerm) { // anotherTerm must be dereferenced. if (anotherTerm instanceof VariableTerm || ((anotherTerm instanceof IntegerTerm) || (anotherTerm instanceof DoubleTerm))) return AFTER;
diff --git a/src/lang/VariableTerm.java b/src/lang/VariableTerm.java index 5bb4085..b22c730 100644 --- a/src/lang/VariableTerm.java +++ b/src/lang/VariableTerm.java
@@ -60,6 +60,7 @@ * @see #bind(Term,Trail) * @see Trail */ + @Override public boolean unify(Term t, Trail trail) { if (val != this) return val.unify(t, trail); @@ -101,6 +102,7 @@ * convertible with <code>type</code>. Otherwise <code>false</code>. * @see #val */ + @Override public boolean convertible(Class type) { if (val != this) return val.convertible(type); @@ -112,6 +114,7 @@ * Otherwise, returns the value of <code>val.copy(engine)</code>. * @see #val */ + @Override protected Term copy(Prolog engine) { VariableTerm co; if (val != this) @@ -125,18 +128,21 @@ return co; } + @Override public Term dereference() { if (val == this) return this; return val.dereference(); } + @Override public boolean isGround() { if (val != this) return val.isGround(); return false; } + @Override public String name() { if (val == this) return ""; @@ -150,6 +156,7 @@ * @return a Java object defined in <em>Prolog Cafe interoperability with Java</em>. * @see #val */ + @Override public Object toJava() { if (val != this) return val.toJava(); @@ -162,6 +169,7 @@ * <code>val.toQuotedString()</code> * @see #val */ + @Override public String toQuotedString() { if (val != this) return val.toQuotedString(); @@ -180,6 +188,7 @@ * @see #val * @see #compareTo */ + @Override public boolean equals(Object obj) { if(val != this) return val.equals(obj); @@ -194,6 +203,7 @@ * <code>val.toString()</code> * @see #val */ + @Override public String toString() { if (val != this) return val.toString(); @@ -201,6 +211,7 @@ } /* Undoable */ + @Override public void undo() { val = this; } /* Comparable */ @@ -213,6 +224,7 @@ * a value less than <code>0</code> if this term is <em>before</em> the <code>anotherTerm</code>; * and a value greater than <code>0</code> if this term is <em>after</em> the <code>anotherTerm</code>. */ + @Override public int compareTo(Term anotherTerm) { // anotherTerm must be dereferenced. if(val != this) return val.compareTo(anotherTerm);
diff --git a/src/repl/BlockingPrologControl.java b/src/repl/BlockingPrologControl.java index 45989f4..712a73a 100644 --- a/src/repl/BlockingPrologControl.java +++ b/src/repl/BlockingPrologControl.java
@@ -207,6 +207,7 @@ * @see #result * @see #thread */ + @Override protected synchronized void success() { resultReady = true; result = true; @@ -234,6 +235,7 @@ * @see #result * @see #thread */ + @Override protected synchronized void fail() { resultReady = true; result = false; @@ -246,6 +248,7 @@ } /** @return true if the engine is no longer supposed to execute. */ + @Override public boolean isEngineStopped() { return thread == null; } @@ -367,6 +370,7 @@ * @see #fail * @see #stop */ + @Override public void run() { try { executePredicate();