Class StatementList
java.lang.Object
gw.internal.gosu.parser.ParsedElement
gw.internal.gosu.parser.Statement
gw.internal.gosu.parser.statements.StatementList
- All Implemented Interfaces:
IParsedElement, IStatement, IStatementList
Represents a statement-list as specified in the Gosu grammar:
statement-list <statement> <statement-list> <statement>
- See Also:
-
Field Summary
FieldsFields inherited from class Statement
VOID_RETURN_VALUEFields inherited from class ParsedElement
_tokens, UNDEF_FILE, UNDEF_FUNCTION, UNDEF_MODULE -
Constructor Summary
ConstructorsConstructorDescriptionStatementList(IStackProvider stackProvider) Constructs a StatementList given an ISymbolTable instance. -
Method Summary
Modifier and TypeMethodDescriptionvoidadjustLineNum(int offset) voidexecute()Execute the list of statements.intprotected ITerminalStatementgetLeastSignificantTerminalStatement_internal(boolean[] bAbsolute) getLeastSignificantTerminalStatementAfter(Statement fromStmt, boolean[] bAbsolute) booleanhasScope()for testingintvoidsetLastLineNumber(int lastLine) voidvoidsetStatements(List<Statement> statements) toString()Subclasses should return a String representing the parsed statement.private voidA statement-list needs to push a new scope on the symbol table to provide a for local variable scoping.Methods inherited from class Statement
execute, getExcludedReturnTypeElements, getLeastSignificant, getLeastSignificantTerminalStatement, getReturnType, hasContent, isNoOp, setParentMethods inherited from class ParsedElement
addExceptionsFrom, addParseException, addParseException, addParseException, addParseExceptions, addParseIssues, addParseWarning, addParseWarning, addParseWarnings, addToken, adjustColumn, assignTokens, clearParseExceptions, 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 Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface IParsedElement
addExceptionsFrom, addParseException, addParseException, addParseWarning, addParseWarning, clearParseExceptions, 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 IStatement
execute, getLeastSignificantTerminalStatement, hasContent
-
Field Details
-
_statements
-
_stackProvider
-
_lastLine
private int _lastLine
-
-
Constructor Details
-
StatementList
Constructs a StatementList given an ISymbolTable instance.
-
-
Method Details
-
clearParseTreeInformation
public void clearParseTreeInformation()- Specified by:
clearParseTreeInformationin interfaceIParsedElement- Overrides:
clearParseTreeInformationin classParsedElement
-
getStatements
- Specified by:
getStatementsin interfaceIStatementList- Returns:
- A list of Statements representing this statement-list.
-
setStatements
-
indexOf
-
tryToEliminateTheScope
private void tryToEliminateTheScope()A statement-list needs to push a new scope on the symbol table to provide a for local variable scoping. Since this is a relatively expensive operation we avoid pushing the scope if we know none of the statements declare variables. -
setNoScope
public void setNoScope() -
hasScope
-
execute
Execute the list of statements.- Specified by:
executein interfaceIStatement- Overrides:
executein classStatement
-
getLeastSignificantTerminalStatement_internal
- Specified by:
getLeastSignificantTerminalStatement_internalin classStatement
-
getLeastSignificantTerminalStatementAfter
public ITerminalStatement getLeastSignificantTerminalStatementAfter(Statement fromStmt, boolean[] bAbsolute) -
toString
-
getSelfOrSingleStatement
-
getLastLine
public int getLastLine()- Specified by:
getLastLinein interfaceIStatementList
-
setLastLineNumber
public void setLastLineNumber(int lastLine) -
adjustLineNum
public void adjustLineNum(int offset) - Overrides:
adjustLineNumin classParsedElement
-