pnuts.lang
Class PnutsInterpreter

java.lang.Object
  extended by pnuts.lang.Runtime
      extended by pnuts.lang.PnutsInterpreter
All Implemented Interfaces:
Executable, Visitor

public class PnutsInterpreter
extends Runtime
implements Visitor

The pure interpreter


Nested Class Summary
 
Nested classes/interfaces inherited from class pnuts.lang.Runtime
Runtime.Accessor, Runtime.Break, Runtime.Continue, Runtime.FunctionSerializer, Runtime.TypeMap
 
Field Summary
 
Fields inherited from class pnuts.lang.Runtime
BOOLEAN_SYMBOL, BYTE_SYMBOL, CHAR_SYMBOL, CLONE, DOUBLE_SYMBOL, EXCEPTOIN_FIELD_SYMBOL, FLOAT_SYMBOL, INT_SYMBOL, LONG_SYMBOL, SHORT_SYMBOL, VOID_SYMBOL
 
Constructor Summary
PnutsInterpreter()
           
 
Method Summary
 java.lang.Object[] _listElements(SimpleNode node, Context context)
           
protected  java.lang.Object accept(SimpleNode node, int idx, Context context)
           
 java.lang.Object addNode(SimpleNode node, Context context)
           
 java.lang.Object andNode(SimpleNode node, Context context)
           
 java.lang.Object applicationNode(SimpleNode node, Context context)
           
 java.lang.Object arrayType(SimpleNode node, Context context)
           
 java.lang.Object assignment(SimpleNode node, Context context)
           
 java.lang.Object assignmentAA(SimpleNode node, Context context)
           
 java.lang.Object assignmentDA(SimpleNode node, Context context)
           
 java.lang.Object assignmentEA(SimpleNode node, Context context)
           
 java.lang.Object assignmentLA(SimpleNode node, Context context)
           
 java.lang.Object assignmentMA(SimpleNode node, Context context)
           
 java.lang.Object assignmentOA(SimpleNode node, Context context)
           
 java.lang.Object assignmentPA(SimpleNode node, Context context)
           
 java.lang.Object assignmentRA(SimpleNode node, Context context)
           
 java.lang.Object assignmentRAA(SimpleNode node, Context context)
           
 java.lang.Object assignmentSA(SimpleNode node, Context context)
           
 java.lang.Object assignmentTA(SimpleNode node, Context context)
           
 java.lang.Object blockNode(SimpleNode node, Context context)
           
 java.lang.Object breakNode(SimpleNode node, Context context)
           
 java.lang.Object castExpression(SimpleNode node, Context context)
           
 java.lang.Object catchBlock(SimpleNode node, Context context)
           
 java.lang.Object catchNode(SimpleNode node, Context context)
           
 java.lang.Object characterNode(SimpleNode node, Context context)
           
 java.lang.Object classDef(SimpleNode node, Context context)
           
 java.lang.Object classDefBody(SimpleNode node, Context context)
           
 java.lang.Object className(SimpleNode node, Context context)
           
 java.lang.Object classNode(SimpleNode node, Context context)
           
 java.lang.Object classScript(SimpleNode node, Context context)
           
 java.lang.Object continueNode(SimpleNode node, Context context)
           
 java.lang.Object divideNode(SimpleNode node, Context context)
           
 java.lang.Object doStatement(SimpleNode node, Context context)
           
 java.lang.Object equalNode(SimpleNode node, Context context)
           
 java.lang.Object expressionList(SimpleNode node, Context context)
           
 java.lang.Object falseNode(SimpleNode node, Context context)
           
 java.lang.Object finallyNode(SimpleNode node, Context context)
           
 java.lang.Object floatingNode(SimpleNode node, Context context)
           
 java.lang.Object foreachStatement(SimpleNode node, Context context)
           
 java.lang.Object forStatement(SimpleNode node, Context context)
           
 java.lang.Object functionStatement(SimpleNode node, Context context)
           
 java.lang.Object geNode(SimpleNode node, Context context)
           
 java.lang.Object global(SimpleNode node, Context context)
           
 java.lang.Object gtNode(SimpleNode node, Context context)
           
 java.lang.Object idNode(SimpleNode node, Context context)
           
 java.lang.Object ifStatement(SimpleNode node, Context context)
           
 java.lang.Object importNode(SimpleNode node, Context context)
           
 java.lang.Object indexNode(SimpleNode node, Context context)
           
 java.lang.Object instanceofExpression(SimpleNode node, Context context)
           
 java.lang.Object integerNode(SimpleNode node, Context context)
           
 java.lang.Object leNode(SimpleNode node, Context context)
           
 java.lang.Object listElements(SimpleNode node, Context context)
           
 java.lang.Object logAndNode(SimpleNode node, Context context)
           
 java.lang.Object logNotNode(SimpleNode node, Context context)
           
 java.lang.Object logOrNode(SimpleNode node, Context context)
           
 java.lang.Object ltNode(SimpleNode node, Context context)
           
 java.lang.Object mapNode(SimpleNode node, Context context)
           
 java.lang.Object memberNode(SimpleNode node, Context context)
           
 java.lang.Object methodDef(SimpleNode node, Context context)
           
 java.lang.Object methodNode(SimpleNode node, Context context)
           
 java.lang.Object modNode(SimpleNode node, Context context)
           
 java.lang.Object multNode(SimpleNode node, Context context)
           
 java.lang.Object negativeNode(SimpleNode node, Context context)
           
 java.lang.Object newNode(SimpleNode node, Context context)
           
 java.lang.Object notEqNode(SimpleNode node, Context context)
           
 java.lang.Object notNode(SimpleNode node, Context context)
           
 java.lang.Object nullNode(SimpleNode node, Context context)
           
 java.lang.Object orNode(SimpleNode node, Context context)
           
 java.lang.Object packageNode(SimpleNode node, Context context)
           
 java.lang.Object postDecrNode(SimpleNode node, Context context)
           
 java.lang.Object postIncrNode(SimpleNode node, Context context)
           
 java.lang.Object preDecrNode(SimpleNode node, Context context)
           
 java.lang.Object preIncrNode(SimpleNode node, Context context)
           
 java.lang.Object rangeNode(SimpleNode node, Context context)
           
 java.lang.Class resolveType(SimpleNode typeNode, Context context)
           
 java.lang.Object returnNode(SimpleNode node, Context context)
           
 java.lang.Object shiftArithmeticNode(SimpleNode node, Context context)
           
 java.lang.Object shiftLeftNode(SimpleNode node, Context context)
           
 java.lang.Object shiftRightNode(SimpleNode node, Context context)
           
 java.lang.Object start(SimpleNode node, Context context)
           
 java.lang.Object startSet(SimpleNode node, Context context)
           
 java.lang.Object staticMemberNode(SimpleNode node, Context context)
           
 java.lang.Object staticMethodNode(SimpleNode node, Context context)
           
 java.lang.Object stringNode(SimpleNode node, Context context)
           
 java.lang.Object subtractNode(SimpleNode node, Context context)
           
 java.lang.Object switchBlock(SimpleNode node, Context context)
           
 java.lang.Object switchStatement(SimpleNode node, Context context)
           
 java.lang.Object ternary(SimpleNode node, Context context)
           
 java.lang.Object throwNode(SimpleNode node, Context context)
           
 java.lang.Object trueNode(SimpleNode node, Context context)
           
 java.lang.Object tryStatement(SimpleNode node, Context context)
           
 java.lang.Object whileStatement(SimpleNode node, Context context)
           
 java.lang.Object xorNode(SimpleNode node, Context context)
           
 java.lang.Object yieldNode(SimpleNode node, Context context)
           
 
