org.mozilla.javascript.optimizer
Class Codegen

java.lang.Object
  |
  +--org.mozilla.javascript.LabelTable
        |
        +--org.mozilla.javascript.Interpreter
              |
              +--org.mozilla.javascript.optimizer.Codegen

public class Codegen
extends Interpreter

This class generates code for a given IR tree.

Author:
Norris Boyd, Roger Lawrence

Fields inherited from class org.mozilla.javascript.Interpreter
printICode
 
Constructor Summary
Codegen()
           
 
Method Summary
 int acquireLabel()
           
 java.lang.Object compile(Context cx, Scriptable scope, Node tree, java.lang.Object securityDomain, SecuritySupport securitySupport, ClassNameHelper nameHelper)
           
 IRFactory createIRFactory(TokenStream ts, ClassNameHelper nameHelper, Scriptable scope)
           
 void emitDirectConstructor(OptFunctionNode fnNode)
           
 java.lang.String generateCode(Node tree, java.util.Vector names, java.util.Vector classFiles, ClassNameHelper nameHelper)
           
 int markLabel(int label)
           
 int markLabel(int label, short stackheight)
           
 Node transform(Node tree, TokenStream ts, Scriptable scope)
           
 
Methods inherited from class org.mozilla.javascript.Interpreter
interpret
 
Methods inherited from class org.mozilla.javascript.LabelTable
markLabel
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Codegen

public Codegen()
Method Detail

createIRFactory

public IRFactory createIRFactory(TokenStream ts,
                                 ClassNameHelper nameHelper,
                                 Scriptable scope)
Overrides:
createIRFactory in class Interpreter

transform

public Node transform(Node tree,
                      TokenStream ts,
                      Scriptable scope)
Overrides:
transform in class Interpreter

compile

public java.lang.Object compile(Context cx,
                                Scriptable scope,
                                Node tree,
                                java.lang.Object securityDomain,
                                SecuritySupport securitySupport,
                                ClassNameHelper nameHelper)
                         throws java.io.IOException
Overrides:
compile in class Interpreter

markLabel

public int markLabel(int label)

markLabel

public int markLabel(int label,
                     short stackheight)

acquireLabel

public int acquireLabel()
Overrides:
acquireLabel in class LabelTable

emitDirectConstructor

public void emitDirectConstructor(OptFunctionNode fnNode)

generateCode

public java.lang.String generateCode(Node tree,
                                     java.util.Vector names,
                                     java.util.Vector classFiles,
                                     ClassNameHelper nameHelper)