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
Represents a foreach statement as specified in the Gosu grammar:
for...in-statement for ( <identifier> in <expression> [ index <identifier> ] ) <statement>
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class gw.internal.gosu.parser.statements.LoopStatement
LoopStatement.ArrayIterator -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprotected Expressionprotected Symbolprivate intprivate intprivate intprotected Symbolprivate Symbolprotected IStackProviderprotected StatementFields inherited from class gw.internal.gosu.parser.Statement
VOID_RETURN_VALUEFields inherited from class gw.internal.gosu.parser.ParsedElement
_tokens, UNDEF_FILE, UNDEF_FUNCTION, UNDEF_MODULE -
Constructor Summary
ConstructorsConstructorDescriptionForEachStatement(ISymbolTable stackProvider) Constructs a ForEachStatement given an ISymbolTable instance. -
Method Summary
Modifier and TypeMethodDescriptionbooleanexecute()Execute this statement.String[]protected ITerminalStatementgetLeastSignificantTerminalStatement_internal(boolean[] bAbsolute) intgetNameOffset(String identifierName) The offset of the token representing the name for the declarationbooleanvoidsetIdentifier(Symbol identifier) voidsetIndexIdentifier(Symbol indexIdentifier) voidsetIndexNameOffset(int iOffset) voidsetInExpression(Expression expression) voidsetIteratorIdentifier(Symbol iterIdentifier) voidsetIterNameOffset(int iOffset) voidsetNameOffset(int iOffset, String identifierName) voidsetStatement(Statement statement) voidsetStructuralIterable(boolean bStructuralIterable) toString()Subclasses should return a String representing the parsed statement.private StringMethods inherited from class gw.internal.gosu.parser.statements.LoopStatement
getArrayComponentType, getArrayLength, isConditionLiteralTrue, isIteratorType, makeIteratorMethods inherited from class gw.internal.gosu.parser.Statement
execute, getExcludedReturnTypeElements, getLeastSignificant, getLeastSignificantTerminalStatement, getReturnType, hasContent, isNoOp, setParentMethods 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, visitMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface gw.lang.parser.statements.ILoopStatement
isConditionLiteralTrueMethods 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, visitMethods inherited from interface gw.lang.parser.IStatement
execute, getLeastSignificantTerminalStatement, hasContent
-
Field Details
-
_identifier
-
_expression
-
_indexIdentifier
-
_iterIdentifier
-
_statement
-
_stackProvider
-
_iIdentifierOffset
private int _iIdentifierOffset -
_iIndexIdentifierOffset
private int _iIndexIdentifierOffset -
_iIterOffset
private int _iIterOffset -
_bStructuralIterable
private boolean _bStructuralIterable
-
-
Constructor Details
-
ForEachStatement
Constructs a ForEachStatement given an ISymbolTable instance.
-
-
Method Details
-
getIdentifier
- Specified by:
getIdentifierin interfaceIForEachStatement- Returns:
- The name of the Indentifier in the statement.
-
setIdentifier
- Parameters:
identifier-
-
getIndexIdentifier
- Specified by:
getIndexIdentifierin interfaceIForEachStatement- Returns:
- The name of the Index Identifier, or null of not specified.
-
setIndexIdentifier
- Parameters:
indexIdentifier-
-
getIteratorIdentifier
- Returns:
- The name of the Index Identifier, or null of not specified.
-
setIteratorIdentifier
-
getExpression
- Specified by:
getExpressionin interfaceILoopStatement
-
getInExpression
- Specified by:
getInExpressionin interfaceIForEachStatement- Returns:
- The In Expression.
-
setInExpression
- Parameters:
expression- The In Expression.
-
getStatement
- Specified by:
getStatementin interfaceIForEachStatement- Specified by:
getStatementin interfaceILoopStatement- Returns:
- The statement to execute in the interation.
-
setStatement
- Parameters:
statement- The statement to execute in the interation.
-
execute
Description copied from interface:IStatementExecute this statement.- Specified by:
executein interfaceIStatement- Overrides:
executein classStatement
-
getLeastSignificantTerminalStatement_internal
- Specified by:
getLeastSignificantTerminalStatement_internalin classStatement
-
toString
Description copied from class:StatementSubclasses should return a String representing the parsed statement. -
toString
-
getNameOffset
Description copied from interface:IParsedElementWithAtLeastOneDeclarationThe offset of the token representing the name for the declaration- Specified by:
getNameOffsetin interfaceIParsedElementWithAtLeastOneDeclaration
-
setNameOffset
- Specified by:
setNameOffsetin interfaceIParsedElementWithAtLeastOneDeclaration
-
setIndexNameOffset
public void setIndexNameOffset(int iOffset) -
setIterNameOffset
public void setIterNameOffset(int iOffset) -
declares
- Specified by:
declaresin interfaceIParsedElementWithAtLeastOneDeclaration- Returns:
- True if this statement declares the given identifier; false otherwise
-
getDeclarations
- Specified by:
getDeclarationsin interfaceIParsedElementWithAtLeastOneDeclaration- Returns:
- all names declared by this element
-
isStructuralIterable
public boolean isStructuralIterable() -
setStructuralIterable
public void setStructuralIterable(boolean bStructuralIterable)
-