Class ForEachStatement
- java.lang.Object
-
- gw.internal.gosu.parser.ParsedElement
-
- gw.internal.gosu.parser.Statement
-
- gw.internal.gosu.parser.statements.LoopStatement
-
- gw.internal.gosu.parser.statements.ForEachStatement
-
- All Implemented Interfaces:
IParsedElement,IParsedElementWithAtLeastOneDeclaration,IStatement,IForEachStatement,ILoopStatement
public final class ForEachStatement extends LoopStatement implements IForEachStatement
Represents a foreach statement as specified in the Gosu grammar:for...in-statement for ( <identifier> in <expression> [ index <identifier> ] ) <statement>
- See Also:
IGosuParser
-
-
Field Summary
Fields Modifier and Type Field Description protected Expression_expressionprotected Symbol_identifierprotected Symbol_indexIdentifierprotected IStackProvider_stackProviderprotected 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 ForEachStatement(ISymbolTable stackProvider)Constructs a ForEachStatement given an ISymbolTable instance.
-
Method Summary
-
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
-
_identifier
protected Symbol _identifier
-
_expression
protected Expression _expression
-
_indexIdentifier
protected Symbol _indexIdentifier
-
_statement
protected Statement _statement
-
_stackProvider
protected IStackProvider _stackProvider
-
-
Constructor Detail
-
ForEachStatement
public ForEachStatement(ISymbolTable stackProvider)
Constructs a ForEachStatement given an ISymbolTable instance.
-
-
Method Detail
-
getIdentifier
public Symbol getIdentifier()
- Specified by:
getIdentifierin interfaceIForEachStatement- Returns:
- The name of the Indentifier in the statement.
-
setIdentifier
public void setIdentifier(Symbol identifier)
- Parameters:
identifier-
-
getIndexIdentifier
public Symbol getIndexIdentifier()
- Specified by:
getIndexIdentifierin interfaceIForEachStatement- Returns:
- The name of the Index Identifier, or null of not specified.
-
setIndexIdentifier
public void setIndexIdentifier(Symbol indexIdentifier)
- Parameters:
indexIdentifier-
-
getIteratorIdentifier
public Symbol getIteratorIdentifier()
- Returns:
- The name of the Index Identifier, or null of not specified.
-
setIteratorIdentifier
public void setIteratorIdentifier(Symbol iterIdentifier)
-
getExpression
public IExpression getExpression()
- Specified by:
getExpressionin interfaceILoopStatement
-
getInExpression
public Expression getInExpression()
- Specified by:
getInExpressionin interfaceIForEachStatement- Returns:
- The In Expression.
-
setInExpression
public void setInExpression(Expression expression)
- Parameters:
expression- The In Expression.
-
getStatement
public Statement getStatement()
- Specified by:
getStatementin interfaceIForEachStatement- Specified by:
getStatementin interfaceILoopStatement- Returns:
- The statement to execute in the interation.
-
setStatement
public void setStatement(Statement statement)
- Parameters:
statement- The statement to execute in the interation.
-
execute
public Object execute()
- Specified by:
executein interfaceIStatement- Overrides:
executein classStatement
-
getLeastSignificantTerminalStatement_internal
protected ITerminalStatement getLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)
- Specified by:
getLeastSignificantTerminalStatement_internalin classStatement
-
toString
public String toString()
Description copied from class:StatementSubclasses should return a String representing the parsed statement.
-
getNameOffset
public int getNameOffset(String identifierName)
- Specified by:
getNameOffsetin interfaceIParsedElementWithAtLeastOneDeclaration
-
setNameOffset
public void setNameOffset(int iOffset, String identifierName)- Specified by:
setNameOffsetin interfaceIParsedElementWithAtLeastOneDeclaration
-
setIndexNameOffset
public void setIndexNameOffset(int iOffset)
-
setIterNameOffset
public void setIterNameOffset(int iOffset)
-
declares
public boolean declares(String identifierName)
- Specified by:
declaresin interfaceIParsedElementWithAtLeastOneDeclaration
-
getDeclarations
public String[] getDeclarations()
- Specified by:
getDeclarationsin interfaceIParsedElementWithAtLeastOneDeclaration
-
isStructuralIterable
public boolean isStructuralIterable()
-
setStructuralIterable
public void setStructuralIterable(boolean bStructuralIterable)
-
-