pnuts.trans
Class Translator
java.lang.Object
|
+--pnuts.trans.Translator
- public class Translator
- extends java.lang.Object
- implements Visitor, PnutsParserTreeConstants
Pnuts to Java translator
Usage:
function trans(expr_or_stream, className, output){
p = Pnuts::parse(expr_or_stream)
cc = CompileContext()
cc.setName("translator")
p.accept(Translator(className), cc)
cc.writeTo(output)
output.flush()
}
trans("function fib(n) if (n < 2) n else fib(n - 1) + fib(n - 2)", "fib")
C:\> javac fib.java
C:\> pnuts
> fib::main(getContext())
> fib(25)
For more information, refer to the User's Guide
- See Also:
CompileContext
,
Visitor
,
PnutsParserTreeConstants
Fields inherited from interface pnuts.lang.PnutsParserTreeConstants |
JJTADDNODE,
JJTANDNODE,
JJTAPPLICATIONNODE,
JJTARRAYTYPE,
JJTASSIGNMENT,
JJTASSIGNMENTAA,
JJTASSIGNMENTDA,
JJTASSIGNMENTEA,
JJTASSIGNMENTLA,
JJTASSIGNMENTMA,
JJTASSIGNMENTOA,
JJTASSIGNMENTPA,
JJTASSIGNMENTRA,
JJTASSIGNMENTRAA,
JJTASSIGNMENTSA,
JJTASSIGNMENTTA,
JJTBLOCK,
JJTBREAK,
JJTCASTEXPRESSION,
JJTCHARACTERNODE,
JJTCLASS,
JJTCONTINUE,
JJTDIVIDENODE,
JJTELSEIFNODE,
JJTELSENODE,
JJTEQUALNODE,
JJTEXPRESSIONLIST,
JJTFALSENODE,
JJTFLOATINGNODE,
JJTFOREACHSTATEMENT,
JJTFORINIT,
JJTFORSTATEMENT,
JJTFORUPDATE,
JJTFUNCTIONSTATEMENT,
JJTGENODE,
JJTGLOBAL,
JJTGTNODE,
JJTIDNODE,
JJTIFSTATEMENT,
JJTINDEXNODE,
JJTINSTANCEOFEXPRESSION,
JJTINTEGERNODE,
JJTLENODE,
JJTLISTELEMENTS,
JJTLOCAL,
JJTLOGANDNODE,
JJTLOGEXORNODE,
JJTLOGNOTNODE,
JJTLOGORNODE,
JJTLTNODE,
JJTMEMBERNODE,
JJTMETHODNODE,
JJTMODNODE,
JJTMULTNODE,
JJTNEGATIVENODE,
jjtNodeName,
JJTNOTEQNODE,
JJTNOTNODE,
JJTNULLNODE,
JJTORNODE,
JJTPACKAGE,
JJTPARAM,
JJTPARAMLIST,
JJTPOSTDECRNODE,
JJTPOSTINCRNODE,
JJTPREDECRNODE,
JJTPREINCRNODE,
JJTRANGENODE,
JJTRETURN,
JJTSHIFTARITHMETICNODE,
JJTSHIFTLEFTNODE,
JJTSHIFTRIGHTNODE,
JJTSTART,
JJTSTARTSET,
JJTSTATICMEMBERNODE,
JJTSTATICMETHODNODE,
JJTSTRINGNODE,
JJTSUBTRACTNODE,
JJTSWITCHBLOCK,
JJTSWITCHLABEL,
JJTSWITCHSTATEMENT,
JJTTRUENODE,
JJTVOID,
JJTWHILESTATEMENT |
Method Summary |
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 |
characterNode(SimpleNode node,
Context context)
|
java.lang.Object |
classNode(SimpleNode node,
Context context)
|
java.lang.Object |
continueNode(SimpleNode node,
Context context)
|
java.lang.Object |
divideNode(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 |
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)
|
void |
includeLineNo(boolean flag)
|
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 |
logExorNode(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 |
memberNode(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 |
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 |
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.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 |
trueNode(SimpleNode node,
Context context)
|
java.lang.Object |
whileStatement(SimpleNode node,
Context context)
|
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Translator
public Translator()
Translator
public Translator(java.lang.String className)
includeLineNo
public void includeLineNo(boolean flag)
startSet
public java.lang.Object startSet(SimpleNode node,
Context context)
- Specified by:
- startSet in interface Visitor
start
public java.lang.Object start(SimpleNode node,
Context context)
- Specified by:
- start in interface Visitor
expressionList
public java.lang.Object expressionList(SimpleNode node,
Context context)
- Specified by:
- expressionList 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
stringNode
public java.lang.Object stringNode(SimpleNode node,
Context context)
- Specified by:
- stringNode in interface Visitor
characterNode
public java.lang.Object characterNode(SimpleNode node,
Context context)
- Specified by:
- characterNode in interface Visitor
classNode
public java.lang.Object classNode(SimpleNode node,
Context context)
- Specified by:
- classNode in interface Visitor
andNode
public java.lang.Object andNode(SimpleNode node,
Context context)
- Specified by:
- andNode in interface Visitor
orNode
public java.lang.Object orNode(SimpleNode node,
Context context)
- Specified by:
- orNode in interface Visitor
notNode
public java.lang.Object notNode(SimpleNode node,
Context context)
- Specified by:
- notNode 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
negativeNode
public java.lang.Object negativeNode(SimpleNode node,
Context context)
- Specified by:
- negativeNode in interface Visitor
modNode
public java.lang.Object modNode(SimpleNode node,
Context context)
- Specified by:
- modNode in interface Visitor
logExorNode
public java.lang.Object logExorNode(SimpleNode node,
Context context)
- Specified by:
- logExorNode 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
logNotNode
public java.lang.Object logNotNode(SimpleNode node,
Context context)
- Specified by:
- logNotNode in interface Visitor
ltNode
public java.lang.Object ltNode(SimpleNode node,
Context context)
- Specified by:
- ltNode in interface Visitor
leNode
public java.lang.Object leNode(SimpleNode node,
Context context)
- Specified by:
- leNode in interface Visitor
gtNode
public java.lang.Object gtNode(SimpleNode node,
Context context)
- Specified by:
- gtNode in interface Visitor
geNode
public java.lang.Object geNode(SimpleNode node,
Context context)
- Specified by:
- geNode 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
ifStatement
public java.lang.Object ifStatement(SimpleNode node,
Context context)
- Specified by:
- ifStatement in interface Visitor
functionStatement
public java.lang.Object functionStatement(SimpleNode node,
Context context)
- Specified by:
- functionStatement in interface Visitor
applicationNode
public java.lang.Object applicationNode(SimpleNode node,
Context context)
- Specified by:
- applicationNode in interface Visitor
blockNode
public java.lang.Object blockNode(SimpleNode node,
Context context)
- Specified by:
- blockNode 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
idNode
public java.lang.Object idNode(SimpleNode node,
Context context)
- Specified by:
- idNode in interface Visitor
global
public java.lang.Object global(SimpleNode node,
Context context)
- Specified by:
- global in interface Visitor
listElements
public java.lang.Object listElements(SimpleNode node,
Context context)
- Specified by:
- listElements in interface Visitor
castExpression
public java.lang.Object castExpression(SimpleNode node,
Context context)
- Specified by:
- castExpression in interface Visitor
memberNode
public java.lang.Object memberNode(SimpleNode node,
Context context)
- Specified by:
- memberNode in interface Visitor
methodNode
public java.lang.Object methodNode(SimpleNode node,
Context context)
- Specified by:
- methodNode in interface Visitor
arrayType
public java.lang.Object arrayType(SimpleNode node,
Context context)
- Specified by:
- arrayType in interface Visitor
indexNode
public java.lang.Object indexNode(SimpleNode node,
Context context)
- Specified by:
- indexNode in interface Visitor
instanceofExpression
public java.lang.Object instanceofExpression(SimpleNode node,
Context context)
- Specified by:
- instanceofExpression 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
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
staticMethodNode
public java.lang.Object staticMethodNode(SimpleNode node,
Context context)
- Specified by:
- staticMethodNode in interface Visitor
staticMemberNode
public java.lang.Object staticMemberNode(SimpleNode node,
Context context)
- Specified by:
- staticMemberNode in interface Visitor
rangeNode
public java.lang.Object rangeNode(SimpleNode node,
Context context)
- Specified by:
- rangeNode in interface Visitor
forStatement
public java.lang.Object forStatement(SimpleNode node,
Context context)
- Specified by:
- forStatement in interface Visitor
breakNode
public java.lang.Object breakNode(SimpleNode node,
Context context)
- Specified by:
- breakNode in interface Visitor
continueNode
public java.lang.Object continueNode(SimpleNode node,
Context context)
- Specified by:
- continueNode in interface Visitor
returnNode
public java.lang.Object returnNode(SimpleNode node,
Context context)
- Specified by:
- returnNode in interface Visitor
whileStatement
public java.lang.Object whileStatement(SimpleNode node,
Context context)
- Specified by:
- whileStatement 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
accept
protected java.lang.Object accept(SimpleNode node,
int idx,
Context context)