Methods inherited from class pnuts.lang.Runtime
_callConstructor, _callMethod, add, add, add1, add1, addImport, addStaticMembers, and, and, applyGenerator, arraydim, arrayType, call, call, callConstructor, callFunction, callMethod, cast, catchException, checkException, checkException, compareObjects, compareTo, compareTo, createList, createMap, defineTopLevelFunction, defineUnboundFunction, divide, divide, eq, eq, escape, exec, execute, fileToURL, findCallableMethod, format, format, ge, ge, getArrayLength, getBeanProperty, getBeanProperty, getBeanProperty, getBeanPropertyType, getBeginColumn, getBeginLine, getBottomType, getCompiledScript, getConstructors, getElement, getElementAt, getEndLine, getField, getField, getFunction, getFunction, getFunctions, getMessage, getMethods, getProperty, getRange, getRuntime, getScriptReader, getScriptSource, getScriptURL, getStaticField, getThreadContext, gt, gt, isArray, isGenerator, jump, le, le, loadNode, lt, lt, makeArray, matchType, mod, mod, multiply, multiply, ne, ne, negate, negate, newInstance, not, not, or, or, parseChar, parseFloat, parseInt, parseString, primitive, printError, putField, putStaticField, quantity, replaceChar, run, saveNode, setBeanProperty, setBeanProperty, setBeanProperty, setElement, setExitHook, setLine, setLine, setPackage, setRange, setThreadContext, shiftArithmetic, shiftArithmetic, shiftLeft, shiftLeft, shiftRight, shiftRight, subtract, subtract, subtract1, subtract1, throwException, toBoolean, toEnumeration, transform, transform, unparse, xor, xor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PnutsInterpreter

