Class DoWhileStatement
- java.lang.Object
-
- gw.internal.gosu.parser.ParsedElement
-
- gw.internal.gosu.parser.Statement
-
- gw.internal.gosu.parser.statements.LoopStatement
-
- gw.internal.gosu.parser.statements.DoWhileStatement
-
- All Implemented Interfaces:
IParsedElement
,IStatement
,IDoWhileStatement
,ILoopStatement
,ITerminalStatement
public final class DoWhileStatement extends LoopStatement implements IDoWhileStatement
Represents an do-while-statement as specified in the Gosu grammar:do-while-statement while ( <expression> ) <statement>
- See Also:
IGosuParser
-
-
Field Summary
Fields Modifier and Type Field Description protected Expression
_expression
protected Statement
_statement
-
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 DoWhileStatement()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
execute()
Execute the do...while statementExpression
getExpression()
protected ITerminalStatement
getLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)
Statement
getStatement()
TerminalType
getTerminalType()
Mostly this is important so we can weight the terminal types i.e., the ordinal in the enum is significantvoid
setExpression(Expression expression)
void
setStatement(Statement statement)
String
toString()
Subclasses should return a String representing the parsed statement.-
Methods inherited from class gw.internal.gosu.parser.statements.LoopStatement
getArrayComponentType, getArrayLength, isConditionLiteralTrue, isIteratorType, makeIterator
-
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.statements.ILoopStatement
isConditionLiteralTrue
-
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
-
_expression
protected Expression _expression
-
_statement
protected Statement _statement
-
-
Method Detail
-
getExpression
public Expression getExpression()
- Specified by:
getExpression
in interfaceILoopStatement
- Returns:
- The conditional expression.
-
setExpression
public void setExpression(Expression expression)
- Parameters:
expression
- The conditional expression.
-
getStatement
public Statement getStatement()
- Specified by:
getStatement
in interfaceILoopStatement
- Returns:
- The statement to execute while the conditional expression evaluates to true.
-
setStatement
public void setStatement(Statement statement)
- Parameters:
statement
- The statement to execute while the conditional expression evaluates to true.
-
execute
public Object execute()
Execute the do...while statement- Specified by:
execute
in interfaceIStatement
- Overrides:
execute
in classStatement
-
getLeastSignificantTerminalStatement_internal
protected ITerminalStatement getLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)
- Specified by:
getLeastSignificantTerminalStatement_internal
in classStatement
-
getTerminalType
public TerminalType getTerminalType()
Description copied from interface:ITerminalStatement
Mostly this is important so we can weight the terminal types i.e., the ordinal in the enum is significant- Specified by:
getTerminalType
in interfaceITerminalStatement
-
-