jltools.ext.jl.ast
Class Special_c

java.lang.Object
  |
  +--jltools.ext.jl.ast.Node_c
        |
        +--jltools.ext.jl.ast.Expr_c
              |
              +--jltools.ext.jl.ast.Special_c
All Implemented Interfaces:
java.lang.Cloneable, Copy, Expr, Node, Prefix, Receiver, java.io.Serializable, Special, Typed

public class Special_c
extends Expr_c
implements Special

A Special is an immutable representation of a reference to this or superFoo.this.

See Also:
Serialized Form

Inner classes inherited from class jltools.ext.jl.ast.Node_c
Node_c.StringCodeWriter
 
Inner classes inherited from class jltools.ast.Special
Special.Kind
 
Field Summary
protected  Special.Kind kind
           
protected  TypeNode qualifier
           
 
Fields inherited from class jltools.ext.jl.ast.Expr_c
type
 
Fields inherited from class jltools.ext.jl.ast.Node_c
ext, position
 
Fields inherited from interface jltools.ast.Special
SUPER, THIS
 
Constructor Summary
Special_c(Ext ext, Position pos, Special.Kind kind, TypeNode qualifier)
           
 
Method Summary
 Special.Kind kind()
          Get the kind of the special expression, either this or super.
 Special kind(Special.Kind kind)
          Set the kind of the special expression, either this or super.
 Precedence precedence()
          Get the precedence of the expression.
 TypeNode qualifier()
          Get the qualifier of the special expression.
 Special qualifier(TypeNode qualifier)
          Set the qualifier of the special expression.
protected  Special_c reconstruct(TypeNode qualifier)
          Reconstruct the expression.
 java.lang.String toString()
           
 void translate_(CodeWriter w, Translator tr)
          Write the expression to an output file.
 Node typeCheck_(TypeChecker tc)
          Type check the expression.
 Node visitChildren(NodeVisitor v)
          Visit the children of the expression.
 
Methods inherited from class jltools.ext.jl.ast.Expr_c
buildTypes_, dump, reconstructTypes_, translateSubexpr, type, type
 
Methods inherited from class jltools.ext.jl.ast.Node_c
buildTypes, buildTypesOverride_, buildTypesOverride, copy, disambiguate_, disambiguate, disambiguateOverride_, disambiguateOverride, disambiguateTypes_, disambiguateTypes, disambiguateTypesOverride_, disambiguateTypesOverride, enterScope, exceptionCheck_, exceptionCheck, exceptionCheckOverride_, exceptionCheckOverride, ext, ext, foldConstants_, foldConstants, foldConstantsOverride_, foldConstantsOverride, leaveScope, position, position, reconstructTypes, translate, translateBlock, translateSubstmt, typeCheck, typeCheckOverride_, typeCheckOverride, visit, visitList
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface jltools.ast.Expr
type
 
Methods inherited from interface jltools.ast.Node
buildTypes_, buildTypesOverride_, copy, disambiguate_, disambiguateOverride_, disambiguateTypes_, disambiguateTypesOverride_, dump, enterScope, exceptionCheck_, exceptionCheckOverride_, ext, ext, foldConstants_, foldConstantsOverride_, leaveScope, position, position, reconstructTypes_, typeCheckOverride_, visit
 
Methods inherited from interface jltools.ast.Typed
type
 

Field Detail

kind

protected Special.Kind kind

qualifier

protected TypeNode qualifier
Constructor Detail

Special_c

public Special_c(Ext ext,
                 Position pos,
                 Special.Kind kind,
                 TypeNode qualifier)
Method Detail

precedence

public Precedence precedence()
Get the precedence of the expression.
Specified by:
precedence in interface Expr
Overrides:
precedence in class Expr_c

kind

public Special.Kind kind()
Get the kind of the special expression, either this or super.
Specified by:
kind in interface Special

kind

public Special kind(Special.Kind kind)
Set the kind of the special expression, either this or super.
Specified by:
kind in interface Special

qualifier

public TypeNode qualifier()
Get the qualifier of the special expression.
Specified by:
qualifier in interface Special

qualifier

public Special qualifier(TypeNode qualifier)
Set the qualifier of the special expression.
Specified by:
qualifier in interface Special

reconstruct

protected Special_c reconstruct(TypeNode qualifier)
Reconstruct the expression.

visitChildren

public Node visitChildren(NodeVisitor v)
Visit the children of the expression.
Specified by:
visitChildren in interface Node
Overrides:
visitChildren in class Node_c

typeCheck_

public Node typeCheck_(TypeChecker tc)
                throws SemanticException
Type check the expression.
Specified by:
typeCheck_ in interface Node
Overrides:
typeCheck_ in class Node_c

toString

public java.lang.String toString()
Overrides:
toString in class Node_c

translate_

public void translate_(CodeWriter w,
                       Translator tr)
Write the expression to an output file.
Specified by:
translate_ in interface Node
Overrides:
translate_ in class Node_c
Following copied from interface: jltools.ast.Node
Parameters:
w - The code writer to which to write.
tr - The translation pass. This is not a visitor.