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
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class gw.internal.gosu.parser.statements.LoopStatement
LoopStatement.ArrayIterator
-
-
Field Summary
Fields Modifier and Type Field Description private boolean_bStructuralIterableprotected Expression_expressionprotected Symbol_identifierprivate int_iIdentifierOffsetprivate int_iIndexIdentifierOffsetprivate int_iIterOffsetprotected Symbol_indexIdentifierprivate Symbol_iterIdentifierprotected 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleandeclares(java.lang.String identifierName)java.lang.Objectexecute()Execute this statement.java.lang.String[]getDeclarations()IExpressiongetExpression()SymbolgetIdentifier()SymbolgetIndexIdentifier()ExpressiongetInExpression()SymbolgetIteratorIdentifier()protected ITerminalStatementgetLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)intgetNameOffset(java.lang.String identifierName)The offset of the token representing the name for the declarationStatementgetStatement()booleanisStructuralIterable()voidsetIdentifier(Symbol identifier)voidsetIndexIdentifier(Symbol indexIdentifier)voidsetIndexNameOffset(int iOffset)voidsetInExpression(Expression expression)voidsetIteratorIdentifier(Symbol iterIdentifier)voidsetIterNameOffset(int iOffset)voidsetNameOffset(int iOffset, java.lang.String identifierName)voidsetStatement(Statement statement)voidsetStructuralIterable(boolean bStructuralIterable)java.lang.StringtoString()Subclasses should return a String representing the parsed statement.private java.lang.StringtoString(java.lang.Object o)-
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
-
_iterIdentifier
private Symbol _iterIdentifier
-
_statement
protected Statement _statement
-
_stackProvider
protected IStackProvider _stackProvider
-
_iIdentifierOffset
private int _iIdentifierOffset
-
_iIndexIdentifierOffset
private int _iIndexIdentifierOffset
-
_iIterOffset
private int _iIterOffset
-
_bStructuralIterable
private boolean _bStructuralIterable
-
-
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 java.lang.Object execute()
Description copied from interface:IStatementExecute this statement.- Specified by:
executein interfaceIStatement- Overrides:
executein classStatement
-
getLeastSignificantTerminalStatement_internal
protected ITerminalStatement getLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)
- Specified by:
getLeastSignificantTerminalStatement_internalin classStatement
-
toString
public java.lang.String toString()
Description copied from class:StatementSubclasses should return a String representing the parsed statement.
-
toString
private java.lang.String toString(java.lang.Object o)
-
getNameOffset
public int getNameOffset(java.lang.String identifierName)
Description copied from interface:IParsedElementWithAtLeastOneDeclarationThe offset of the token representing the name for the declaration- Specified by:
getNameOffsetin interfaceIParsedElementWithAtLeastOneDeclaration
-
setNameOffset
public void setNameOffset(int iOffset, java.lang.String identifierName)- Specified by:
setNameOffsetin interfaceIParsedElementWithAtLeastOneDeclaration
-
setIndexNameOffset
public void setIndexNameOffset(int iOffset)
-
setIterNameOffset
public void setIterNameOffset(int iOffset)
-
declares
public boolean declares(java.lang.String identifierName)
- Specified by:
declaresin interfaceIParsedElementWithAtLeastOneDeclaration- Returns:
- True if this statement declares the given identifier; false otherwise
-
getDeclarations
public java.lang.String[] getDeclarations()
- Specified by:
getDeclarationsin interfaceIParsedElementWithAtLeastOneDeclaration- Returns:
- all names declared by this element
-
isStructuralIterable
public boolean isStructuralIterable()
-
setStructuralIterable
public void setStructuralIterable(boolean bStructuralIterable)
-
-