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
public final class StatementList extends Statement implements IStatementList
Represents a statement-list as specified in the Gosu grammar:statement-list <statement> <statement-list> <statement>
- See Also:
IGosuParser
-
-
Field Summary
Fields Modifier and Type Field Description private int_lastLineprotected IStackProvider_stackProviderprotected Statement[]_statements-
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 StatementList(IStackProvider stackProvider)Constructs a StatementList given an ISymbolTable instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadjustLineNum(int offset)voidclearParseTreeInformation()java.lang.Objectexecute()Execute the list of statements.intgetLastLine()protected ITerminalStatementgetLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)ITerminalStatementgetLeastSignificantTerminalStatementAfter(Statement fromStmt, boolean[] bAbsolute)StatementgetSelfOrSingleStatement()Statement[]getStatements()booleanhasScope()for testingintindexOf(Statement stmt)voidsetLastLineNumber(int lastLine)voidsetNoScope()voidsetStatements(java.util.List<Statement> statements)java.lang.StringtoString()Subclasses should return a String representing the parsed statement.private voidtryToEliminateTheScope()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 Detail
-
_statements
protected Statement[] _statements
-
_stackProvider
protected IStackProvider _stackProvider
-
_lastLine
private int _lastLine
-
-
Constructor Detail
-
StatementList
public StatementList(IStackProvider stackProvider)
Constructs a StatementList given an ISymbolTable instance.
-
-
Method Detail
-
clearParseTreeInformation
public void clearParseTreeInformation()
- Specified by:
clearParseTreeInformationin interfaceIParsedElement- Overrides:
clearParseTreeInformationin classParsedElement
-
getStatements
public Statement[] getStatements()
- Specified by:
getStatementsin interfaceIStatementList- Returns:
- A list of Statements representing this statement-list.
-
setStatements
public void setStatements(java.util.List<Statement> statements)
- Parameters:
statements- A list of Statements representing this statement-list.
-
indexOf
public int indexOf(Statement stmt)
-
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:
hasScopein interfaceIStatementList
-
execute
public java.lang.Object execute()
Execute the list of statements.- Specified by:
executein interfaceIStatement- Overrides:
executein classStatement
-
getLeastSignificantTerminalStatement_internal
protected ITerminalStatement getLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)
- Specified by:
getLeastSignificantTerminalStatement_internalin classStatement
-
getLeastSignificantTerminalStatementAfter
public ITerminalStatement getLeastSignificantTerminalStatementAfter(Statement fromStmt, boolean[] bAbsolute)
-
toString
public java.lang.String toString()
Description copied from class:StatementSubclasses should return a String representing the parsed statement.
-
getSelfOrSingleStatement
public Statement getSelfOrSingleStatement()
-
getLastLine
public int getLastLine()
- Specified by:
getLastLinein interfaceIStatementList
-
setLastLineNumber
public void setLastLineNumber(int lastLine)
-
adjustLineNum
public void adjustLineNum(int offset)
- Overrides:
adjustLineNumin classParsedElement
-
-