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 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
ConstructorsConstructorDescriptionStatementList
(IStackProvider stackProvider) Constructs a StatementList given an ISymbolTable instance. -
Method Summary
Modifier and TypeMethodDescriptionvoid
adjustLineNum
(int offset) void
execute()
Execute the list of statements.int
protected ITerminalStatement
getLeastSignificantTerminalStatement_internal
(boolean[] bAbsolute) getLeastSignificantTerminalStatementAfter
(Statement fromStmt, boolean[] bAbsolute) boolean
hasScope()
for testingint
void
setLastLineNumber
(int lastLine) void
void
setStatements
(List<Statement> statements) toString()
Subclasses should return a String representing the parsed statement.private void
A statement-list needs to push a new scope on the symbol table to provide a for local variable scoping.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, 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, 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.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, visit
Methods inherited from interface gw.lang.parser.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:
clearParseTreeInformation
in interfaceIParsedElement
- Overrides:
clearParseTreeInformation
in classParsedElement
-
getStatements
- Specified by:
getStatements
in interfaceIStatementList
- Returns:
- A list of Statements representing this statement-list.
-
setStatements
- Parameters:
statements
- A list of Statements representing this statement-list.
-
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
public boolean hasScope()for testing- Specified by:
hasScope
in interfaceIStatementList
-
execute
Execute the list of statements.- Specified by:
execute
in interfaceIStatement
- Overrides:
execute
in classStatement
-
getLeastSignificantTerminalStatement_internal
- Specified by:
getLeastSignificantTerminalStatement_internal
in classStatement
-
getLeastSignificantTerminalStatementAfter
public ITerminalStatement getLeastSignificantTerminalStatementAfter(Statement fromStmt, boolean[] bAbsolute) -
toString
Description copied from class:Statement
Subclasses should return a String representing the parsed statement. -
getSelfOrSingleStatement
-
getLastLine
public int getLastLine()- Specified by:
getLastLine
in interfaceIStatementList
-
setLastLineNumber
public void setLastLineNumber(int lastLine) -
adjustLineNum
public void adjustLineNum(int offset) - Overrides:
adjustLineNum
in classParsedElement
-