org.omegahat.Environment.Parser.Parse
Class SwitchCase

java.lang.Object
  |
  +--antlr.BaseAST
        |
        +--antlr.CommonAST
              |
              +--org.omegahat.Environment.Parser.Parse.BasicExpression
                    |
                    +--org.omegahat.Environment.Parser.Parse.List
                          |
                          +--org.omegahat.Environment.Parser.Parse.SwitchCase
All Implemented Interfaces:
antlr.collections.AST, java.lang.Cloneable, Evaluable, ExpressionInt, OmegaTokenTypes, java.lang.Runnable, java.io.Serializable, Subsettable, TreeNodeInt

public class SwitchCase
extends List
implements ExpressionInt

This class represents one or more case statements within a switch construct. It collects the expressions (or values) between the between the case keyword and the colon of declaration and stores them as elements of a List. When are two or more \JKeyword{case} elements stored together? When only the last has a non-trivial action statement. In other words, when a case statement has no code and trivially ``falls-through'' to the next \JKeyword{statement}, it is logically grouped with that next \JKeyword{case} element and so on until we arrive at one that has a non-empty action statement list. This object stores these related expressions and the statement list of the final one that is to be evaluated if the value of the expression controlling the \JKeyword{switch} matches any of the expression values in this \OmegaClass{List}.

See Also:
Serialized Form

Field Summary
protected  java.lang.Object body
           
static java.lang.Integer DEFAULT_CASE
           
protected  boolean DefaultCase
           
 
Fields inherited from class org.omegahat.Environment.Parser.Parse.List
elements, separator
 
Fields inherited from class org.omegahat.Environment.Parser.Parse.BasicExpression
children, comments, isActive, parent, POST, PRE
 
Fields inherited from class antlr.BaseAST
down, right
 
Fields inherited from interface org.omegahat.Environment.Parser.AntlrParser.OmegaTokenTypes
ABSTRACT, ARG_LIST, ARRAY_DECLARATOR, ARRAY_INIT, ASSIGN, BAND, BAND_ASSIGN, BLOCK, BNOT, BOR, BOR_ASSIGN, BREAK, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, CHAR_LITERAL, CLASS_DEF, COLON, COMMA, CONTINUE, CTOR_DEF, DEC, DIV, DIV_ASSIGN, DOT, DOTS, EAGER, ELEMENT_OP, EOF, EQUAL, ESC, EXPONENT, EXPONENT_OP, EXPR, EXTENDS_CLAUSE, FINAL, FLOAT_SUFFIX, FUNCTION, GE, GT, HEX_DIGIT, IDENT, IMPLEMENTS_CLAUSE, IMPORT, INC, INDEX_OP, INSTANCE_INIT, INSTANCEOF, INTERFACE_DEF, LABELED_STAT, LAND, LAZY, LBRACK, LCURLY, LE, LITERAL_abstract, LITERAL_boolean, LITERAL_break, LITERAL_byte, LITERAL_case, LITERAL_catch, LITERAL_char, LITERAL_class, LITERAL_const, LITERAL_continue, LITERAL_default, LITERAL_do, LITERAL_double, LITERAL_eager, LITERAL_else, LITERAL_extends, LITERAL_false, LITERAL_final, LITERAL_finally, LITERAL_float, LITERAL_for, LITERAL_function, LITERAL_global, LITERAL_if, LITERAL_implements, LITERAL_import, LITERAL_in, LITERAL_instanceof, LITERAL_int, LITERAL_interface, LITERAL_lazy, LITERAL_long, LITERAL_method, LITERAL_native, LITERAL_new, LITERAL_null, LITERAL_private, LITERAL_protected, LITERAL_public, LITERAL_return, LITERAL_short, LITERAL_static, LITERAL_super, LITERAL_switch, LITERAL_synchronized, LITERAL_this, LITERAL_threadsafe, LITERAL_throw, LITERAL_throws, LITERAL_transient, LITERAL_true, LITERAL_try, LITERAL_void, LITERAL_while, LNOT, LOR, LPAREN, LT, METHOD, METHOD_CALL, METHOD_DEF, MINUS, MINUS_ASSIGN, MISSING_ARG, ML_COMMENT, MOD, MOD_ASSIGN, MODIFIERS, NOT_EQUAL, NULL_TREE_LOOKAHEAD, NUM_FLOAT, NUM_INT, NUM_LONG, OBJBLOCK, PACKAGE_DEF, PARAMETER_DEF, PARAMETERS, PLUS, PLUS_ASSIGN, POST_DEC, POST_INC, QUESTION, RBRACK, RCURLY, RETURN, RPAREN, SEMI, SEQUENCE_OP, SL, SL_ASSIGN, SL_COMMENT, SLIST, SR, SR_ASSIGN, STAR, STAR_ASSIGN, STATIC_INIT, STRING_LITERAL, SYNCHRONIZED, THROW, TRANSIENT, TYPE, TYPECAST, UNARY_MINUS, UNARY_PLUS, VARIABLE_DEF, VOCAB, WS
 
