package jmathlib.plugins.dynjava;
import jmathlib.plugins.Plugin;
import jmathlib.core.interpreter.*;
import java.io.*;
//classes for the java interpreter
import koala.dynamicjava.interpreter.*;
import koala.dynamicjava.parser.wrapper.*;
/*
java('console.displayText("hello world");')
hello world
ans = null
To access a JMathLib variable enter
x=5
JAVA('global.getVariable("x");')
ans = 5
*/
/**Class containing the extensions of jmathlib*/
public class JavaPlugin extends Plugin
{
private koala.dynamicjava.interpreter.TreeInterpreter djInterpreter;
//private String name;
public JavaPlugin()
{
name = "JavaPlugin";
djInterpreter = new TreeInterpreter(new JavaCCParserFactory());
}
public void init()
{
djInterpreter.defineVariable("interpreter", getPluginsManager().getInterpreter());
djInterpreter.defineVariable("global", getPluginsManager().getGlobalVariables());
djInterpreter.defineVariable("console", getPluginsManager().getInterpreter().getOutputPanel());
}
public koala.dynamicjava.interpreter.Interpreter getJavaInterpreter()
{
System.out.println("*******+ getJavaInter....");
return djInterpreter;
}
public String executeJavaExpression(String exp)
{
StringReader reader = new StringReader(exp);
Object result = null;
//System.out.println("*******+ executeJavaExp....");
try
{
result = djInterpreter.interpret(reader, "buffer");
}
catch(InterpreterException e)
{
ErrorLogger.debugLine("interpreter error " + e);
}
ErrorLogger.debugLine("java result = " + result);
return "" + result;
}
}