public PnutsInterpreter()
Method Detail

start

public java.lang.Object start(SimpleNode node,
                              Context context)
Specified by:
start in interface Visitor

startSet

public java.lang.Object startSet(SimpleNode node,
                                 Context context)
Specified by:
startSet in interface Visitor

expressionList

public java.lang.Object expressionList(SimpleNode node,
                                       Context context)
Specified by:
expressionList in interface Visitor

global

public java.lang.Object global(SimpleNode node,
                               Context context)
Specified by:
global in interface Visitor

idNode

public java.lang.Object idNode(SimpleNode node,
                               Context context)
Specified by:
idNode in interface Visitor

className

public java.lang.Object className(SimpleNode node,
                                  Context context)
Specified by:
className in interface Visitor

arrayType

public java.lang.Object arrayType(SimpleNode node,
                                  Context context)
Specified by:
arrayType in interface Visitor

_listElements

public java.lang.Object[] _listElements(SimpleNode node,
                                        Context context)

listElements

public java.lang.Object listElements(SimpleNode node,
                                     Context context)
Specified by:
listElements in interface Visitor

mapNode

public java.lang.Object mapNode(SimpleNode node,
                                Context context)
Specified by:
mapNode in interface Visitor

castExpression

public java.lang.Object castExpression(SimpleNode node,
                                       Context context)
Specified by:
castExpression in interface Visitor

classNode

public java.lang.Object classNode(SimpleNode node,
                                  Context context)
Specified by:
classNode in interface Visitor

newNode

public java.lang.Object newNode(SimpleNode node,
                                Context context)
Specified by:
newNode in interface Visitor

classDef

public java.lang.Object classDef(SimpleNode node,
                                 Context context)
Specified by:
classDef in interface Visitor

methodDef

public java.lang.Object methodDef(SimpleNode node,
                                  Context context)
Specified by:
methodDef in interface Visitor

classDefBody

public java.lang.Object classDefBody(SimpleNode node,
                                     Context context)
Specified by:
classDefBody in interface Visitor

classScript

public java.lang.Object classScript(SimpleNode node,
                                    Context context)
Specified by:
classScript in interface Visitor

packageNode

public java.lang.Object packageNode(SimpleNode node,
                                    Context context)
Specified by:
packageNode in interface Visitor

importNode

public java.lang.Object importNode(SimpleNode node,
                                   Context context)
Specified by:
importNode in interface Visitor

rangeNode

public java.lang.Object rangeNode(SimpleNode node,
                                  Context context)
Specified by:
rangeNode in interface Visitor

indexNode

public java.lang.Object indexNode(SimpleNode node,
                                  Context context)
Specified by:
indexNode in interface Visitor

methodNode

public java.lang.Object methodNode(SimpleNode node,
                                   Context context)
Specified by:
methodNode in interface Visitor

staticMethodNode

public java.lang.Object staticMethodNode(SimpleNode node,
                                         Context context)
Specified by:
staticMethodNode in interface Visitor

memberNode

public java.lang.Object memberNode(SimpleNode node,
                                   Context context)
Specified by:
memberNode in interface Visitor

staticMemberNode

public java.lang.Object staticMemberNode(SimpleNode node,
                                         Context context)
Specified by:
staticMemberNode in interface Visitor

applicationNode

public java.lang.Object applicationNode(SimpleNode node,
                                        Context context)
Specified by:
applicationNode in interface Visitor

integerNode

public java.lang.Object integerNode(SimpleNode node,
                                    Context context)
Specified by:
integerNode in interface Visitor

floatingNode

public java.lang.Object floatingNode(SimpleNode node,
                                     Context context)
Specified by:
floatingNode in interface Visitor

characterNode

public java.lang.Object characterNode(SimpleNode node,
                                      Context context)
Specified by:
characterNode in interface Visitor

stringNode

