Class StringLit_c

  extended by polyglot.ext.jl.ast.Node_c
      extended by polyglot.ext.jl.ast.Term_c
          extended by polyglot.ext.jl.ast.Expr_c
              extended by polyglot.ext.jl.ast.Lit_c
                  extended by polyglot.ext.jl.ast.StringLit_c
All Implemented Interfaces:
java.lang.Cloneable, Expr, JL, Lit, Node, NodeOps, Prefix, Receiver, StringLit, Term, Typed, Copy

public class StringLit_c
extends Lit_c
implements StringLit

A StringLit represents an immutable instance of a String which corresponds to a literal string in Java code.

Field Summary
protected  int MAX_LENGTH
protected  java.lang.String value
Fields inherited from class polyglot.ext.jl.ast.Expr_c
Fields inherited from class polyglot.ext.jl.ast.Term_c
exceptions, reachable
Fields inherited from class polyglot.ext.jl.ast.Node_c
del, ext, position
Constructor Summary
StringLit_c(Position pos, java.lang.String value)
Method Summary
 java.util.List breakupString()
          Break a long string literal into a concatenation of small string literals.
 java.lang.Object constantValue()
          Returns the constant value of the expression, if any.
 void prettyPrint(CodeWriter w, PrettyPrinter tr)
          Write the expression to an output file.
 java.lang.String toString()
 Node typeCheck(TypeChecker tc)
          Type check the expression.
 java.lang.String value()
          Get the value of the expression.
 StringLit value(java.lang.String value)
          Set the value of the expression.
Methods inherited from class polyglot.ext.jl.ast.Lit_c
acceptCFG, entry, isConstant, precedence
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.Term_c
exceptionCheck, exceptions, exceptions, listEntry, reachable, reachable
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, visitChildren, 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.Expr
isConstant, precedence, printSubExpr, printSubExpr, type
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, visitChildren
Methods inherited from interface polyglot.util.Copy
Methods inherited from interface polyglot.ast.Typed
Methods inherited from interface polyglot.ast.Term
acceptCFG, entry, exceptions, exceptions, reachable, reachable

Field Detail


protected java.lang.String value


protected int MAX_LENGTH
Constructor Detail


public StringLit_c(Position pos,
                   java.lang.String value)
Method Detail


public java.lang.String value()
Get the value of the expression.

Specified by:
value in interface StringLit


public StringLit value(java.lang.String value)
Set the value of the expression.

Specified by:
value in interface StringLit


public Node typeCheck(TypeChecker tc)
               throws SemanticException
Type check the expression.

Specified by:
typeCheck in interface NodeOps
typeCheck in class Node_c
tc - The type checking visitor.


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


public void prettyPrint(CodeWriter w,
                        PrettyPrinter tr)
Write the expression to an output file.

Specified by:
prettyPrint in interface NodeOps
prettyPrint in class Node_c
w - The code writer to which to write.
tr - The pretty printer. This is not a visitor.


public java.util.List breakupString()
Break a long string literal into a concatenation of small string literals. This avoids messing up the pretty printer and editors. ak333: made public to allow CppStringLitDel to get to it.


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