com.waveset.expression
Class Interpreter

java.lang.Object
  extended bycom.waveset.expression.ExState
      extended bycom.waveset.expression.Interpreter
All Implemented Interfaces:
VariableResolver

public class Interpreter
extends ExState

A simple interpreter utility for the expression evaluator.

Can interpret the contents of a file, or a string passed on the command line.


Nested Class Summary
 
Nested classes inherited from class com.waveset.expression.ExState
ExState.ExBreakpointContext
 
Field Summary
static java.lang.String code_id
           
 
Constructor Summary
Interpreter()
          Build the interpreter object.
 
Method Summary
static void main(java.lang.String[] args)
          Launch the interpreter.
 java.lang.Object resolveCall(java.lang.String name, java.util.List args)
          Handle a call to an external function.
 java.lang.Object resolveObject(java.lang.String path)
          Handle a reference to an object.
 java.lang.Object resolveReference(java.lang.String name)
          Resolve a reference to an external variable.
 java.lang.Object resolveRule(java.lang.String name, java.util.Map args)
          Handle a call to an external rule.
 void run(java.lang.String[] args)
          Do something.
 void setExternal(java.lang.String name, java.lang.Object value)
          Handle an external assignment.
 void testFile(java.lang.String filename)
          Interpret the contents of a file.
 
Methods inherited from class com.waveset.expression.ExState
addError, addResolver, beginTrace, beginTrace, breakpoint, breakpointEnd, breakpointEnd, breakpointEndAndTrace, breakpointStart, breakpointStartAndTrace, checkBreak, clearErrors, clearGlobalBindings, clearTrace, createBreakpointContext, endTrace, endTrace, endTrace, enterScope, externalCall, externalReference, externalRule, externalRuleArguments, free, freeState, freeValue, getArgInitializer, getBinding, getBreakpointContext, getErrors, getInvokeInterceptor, getLibraryFunction, getLocale, getRuleArguments, getState, getTrace, getTraceBuffer, initBindings, isAllowExceptions, isConsoleTraceEnabled, isPrintEnabled, isTraceEnabled, leaveScope, loadLibrary, loadLibrary, loadLibrary, markBreakpointStack, newValue, newValue, newValue, print, println, printTrace, promoteValue, removeResolver, resolveVariable, setAllowExceptions, setBinding, setConsoleTraceEnable, setConsoleTraceEnable, setInvokeInterceptor, setLocale, setPrimaryResolver, setPrintEnable, setPrintStream, setTraceEnable, setTraceEnable, signalBreak, trace, unwindBreakpointStack
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

code_id

public static final java.lang.String code_id
See Also:
Constant Field Values
Constructor Detail

Interpreter

public Interpreter()
Build the interpreter object.

Method Detail

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Launch the interpreter.

Throws:
java.lang.Exception

run

public void run(java.lang.String[] args)
         throws WavesetException
Do something.

Throws:
WavesetException

testFile

public void testFile(java.lang.String filename)
              throws WavesetException
Interpret the contents of a file.

Note that Interpreter is an ExState subclass, so we pass oursleves into the eval methods.

Throws:
WavesetException

resolveReference

public java.lang.Object resolveReference(java.lang.String name)
Resolve a reference to an external variable.

Overrides:
resolveReference in class ExState

resolveCall

public java.lang.Object resolveCall(java.lang.String name,
                                    java.util.List args)
Handle a call to an external function.

Overrides:
resolveCall in class ExState

resolveRule

public java.lang.Object resolveRule(java.lang.String name,
                                    java.util.Map args)
Handle a call to an external rule.

Overrides:
resolveRule in class ExState

resolveObject

public java.lang.Object resolveObject(java.lang.String path)
                               throws WavesetException
Handle a reference to an object.

Overrides:
resolveObject in class ExState
Throws:
WavesetException

setExternal

public void setExternal(java.lang.String name,
                        java.lang.Object value)
Handle an external assignment.

Overrides:
setExternal in class ExState