public java.lang.Object stringNode(SimpleNode node,
                                   Context context)
Specified by:
stringNode in interface Visitor

trueNode

public java.lang.Object trueNode(SimpleNode node,
                                 Context context)
Specified by:
trueNode in interface Visitor

falseNode

public java.lang.Object falseNode(SimpleNode node,
                                  Context context)
Specified by:
falseNode in interface Visitor

nullNode

public java.lang.Object nullNode(SimpleNode node,
                                 Context context)
Specified by:
nullNode in interface Visitor

assignment

public java.lang.Object assignment(SimpleNode node,
                                   Context context)
Specified by:
assignment in interface Visitor

assignmentTA

public java.lang.Object assignmentTA(SimpleNode node,
                                     Context context)
Specified by:
assignmentTA in interface Visitor

assignmentMA

public java.lang.Object assignmentMA(SimpleNode node,
                                     Context context)
Specified by:
assignmentMA in interface Visitor

assignmentDA

public java.lang.Object assignmentDA(SimpleNode node,
                                     Context context)
Specified by:
assignmentDA in interface Visitor

assignmentPA

public java.lang.Object assignmentPA(SimpleNode node,
                                     Context context)
Specified by:
assignmentPA in interface Visitor

assignmentSA

public java.lang.Object assignmentSA(SimpleNode node,
                                     Context context)
Specified by:
assignmentSA in interface Visitor

assignmentLA

public java.lang.Object assignmentLA(SimpleNode node,
                                     Context context)
Specified by:
assignmentLA in interface Visitor

assignmentRA

public java.lang.Object assignmentRA(SimpleNode node,
                                     Context context)
Specified by:
assignmentRA in interface Visitor

assignmentRAA

public java.lang.Object assignmentRAA(SimpleNode node,
                                      Context context)
Specified by:
assignmentRAA in interface Visitor

assignmentAA

public java.lang.Object assignmentAA(SimpleNode node,
                                     Context context)
Specified by:
assignmentAA in interface Visitor

assignmentEA

public java.lang.Object assignmentEA(SimpleNode node,
                                     Context context)
Specified by:
assignmentEA in interface Visitor

assignmentOA

public java.lang.Object assignmentOA(SimpleNode node,
                                     Context context)
Specified by:
assignmentOA in interface Visitor

logOrNode

public java.lang.Object logOrNode(SimpleNode node,
                                  Context context)
Specified by:
logOrNode in interface Visitor

logAndNode

public java.lang.Object logAndNode(SimpleNode node,
                                   Context context)
Specified by:
logAndNode in interface Visitor

orNode

public java.lang.Object orNode(SimpleNode node,
                               Context context)
Specified by:
orNode in interface Visitor

xorNode

public java.lang.Object xorNode(SimpleNode node,
                                Context context)
Specified by:
xorNode in interface Visitor

andNode

public java.lang.Object andNode(SimpleNode node,
                                Context context)
Specified by:
andNode in interface Visitor

equalNode

public java.lang.Object equalNode(SimpleNode node,
                                  Context context)
Specified by:
equalNode in interface Visitor

notEqNode

public java.lang.Object notEqNode(SimpleNode node,
                                  Context context)
Specified by:
notEqNode in interface Visitor

instanceofExpression

public java.lang.Object instanceofExpression(SimpleNode node,
                                             Context context)
Specified by:
instanceofExpression in interface Visitor

ltNode

public java.lang.Object ltNode(SimpleNode node,
                               Context context)
Specified by:
ltNode in interface Visitor

gtNode

public java.lang.Object gtNode(SimpleNode node,
                               Context context)
Specified by:
gtNode in interface Visitor

leNode

public java.lang.Object leNode(SimpleNode node,
                               Context context)
Specified by:
leNode in interface Visitor

geNode

public java.lang.Object geNode(SimpleNode node,
                               Context context)
Specified by:
geNode in interface Visitor

shiftLeftNode

public java.lang.Object shiftLeftNode(SimpleNode node,
                                      Context context)
Specified by:
shiftLeftNode in interface Visitor

shiftRightNode

public java.lang.Object shiftRightNode(SimpleNode node,
                                       Context context)
Specified by:
shiftRightNode in interface Visitor

shiftArithmeticNode

public java.lang.Object shiftArithmeticNode(SimpleNode node,
                                            Context context)
Specified by:
shiftArithmeticNode in interface Visitor

addNode