Constructor Summary
SwitchCase()
           
SwitchCase(java.lang.Object lab)
           
 
Method Summary
 void addElement(java.lang.Object o)
           
 java.lang.String asString()
           
 java.lang.Object body()
           
 java.lang.Object body(java.lang.Object o)
           
 java.lang.Object evalBody(Evaluator evaluator)
           
 antlr.collections.AST getFirstChild()
           
 boolean isDefault()
           
 boolean isDefault(boolean val)
           
 java.lang.String separator()
           
 java.lang.String toString()
           
 
Methods inherited from class org.omegahat.Environment.Parser.Parse.List
addElements, addElements, addElements, addResult, asString, asString, clear, clone, contains, copyElements, elementAt, elements, elementToString, eval, eval, evalElement, evalElement, evalResult, getReferencedVariables, lastElement, parent, separator, setElementAt, size, size, subset, subset, subset, toArray, toString
 
Methods inherited from class org.omegahat.Environment.Parser.Parse.BasicExpression
addChild, addComment, apply, apply, apply, children, children, comment, comment, depth, error, eval, evalInit, evaluationFrame, evaluator, getReferencedVariables, getReferencedVariables, isActive, isActive, parent, postComment, postComment, preComment, preComment, render, replaceChild, resolve, run, setParent, setParent, setParent, setParent, showComments, showComments, substitute, substitute
 
Methods inherited from class antlr.CommonAST
getText, getType, initialize, initialize, initialize, setText, setType
 
Methods inherited from class antlr.BaseAST
addChild, equals, equalsList, equalsListPartial, equalsTree, equalsTreePartial, findAll, findAllPartial, getNextSibling, removeChildren, setFirstChild, setNextSibling, setVerboseStringConversion, toStringList, toStringTree
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.omegahat.Environment.Parser.Parse.ExpressionInt
error, resolve, substitute
 
Methods inherited from interface org.omegahat.Environment.Parser.Parse.TreeNodeInt
addChild, children, depth, parent, parent, replaceChild
 
Methods inherited from interface org.omegahat.Environment.Language.Evaluable
eval, eval
 

Field Detail

DEFAULT_CASE

public static java.lang.Integer DEFAULT_CASE

body

protected java.lang.Object body

DefaultCase

protected boolean DefaultCase
Constructor Detail

SwitchCase

public SwitchCase(java.lang.Object lab)

SwitchCase

public SwitchCase()
Method Detail

body

public java.lang.Object body()

body

public java.lang.Object body(java.lang.Object o)

isDefault

public boolean isDefault()

isDefault

public boolean isDefault(boolean val)

evalBody

public java.lang.Object evalBody(Evaluator evaluator)
                          throws java.lang.Throwable

addElement

public void addElement(java.lang.Object o)
Overrides:
addElement in class List

toString

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

asString

public java.lang.String asString()
Overrides:
asString in class List

separator

public java.lang.String separator()
Overrides:
separator in class List

getFirstChild

public antlr.collections.AST getFirstChild()
Overrides:
getFirstChild in class List