01: package ca.draisey.free.tprolog;
02:
03:
04:
05:
06:
07:
08:
09: final class ConsTerm extends Term {
10: ConsTerm( final Term l, final Term r )
11: {
12: left = l; right = r;
13: }
14:
15:
16: final void listing( final int f, final Variables these, final java.io.PrintWriter p, final Monitor m )
17: {
18:
19: m.monitor();
20: if( ( f & -2 ) == 0 ) {
21: p.print( "ConsTerm( " );
22: left.listing( f, these, p, m );
23: p.print( ", " );
24: right.listing( f, these, p, m );
25: p.print( ")" );
26: }
27: else {
28: p.print( "[" );
29: left.listing( f, these, p, m );
30: p.print( "]" );
31: right.listing( f, these, p, m );
32: }
33: }
34:
35:
36: final String getkey() {
37: return left.getkey();
38: }
39:
40:
41: protected final void unifythrough( final Term that, final Variables these, final Variables those, final Successor success )
42: {
43: that.unifytoCons( this, those, these, success );
44: }
45:
46:
47: protected final void unifytoCons( final ConsTerm that, final Variables these, final Variables those, final Successor success )
48: {
49:
50: left.unifythrough( that.left, these, those, success.succession().new SuccessionSuccessor() {
51: void succeed()
52: {
53: right.unifythrough( that.right, these, those, success );
54:
55: }
56: } );
57: }
58:
59:
60:
61:
62: private final Term left, right;
63: }
64:
65:
Prolog in Java
A trivial prolog interpreter written in java.
Copyright 2004, M.E.J.Draisey
This file is part of tprologinjava.
tprologinjava is free software; you can redistribute it and/or modify it under
the terms of the GNU General
Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
tprologinjava is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with tprologinjava; if not, write to the Free Software Foundation, Inc.,
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Formatted with
GNU source-highlight:
http:// www.gnu.org/ software/ src-highlite