public java.lang.Object addNode(SimpleNode node,
                                Context context)
Specified by:
addNode in interface Visitor

subtractNode

public java.lang.Object subtractNode(SimpleNode node,
                                     Context context)
Specified by:
subtractNode in interface Visitor

multNode

public java.lang.Object multNode(SimpleNode node,
                                 Context context)
Specified by:
multNode in interface Visitor

divideNode

public java.lang.Object divideNode(SimpleNode node,
                                   Context context)
Specified by:
divideNode in interface Visitor

modNode

public java.lang.Object modNode(SimpleNode node,
                                Context context)
Specified by:
modNode in interface Visitor

negativeNode

public java.lang.Object negativeNode(SimpleNode node,
                                     Context context)
Specified by:
negativeNode in interface Visitor

preIncrNode

public java.lang.Object preIncrNode(SimpleNode node,
                                    Context context)
Specified by:
preIncrNode in interface Visitor

preDecrNode

public java.lang.Object preDecrNode(SimpleNode node,
                                    Context context)
Specified by:
preDecrNode in interface Visitor

postIncrNode

public java.lang.Object postIncrNode(SimpleNode node,
                                     Context context)
Specified by:
postIncrNode in interface Visitor

postDecrNode

public java.lang.Object postDecrNode(SimpleNode node,
                                     Context context)
Specified by:
postDecrNode in interface Visitor

notNode

public java.lang.Object notNode(SimpleNode node,
                                Context context)
Specified by:
notNode in interface Visitor

logNotNode

public java.lang.Object logNotNode(SimpleNode node,
                                   Context context)
Specified by:
logNotNode in interface Visitor

continueNode

public java.lang.Object continueNode(SimpleNode node,
                                     Context context)
Specified by:
continueNode in interface Visitor

breakNode

public java.lang.Object breakNode(SimpleNode node,
                                  Context context)
Specified by:
breakNode in interface Visitor

returnNode

public java.lang.Object returnNode(SimpleNode node,
                                   Context context)
Specified by:
returnNode in interface Visitor

yieldNode

public java.lang.Object yieldNode(SimpleNode node,
                                  Context context)
Specified by:
yieldNode in interface Visitor

catchNode

public java.lang.Object catchNode(SimpleNode node,
                                  Context context)
Specified by:
catchNode in interface Visitor

throwNode

public java.lang.Object throwNode(SimpleNode node,
                                  Context context)
Specified by:
throwNode in interface Visitor

finallyNode

public java.lang.Object finallyNode(SimpleNode node,
                                    Context context)
Specified by:
finallyNode in interface Visitor

tryStatement

public java.lang.Object tryStatement(SimpleNode node,
                                     Context context)
Specified by:
tryStatement in interface Visitor

catchBlock

public java.lang.Object catchBlock(SimpleNode node,
                                   Context context)
Specified by:
catchBlock in interface Visitor

blockNode

public java.lang.Object blockNode(SimpleNode node,
                                  Context context)
Specified by:
blockNode in interface Visitor

ifStatement

public java.lang.Object ifStatement(SimpleNode node,
                                    Context context)
Specified by:
ifStatement in interface Visitor

doStatement

public java.lang.Object doStatement(SimpleNode node,
                                    Context context)
Specified by:
doStatement in interface Visitor

whileStatement

public java.lang.Object whileStatement(SimpleNode node,
                                       Context context)
Specified by:
whileStatement in interface Visitor

forStatement

public java.lang.Object forStatement(SimpleNode node,
                                     Context context)
Specified by:
forStatement in interface Visitor

foreachStatement

public java.lang.Object foreachStatement(SimpleNode node,
                                         Context context)
Specified by:
foreachStatement in interface Visitor

switchStatement

public java.lang.Object switchStatement(SimpleNode node,
                                        Context context)
Specified by:
switchStatement in interface Visitor

switchBlock

public java.lang.Object switchBlock(SimpleNode node,
                                    Context context)
Specified by:
switchBlock in interface Visitor

functionStatement

public java.lang.Object functionStatement(SimpleNode node,
                                          Context context)
Specified by:
functionStatement in interface Visitor

ternary

public java.lang.Object ternary(SimpleNode node,
                                Context context)
Specified by:
ternary in interface Visitor

accept

protected java.lang.Object accept(SimpleNode node,
                                  int idx,
                                  Context context)

resolveType

public java.lang.Class resolveType(SimpleNode typeNode,
                                   Context context)