This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/packages/swig/java/JavaYAP.java
Vitor Santos Costa 780f42210c swig-java
2016-01-07 16:02:08 +00:00

128 lines
2.5 KiB
Java

//package pt.up.fc.dcc.yap;
import java.io.* ;
//import YAP.* ;
class JavaYAP {
YAPQuery q;
YAPEngine eng;
InputStreamReader istream = new InputStreamReader(System.in) ;
BufferedReader bufRead = new BufferedReader(istream) ;
Boolean runQuery(String str)
{
try
{
q = eng.query( str );
} catch(Exception e){
System.out.println("Exception thrown :" + e);
return false;
}
return continueQuery();
}
Boolean continueQuery()
{
try
{
Boolean rc;
rc = q.next();
if (!rc) {
q.close();
return false;
}
YAPListTerm vs = q.namedVars();
System.out.println("Another one "+vs);
while(!vs.nil()){
YAPTerm eq = vs.car();
//outputText.append(Integer.toString(i) + ": " + eq.text() );
System.out.println(":\t" + eq.getArg(1).text() + " = " + eq.getArg(2).text() +"\n" );
vs = vs.cdr();
}
return true;
} catch(Exception e){
System.out.println("Exception thrown :" + e);
q.close();
return false;
}
}
public void top_query()
{
eng = new YAPEngine( );
JavaCallback callback = new JavaCallback( "The man walked on the moon" );
// set the Java Callback
eng.setYAPCallback(callback);
System.out.println("Welcome To a simple Java YAP Program");
try {
String string;
Boolean rc;
System.out.println("Query? ");
// Get Query
while ((string = bufRead.readLine()) == null) {
// skip empty lines
}
// first solution
rc = runQuery(string);
// no first solution, exit loop
if (!rc) {
System.out.println("No Dice, but Better Luck Next Time ");
return;
}
// alreadyone solution
while (true) {
System.out.print("More Solutions enter ';' ");
while ((string = bufRead.readLine()) == null) {
}
if (string.charAt(0) != ';' )
return;
rc = continueQuery();
if (!rc)
return;
}
}
catch (IOException err) {
System.out.println("Error reading line");
}
}
public static void main(String args[])
{
System.loadLibrary("Native");
JavaYAP y = new JavaYAP();
while( true ) {
y.top_query();
}
// System.out.println("Thanks for trying a simple Java YAP Program");
}
}
class JavaCallback extends YAPCallback
{
String callbacks;
public JavaCallback( String outputText )
{
super();
callbacks += outputText;
}
public void run(String s)
{
//callbacks.append(s);
}
private static final String TAG = "JavaCallback";
}