polyglot.ext.jl.ast
Class ClassLit_c
java.lang.Object
polyglot.ext.jl.ast.Node_c
polyglot.ext.jl.ast.Term_c
polyglot.ext.jl.ast.Expr_c
polyglot.ext.jl.ast.Lit_c
polyglot.ext.jl.ast.ClassLit_c
- All Implemented Interfaces:
- java.lang.Cloneable, ClassLit, Expr, JL, Lit, Node, NodeOps, Prefix, Receiver, Term, Typed, Copy
public class ClassLit_c
- extends Lit_c
- implements ClassLit
A ClassLit
represents a class literal expression.
A class literal expressions is an expression consisting of the
name of a class, interface, array, or primitive type followed by a period (.)
and the token class.
Fields inherited from class polyglot.ext.jl.ast.Expr_c |
type |
Methods inherited from class polyglot.ext.jl.ast.Expr_c |
booleanValue, buildTypes, byteValue, charValue, doubleValue, dump, floatValue, intValue, longValue, printSubExpr, printSubExpr, shortValue, stringValue, type, type |
Methods inherited from class polyglot.ext.jl.ast.Node_c |
addDecls, addMembers, addMembersEnter, addMembersOverride, buildTypesEnter, buildTypesOverride, childExpectedType, copy, del, del, disambiguate, disambiguateEnter, disambiguateOverride, enterScope, enterScope, exceptionCheckEnter, exceptionCheckOverride, ext, ext, ext, ext, init, node, position, position, print, printBlock, printSubStmt, throwTypes, translate, typeCheckEnter, typeCheckOverride, visit, visitChild, visitEdge, visitList |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface polyglot.ast.Node |
childExpectedType, del, del, dump, ext, ext, ext, ext, position, position, visit, visitChild, visitEdge, visitList |
Methods inherited from interface polyglot.ast.JL |
init, node |
Methods inherited from interface polyglot.ast.NodeOps |
addDecls, addMembers, addMembersEnter, buildTypes, buildTypesEnter, disambiguate, disambiguateEnter, enterScope, enterScope, exceptionCheck, exceptionCheckEnter, throwTypes, translate, typeCheckEnter |
Methods inherited from interface polyglot.util.Copy |
copy |
Methods inherited from interface polyglot.ast.Typed |
type |
typeNode
protected TypeNode typeNode
ClassLit_c
public ClassLit_c(Position pos,
TypeNode typeNode)
typeNode
public TypeNode typeNode()
- Specified by:
typeNode
in interface ClassLit
typeNode
public ClassLit typeNode(TypeNode typeNode)
objValue
public java.lang.Object objValue()
- Cannot return the correct object (except for maybe
some of the primitive arrays), so we just return null here.
visitChildren
public Node visitChildren(NodeVisitor v)
- Description copied from interface:
NodeOps
- Visit the children of the node.
- Specified by:
visitChildren
in interface NodeOps
- Overrides:
visitChildren
in class Node_c
- Parameters:
v
- The visitor that will traverse/rewrite the AST.
- Returns:
- A new AST if a change was made, or
this
.
typeCheck
public Node typeCheck(TypeChecker tc)
throws SemanticException
- Type check the expression.
- Specified by:
typeCheck
in interface NodeOps
- Overrides:
typeCheck
in class Node_c
- Parameters:
tc
- The type checking visitor.
- Throws:
SemanticException
toString
public java.lang.String toString()
- Overrides:
toString
in class Node_c
prettyPrint
public void prettyPrint(CodeWriter w,
PrettyPrinter tr)
- Write the expression to an output file.
- Specified by:
prettyPrint
in interface NodeOps
- Overrides:
prettyPrint
in class Node_c
- Parameters:
w
- The code writer to which to write.tr
- The pretty printer. This is not a visitor.
isConstant
public boolean isConstant()
- According to the JLS 2nd Ed, sec 15.28, a class literal
is not a compile time constant.
- Specified by:
isConstant
in interface Expr
- Overrides:
isConstant
in class Lit_c
constantValue
public java.lang.Object constantValue()
- Description copied from interface:
Expr
- Returns the constant value of the expression, if any.
- Specified by:
constantValue
in interface Expr
- Specified by:
constantValue
in class Lit_c