Class SwitchStatement
- java.lang.Object
-
- gw.internal.gosu.parser.ParsedElement
-
- gw.internal.gosu.parser.Statement
-
- gw.internal.gosu.parser.statements.SwitchStatement
-
- All Implemented Interfaces:
IParsedElement
,IStatement
,ISwitchStatement
public final class SwitchStatement extends Statement implements ISwitchStatement
Represents a switch-statement as specified in the Gosu grammar:switch-statement switch (<expression>) { [switch-cases] [switch-default] } switch-cases <switch-case> <switch-cases> <switch-case> switch-case case <expression> : [statement-list] switch-default default : [statement-list]
- See Also:
IGosuParser
-
-
Field Summary
Fields Modifier and Type Field Description protected CaseClause[]
_cases
protected List<Statement>
_defaultStatements
protected Expression
_switchExpression
-
Fields inherited from class gw.internal.gosu.parser.Statement
VOID_RETURN_VALUE
-
Fields inherited from class gw.internal.gosu.parser.ParsedElement
_tokens, UNDEF_FILE, UNDEF_FUNCTION, UNDEF_MODULE
-
-
Constructor Summary
Constructors Constructor Description SwitchStatement()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
execute()
Execute the switch statementCaseClause[]
getCases()
List<Statement>
getDefaultStatements()
protected ITerminalStatement
getLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)
bAbsolute is true iff there are no break terminals anywhere in any cases and the default clause's terminator is non-break and absoluteExpression
getSwitchExpression()
boolean
isCoveredEnumSwitch()
void
setCases(CaseClause[] cases)
void
setDefaultStatements(List<Statement> defaultStatements)
void
setSwitchExpression(Expression switchExpression)
String
toString()
Subclasses should return a String representing the parsed statement.-
Methods inherited from class gw.internal.gosu.parser.Statement
execute, getExcludedReturnTypeElements, getLeastSignificant, getLeastSignificantTerminalStatement, getReturnType, hasContent, isNoOp, setParent
-
Methods inherited from class gw.internal.gosu.parser.ParsedElement
addExceptionsFrom, addParseException, addParseException, addParseException, addParseExceptions, addParseIssues, addParseWarning, addParseWarning, addParseWarnings, addToken, adjustColumn, adjustLineNum, assignTokens, clearParseExceptions, clearParseTreeInformation, clearParseWarnings, compactParseTree, findAncestorParsedElementByType, findDeclaringStatement, findLineNumberOfDeclaration, findRootParsedElement, getAnnotations, getColumn, getContainedParsedElementsByType, getContainedParsedElementsByTypes, getContainedParsedElementsByTypesWithIgnoreSet, getEnclosingFeatureInfo, getFunctionName, getGosuClass, getGosuProgram, getImmediateParseIssue, getImmediateParseIssues, getLineNum, getLocation, getModule, getParent, getParseExceptions, getParseIssues, getParseWarnings, getQualifyingEnclosingTypeInfo, getTokens, hasImmediateParseIssue, hasImmediateParseWarning, hasImmediateParseWarnings, hasParseException, hasParseExceptions, hasParseIssue, hasParseIssues, hasParseWarning, hasParseWarnings, initEmptyParseTree, initLocation, isCompileTimeConstant, isSuppressed, isSuppressed, isSynthetic, makeDoubleValue, makeFloatValue, makeInteger, makeLong, removeParseException, removeParseWarning, removeParseWarningRecursively, setGosuProgram, setLineNum, setLocation, setSynthetic, shouldClearParseInfo, visit
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface gw.lang.parser.IParsedElement
addExceptionsFrom, addParseException, addParseException, addParseWarning, addParseWarning, clearParseExceptions, clearParseTreeInformation, clearParseWarnings, findAncestorParsedElementByType, findDeclaringStatement, findRootParsedElement, getColumn, getContainedParsedElementsByType, getContainedParsedElementsByTypes, getContainedParsedElementsByTypesWithIgnoreSet, getFunctionName, getGosuClass, getGosuProgram, getImmediateParseIssue, getImmediateParseIssues, getLineNum, getLocation, getModule, getParent, getParseExceptions, getParseIssues, getParseWarnings, getReturnType, getTokens, hasImmediateParseIssue, hasImmediateParseWarnings, hasParseException, hasParseExceptions, hasParseIssue, hasParseIssues, hasParseWarning, hasParseWarnings, isCompileTimeConstant, isSuppressed, isSynthetic, setLocation, setParent, visit
-
Methods inherited from interface gw.lang.parser.IStatement
execute, getLeastSignificantTerminalStatement, hasContent
-
-
-
-
Field Detail
-
_switchExpression
protected Expression _switchExpression
-
_cases
protected CaseClause[] _cases
-
-
Method Detail
-
getSwitchExpression
public Expression getSwitchExpression()
- Specified by:
getSwitchExpression
in interfaceISwitchStatement
-
setSwitchExpression
public void setSwitchExpression(Expression switchExpression)
-
getCases
public CaseClause[] getCases()
- Specified by:
getCases
in interfaceISwitchStatement
-
setCases
public void setCases(CaseClause[] cases)
-
getDefaultStatements
public List<Statement> getDefaultStatements()
- Specified by:
getDefaultStatements
in interfaceISwitchStatement
-
execute
public Object execute()
Execute the switch statement- Specified by:
execute
in interfaceIStatement
- Overrides:
execute
in classStatement
-
getLeastSignificantTerminalStatement_internal
protected ITerminalStatement getLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)
bAbsolute is true iff there are no break terminals anywhere in any cases and the default clause's terminator is non-break and absolute- Specified by:
getLeastSignificantTerminalStatement_internal
in classStatement
-
isCoveredEnumSwitch
public boolean isCoveredEnumSwitch()
- Specified by:
isCoveredEnumSwitch
in interfaceISwitchStatement
-
-