|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectpnuts.lang.Runtime
pnuts.compiler.Compiler
public class Compiler
Pnuts to JVM bytecode compiler
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 | |
---|---|
Compiler()
|
|
Compiler(java.lang.String className)
|
|
Compiler(java.lang.String className,
boolean automatic)
|
|
Compiler(java.lang.String className,
boolean automatic,
boolean useDynamicProxy)
|
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 |
compile(Pnuts pnuts,
ClassFileHandler handler)
Compile a parsed expression. |
Pnuts |
compile(Pnuts pnuts,
Context context)
Compile a parsed expression. |
PnutsFunction |
compile(PnutsFunction pf)
Compile a function group |
java.lang.Object |
compile(PnutsFunction pf,
ClassFileHandler handler)
Compile a function group. |
PnutsFunction |
compile(PnutsFunction pf,
Context context)
Compile a function group |
Pnuts |
compile(java.lang.String expression)
Compile an expression. |
Pnuts |
compile(java.lang.String expression,
Context context)
Compile an expression. |
java.lang.Object |
compileClassScript(java.io.Reader reader,
java.lang.Object scriptSource,
ClassFileHandler handler)
|
ClassFile |
compileClassScript(SimpleNode classScriptNode,
java.lang.Object scriptSource,
java.util.List helperClassFiles)
|
java.lang.Object |
continueNode(SimpleNode node,
Context context)
|
static pnuts.compiler.CodeLoader |
createCodeLoader(java.lang.ClassLoader loader)
|
static java.lang.Class |
defineClass(SimpleNode node,
Context context,
Package pkg)
|
static java.lang.Class |
defineClass(java.lang.String encodedNode,
Context context,
Package pkg)
|
java.lang.Object |
divideNode(SimpleNode node,
Context context)
|
java.lang.Object |
doStatement(SimpleNode node,
Context context)
|
java.lang.Object |
equalNode(SimpleNode node,
Context context)
|
protected java.lang.Object |
execute(pnuts.compiler.CompileContext cc,
Context context,
boolean catchJump)
|
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)
|
static void |
generateGetter(ClassFile cf,
java.lang.String name,
java.lang.Class type,
java.lang.String methodName)
|
static void |
generateSetter(ClassFile cf,
java.lang.String name,
java.lang.Class type,
java.lang.String methodName)
|
java.lang.Object |
geNode(SimpleNode node,
Context context)
|
static SimpleNode |
getClassDefNode(java.lang.String className,
boolean isInterface,
SimpleNode typeNode,
SimpleNode classDefBody)
Convert 'new type(){...}' to 'class name extends type {...}' |
static org.pnuts.lang.Signature |
getterSignature(java.lang.Class type,
java.lang.String name)
|
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)
|
void |
includeColumnNo(boolean flag)
|
void |
includeLineNo(boolean flag)
|
void |
includeMainMethod(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)
|
static boolean |
isCompiled(java.lang.Object obj)
Check if an object is compiled |
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.Object |
returnNode(SimpleNode node,
Context context)
|
void |
setConstantFolding(boolean flag)
|
static org.pnuts.lang.Signature |
setterSignature(java.lang.Class type,
java.lang.String name)
|
void |
setTraceMode(boolean mode)
|
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)
|
void |
useDynamicProxy(boolean flag)
|
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 java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Compiler()
public Compiler(java.lang.String className)
public Compiler(java.lang.String className, boolean automatic)
public Compiler(java.lang.String className, boolean automatic, boolean useDynamicProxy)
Method Detail |
---|
public void includeLineNo(boolean flag)
public void includeColumnNo(boolean flag)
public void setConstantFolding(boolean flag)
public void includeMainMethod(boolean flag)
public void setTraceMode(boolean mode)
public void useDynamicProxy(boolean flag)
protected java.lang.Object execute(pnuts.compiler.CompileContext cc, Context context, boolean catchJump)
public java.lang.Object startSet(SimpleNode node, Context context)
startSet
in interface Visitor
public java.lang.Object start(SimpleNode node, Context context)
start
in interface Visitor
public java.lang.Object expressionList(SimpleNode node, Context context)
expressionList
in interface Visitor
public java.lang.Object integerNode(SimpleNode node, Context context)
integerNode
in interface Visitor
public java.lang.Object floatingNode(SimpleNode node, Context context)
floatingNode
in interface Visitor
public java.lang.Object stringNode(SimpleNode node, Context context)
stringNode
in interface Visitor
public java.lang.Object characterNode(SimpleNode node, Context context)
characterNode
in interface Visitor
public java.lang.Object classNode(SimpleNode node, Context context)
classNode
in interface Visitor
public static SimpleNode getClassDefNode(java.lang.String className, boolean isInterface, SimpleNode typeNode, SimpleNode classDefBody)
public java.lang.Object newNode(SimpleNode node, Context context)
newNode
in interface Visitor
public java.lang.Object classDef(SimpleNode node, Context context)
classDef
in interface Visitor
public static java.lang.Class defineClass(java.lang.String encodedNode, Context context, Package pkg)
public static java.lang.Class defineClass(SimpleNode node, Context context, Package pkg)
public java.lang.Object methodDef(SimpleNode node, Context context)
methodDef
in interface Visitor
public java.lang.Object classDefBody(SimpleNode node, Context context)
classDefBody
in interface Visitor
public static void generateGetter(ClassFile cf, java.lang.String name, java.lang.Class type, java.lang.String methodName)
public static void generateSetter(ClassFile cf, java.lang.String name, java.lang.Class type, java.lang.String methodName)
public static org.pnuts.lang.Signature getterSignature(java.lang.Class type, java.lang.String name)
public static org.pnuts.lang.Signature setterSignature(java.lang.Class type, java.lang.String name)
public java.lang.Object classScript(SimpleNode node, Context context)
classScript
in interface Visitor
public java.lang.Object packageNode(SimpleNode node, Context context)
packageNode
in interface Visitor
public java.lang.Object importNode(SimpleNode node, Context context)
importNode
in interface Visitor
public java.lang.Object logAndNode(SimpleNode node, Context context)
logAndNode
in interface Visitor
public java.lang.Object logOrNode(SimpleNode node, Context context)
logOrNode
in interface Visitor
public java.lang.Object logNotNode(SimpleNode node, Context context)
logNotNode
in interface Visitor
public java.lang.Object shiftLeftNode(SimpleNode node, Context context)
shiftLeftNode
in interface Visitor
public java.lang.Object shiftRightNode(SimpleNode node, Context context)
shiftRightNode
in interface Visitor
public java.lang.Object shiftArithmeticNode(SimpleNode node, Context context)
shiftArithmeticNode
in interface Visitor
public java.lang.Object addNode(SimpleNode node, Context context)
addNode
in interface Visitor
public java.lang.Object subtractNode(SimpleNode node, Context context)
subtractNode
in interface Visitor
public java.lang.Object multNode(SimpleNode node, Context context)
multNode
in interface Visitor
public java.lang.Object divideNode(SimpleNode node, Context context)
divideNode
in interface Visitor
public java.lang.Object modNode(SimpleNode node, Context context)
modNode
in interface Visitor
public java.lang.Object xorNode(SimpleNode node, Context context)
xorNode
in interface Visitor
public java.lang.Object orNode(SimpleNode node, Context context)
orNode
in interface Visitor
public java.lang.Object andNode(SimpleNode node, Context context)
andNode
in interface Visitor
public java.lang.Object negativeNode(SimpleNode node, Context context)
negativeNode
in interface Visitor
public java.lang.Object notNode(SimpleNode node, Context context)
notNode
in interface Visitor
public java.lang.Object ltNode(SimpleNode node, Context context)
ltNode
in interface Visitor
public java.lang.Object leNode(SimpleNode node, Context context)
leNode
in interface Visitor
public java.lang.Object gtNode(SimpleNode node, Context context)
gtNode
in interface Visitor
public java.lang.Object geNode(SimpleNode node, Context context)
geNode
in interface Visitor
public java.lang.Object equalNode(SimpleNode node, Context context)
equalNode
in interface Visitor
public java.lang.Object notEqNode(SimpleNode node, Context context)
notEqNode
in interface Visitor
public java.lang.Object ifStatement(SimpleNode node, Context context)
ifStatement
in interface Visitor
public java.lang.Object functionStatement(SimpleNode node, Context context)
functionStatement
in interface Visitor
public java.lang.Object applicationNode(SimpleNode node, Context context)
applicationNode
in interface Visitor
public java.lang.Object tryStatement(SimpleNode node, Context context)
tryStatement
in interface Visitor
public java.lang.Object catchBlock(SimpleNode node, Context context)
catchBlock
in interface Visitor
public java.lang.Object blockNode(SimpleNode node, Context context)
blockNode
in interface Visitor
public java.lang.Object trueNode(SimpleNode node, Context context)
trueNode
in interface Visitor
public java.lang.Object falseNode(SimpleNode node, Context context)
falseNode
in interface Visitor
public java.lang.Object nullNode(SimpleNode node, Context context)
nullNode
in interface Visitor
public java.lang.Object idNode(SimpleNode node, Context context)
idNode
in interface Visitor
public java.lang.Object global(SimpleNode node, Context context)
global
in interface Visitor
public java.lang.Object listElements(SimpleNode node, Context context)
listElements
in interface Visitor
public java.lang.Object _listElements(SimpleNode node, Context context)
public java.lang.Object mapNode(SimpleNode node, Context context)
mapNode
in interface Visitor
public java.lang.Object castExpression(SimpleNode node, Context context)
castExpression
in interface Visitor
public java.lang.Object memberNode(SimpleNode node, Context context)
memberNode
in interface Visitor
public java.lang.Object methodNode(SimpleNode node, Context context)
methodNode
in interface Visitor
public java.lang.Object className(SimpleNode node, Context context)
className
in interface Visitor
public java.lang.Object arrayType(SimpleNode node, Context context)
arrayType
in interface Visitor
public java.lang.Object indexNode(SimpleNode node, Context context)
indexNode
in interface Visitor
public java.lang.Object instanceofExpression(SimpleNode node, Context context)
instanceofExpression
in interface Visitor
public java.lang.Object assignment(SimpleNode node, Context context)
assignment
in interface Visitor
public java.lang.Object assignmentTA(SimpleNode node, Context context)
assignmentTA
in interface Visitor
public java.lang.Object assignmentMA(SimpleNode node, Context context)
assignmentMA
in interface Visitor
public java.lang.Object assignmentDA(SimpleNode node, Context context)
assignmentDA
in interface Visitor
public java.lang.Object assignmentPA(SimpleNode node, Context context)
assignmentPA
in interface Visitor
public java.lang.Object assignmentSA(SimpleNode node, Context context)
assignmentSA
in interface Visitor
public java.lang.Object assignmentLA(SimpleNode node, Context context)
assignmentLA
in interface Visitor
public java.lang.Object assignmentRA(SimpleNode node, Context context)
assignmentRA
in interface Visitor
public java.lang.Object assignmentRAA(SimpleNode node, Context context)
assignmentRAA
in interface Visitor
public java.lang.Object assignmentAA(SimpleNode node, Context context)
assignmentAA
in interface Visitor
public java.lang.Object assignmentEA(SimpleNode node, Context context)
assignmentEA
in interface Visitor
public java.lang.Object assignmentOA(SimpleNode node, Context context)
assignmentOA
in interface Visitor
public java.lang.Object preIncrNode(SimpleNode node, Context context)
preIncrNode
in interface Visitor
public java.lang.Object preDecrNode(SimpleNode node, Context context)
preDecrNode
in interface Visitor
public java.lang.Object postIncrNode(SimpleNode node, Context context)
postIncrNode
in interface Visitor
public java.lang.Object postDecrNode(SimpleNode node, Context context)
postDecrNode
in interface Visitor
public java.lang.Object staticMethodNode(SimpleNode node, Context context)
staticMethodNode
in interface Visitor
public java.lang.Object staticMemberNode(SimpleNode node, Context context)
staticMemberNode
in interface Visitor
public java.lang.Object rangeNode(SimpleNode node, Context context)
rangeNode
in interface Visitor
public java.lang.Object forStatement(SimpleNode node, Context context)
forStatement
in interface Visitor
public java.lang.Object breakNode(SimpleNode node, Context context)
breakNode
in interface Visitor
public java.lang.Object continueNode(SimpleNode node, Context context)
continueNode
in interface Visitor
public java.lang.Object returnNode(SimpleNode node, Context context)
returnNode
in interface Visitor
public java.lang.Object yieldNode(SimpleNode node, Context context)
yieldNode
in interface Visitor
public java.lang.Object catchNode(SimpleNode node, Context context)
catchNode
in interface Visitor
public java.lang.Object throwNode(SimpleNode node, Context context)
throwNode
in interface Visitor
public java.lang.Object finallyNode(SimpleNode node, Context context)
finallyNode
in interface Visitor
public java.lang.Object doStatement(SimpleNode node, Context context)
doStatement
in interface Visitor
public java.lang.Object whileStatement(SimpleNode node, Context context)
whileStatement
in interface Visitor
public java.lang.Object foreachStatement(SimpleNode node, Context context)
foreachStatement
in interface Visitor
public java.lang.Object switchStatement(SimpleNode node, Context context)
switchStatement
in interface Visitor
public java.lang.Object switchBlock(SimpleNode node, Context context)
switchBlock
in interface Visitor
public java.lang.Object ternary(SimpleNode node, Context context)
ternary
in interface Visitor
protected java.lang.Object accept(SimpleNode node, int idx, Context context)
public static pnuts.compiler.CodeLoader createCodeLoader(java.lang.ClassLoader loader)
public java.lang.Object compile(Pnuts pnuts, ClassFileHandler handler)
public Pnuts compile(Pnuts pnuts, Context context)
pnuts
- a parsed expression to be compiledcontext
- a context in which the expression is compiled.
public Pnuts compile(java.lang.String expression)
expression
- an expression to be compiled.
public Pnuts compile(java.lang.String expression, Context context)
expression
- an expression to be compiledcontext
- a context in which the expression is compiled.
public java.lang.Object compile(PnutsFunction pf, ClassFileHandler handler)
pf
- a function group.handler
- the resulting bytecode is handle by this object.
public PnutsFunction compile(PnutsFunction pf)
pf
- a function group to be compiled.
public PnutsFunction compile(PnutsFunction pf, Context context)
pf
- a function group to be compiled.context
- a context in which the function is compiled.
public static boolean isCompiled(java.lang.Object obj)
obj
- an object to be checked
public ClassFile compileClassScript(SimpleNode classScriptNode, java.lang.Object scriptSource, java.util.List helperClassFiles)
public java.lang.Object compileClassScript(java.io.Reader reader, java.lang.Object scriptSource, ClassFileHandler handler) throws ParseException
ParseException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |