BackEnd.java

00001 package com.declarativa.interprolog.examples;
00002 import com.declarativa.interprolog.*;
00003 import com.xsb.interprolog.*;
00004 import java.util.*;
00005 public class BackEnd{
00006         public static class Record implements java.io.Serializable{
00007                 String plainText;
00008                 int plainCount;
00009                 String cyberText;
00010                 float cyberCount;
00011                 public String toString(){
00012                         return "plain:"+plainText+" plainCount:"+plainCount+" \ncyberText:"+cyberText+" cyberCount="+cyberCount;
00013                 }
00014         }
00015         public static void main(String args[]) {
00016                 String prologCommand = com.declarativa.interprolog.gui.ListenerWindow.commandArgs(args);
00017                 PrologEngine engine = new NativeEngine(prologCommand);
00018                 engine.deterministicGoal("import reverse/2,length/2 from basics"); //  list processing predicates
00019                 if (!engine.deterministicGoal("length([1,2],2)")) System.out.println("huhuhuh");
00020                 engine.teachOneObject(new Record()); // send an object prototype to Prolog
00021                 Record r = new Record();
00022                 r.plainText="Declarative is good"; r.plainCount=19;
00023                 Object[] objectsToGo = new Object[]{r};
00024                 String goal = "ipObjectSpec('com.declarativa.interprolog.examples.BackEnd$Record',[plainCount=PC,plainText=string(S)],R)";
00025                 goal += ", name(S,Chars), length(Chars,PC), reverse(Chars,Reversed), name(RS,Reversed), CC is PC+0.0";
00026                 goal += ", ipObjectSpec('com.declarativa.interprolog.examples.BackEnd$Record',[cyberText=string(RS),cyberCount=CC],NewR)";
00027                 System.out.println("Calling "+goal);
00028                 Object[] bindings = engine.deterministicGoal(goal, "[R]", objectsToGo, "[NewR]");
00029                 Record result = (Record)bindings[0];
00030                 System.out.println(result);
00031         }
00032 }

Generated on Wed Jul 26 13:30:44 2006 for XSB by  doxygen 1.4.5