Class VarStatement
java.lang.Object
gw.internal.gosu.parser.ParsedElement
gw.internal.gosu.parser.Statement
gw.internal.gosu.parser.statements.VarStatement
- All Implemented Interfaces:
IVarStatement
,IHasType
,IParsedElement
,IParsedElementWithAtLeastOneDeclaration
,IStatement
- Direct Known Subclasses:
DelegateStatement
Represents a var statement as specified in the Gosu grammar:
var-statement var <identifier> [scope-attribute] [ : <type-expression> ] = <expression> var <identifier> [scope-attribute] : <type-expression> [ = <expression> ]
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private boolean
private List<IGosuAnnotation>
private DynamicPropertySymbol
protected Expression
protected boolean
private int
private int
protected ModifierInfo
private IScriptPartId
private String
private ISymbol
protected TypeLiteral
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 -
Method Summary
Modifier and TypeMethodDescriptionvoid
boolean
private void
execute()
Executes the Var statement.String[]
boolean
protected ITerminalStatement
getLeastSignificantTerminalStatement_internal
(boolean[] bAbsolute) int
int
getNameOffset
(String identifierName) The offset of the token representing the name for the declarationint
getType()
boolean
boolean
boolean
boolean
boolean
boolean
isFinal()
boolean
boolean
boolean
boolean
boolean
isPublic()
boolean
isStatic()
boolean
void
setAsExpression
(Expression expression) void
setDeclAnnotations
(List<IGosuAnnotation> declAnnotations) void
setDefinitionParsed
(boolean bParsed) void
setEnumConstant
(boolean bEnumConstant) void
setFinal
(boolean bFinal) void
setHasProperty
(boolean hasProperty) void
setInternal
(boolean bInternal) void
void
setModifierInfo
(ModifierInfo modifiers) void
setNameOffset
(int iOffset, String identifierName) void
setPrivate
(boolean bPrivate) void
void
setPropertyName
(String strPropertyName) void
setProtected
(boolean bProtected) void
setPublic
(boolean bPublic) void
setScriptPart
(IScriptPartId partId) void
setStatic
(boolean bStatic) void
void
void
setTypeLiteral
(TypeLiteral typeLiteral) toString()
Subclasses should return a String representing the parsed statement.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, getColumn, getContainedParsedElementsByType, getContainedParsedElementsByTypes, getContainedParsedElementsByTypesWithIgnoreSet, getEnclosingFeatureInfo, 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, clearParseTreeInformation, clearParseWarnings, findAncestorParsedElementByType, findDeclaringStatement, findRootParsedElement, getColumn, getContainedParsedElementsByType, getContainedParsedElementsByTypes, getContainedParsedElementsByTypesWithIgnoreSet, 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
-
_strPropertyName
-
_expression
-
_typeLiteral
-
_hasProperty
protected boolean _hasProperty -
_modifiers
-
_declAnnotations
-
_symbol
-
_scriptPartId
-
_iNameOffset
private int _iNameOffset -
_iPropertyNameOffset
private int _iPropertyNameOffset -
_bDefinitionParsed
private boolean _bDefinitionParsed -
_bIsInitializedTopLevelProgVar
private boolean _bIsInitializedTopLevelProgVar -
_dps
-
-
Constructor Details
-
VarStatement
public VarStatement()
-
-
Method Details
-
getIdentifierName
- Specified by:
getIdentifierName
in interfaceIVarStatement
-
getSymbol
- Specified by:
getSymbol
in interfaceIVarStatement
-
setSymbol
- Specified by:
setSymbol
in interfaceIVarStatement
-
getPropertyName
- Specified by:
getPropertyName
in interfaceIVarStatement
-
setPropertyName
-
getTypeLiteral
- Specified by:
getTypeLiteral
in interfaceIVarStatement
-
setTypeLiteral
-
detachDeclTypeLiteral
private void detachDeclTypeLiteral() -
getAsExpression
- Specified by:
getAsExpression
in interfaceIVarStatement
-
setAsExpression
-
setType
-
hasProperty
public boolean hasProperty()- Specified by:
hasProperty
in interfaceIVarStatement
-
setHasProperty
public void setHasProperty(boolean hasProperty) -
getModifierInfo
- Specified by:
getModifierInfo
in interfaceIVarStatement
-
setModifierInfo
-
getDeclAnnotations
-
setDeclAnnotations
-
getModifiers
public int getModifiers()- Specified by:
getModifiers
in interfaceIVarStatement
-
isStatic
public boolean isStatic()- Specified by:
isStatic
in interfaceIVarStatement
-
setStatic
public void setStatic(boolean bStatic) -
isPrivate
public boolean isPrivate()- Specified by:
isPrivate
in interfaceIVarStatement
-
setPrivate
public void setPrivate(boolean bPrivate) -
isInternal
public boolean isInternal()- Specified by:
isInternal
in interfaceIVarStatement
-
setInternal
public void setInternal(boolean bInternal) -
isProtected
public boolean isProtected()- Specified by:
isProtected
in interfaceIVarStatement
-
setProtected
public void setProtected(boolean bProtected) -
isPublic
public boolean isPublic()- Specified by:
isPublic
in interfaceIVarStatement
-
setPublic
public void setPublic(boolean bPublic) -
isFinal
public boolean isFinal()- Specified by:
isFinal
in interfaceIVarStatement
-
setFinal
public void setFinal(boolean bFinal) -
isAbstract
public boolean isAbstract()- Specified by:
isAbstract
in interfaceIVarStatement
-
isEnumConstant
public boolean isEnumConstant()- Specified by:
isEnumConstant
in interfaceIVarStatement
-
setEnumConstant
public void setEnumConstant(boolean bEnumConstant) -
isTransient
public boolean isTransient() -
getType
- Specified by:
getType
in interfaceIHasType
- Specified by:
getType
in interfaceIVarStatement
-
setScriptPart
-
getScriptPart
- Specified by:
getScriptPart
in interfaceIVarStatement
-
execute
Executes the Var statement. The algorithm for the execution follows:- Evaluate the ValueExpression (if one exists).
- Create and map a symbol for the Identifier with type reflecting the ValueExpression's type.
- If a TypeLiteral is specified, set the Identifier's type accordingly.
- Specified by:
execute
in interfaceIStatement
- Overrides:
execute
in classStatement
-
getLeastSignificantTerminalStatement_internal
- Specified by:
getLeastSignificantTerminalStatement_internal
in classStatement
-
toString
Description copied from class:Statement
Subclasses should return a String representing the parsed statement. -
getFunctionName
- Specified by:
getFunctionName
in interfaceIParsedElement
- Overrides:
getFunctionName
in classParsedElement
-
getNameOffset
Description copied from interface:IParsedElementWithAtLeastOneDeclaration
The offset of the token representing the name for the declaration- Specified by:
getNameOffset
in interfaceIParsedElementWithAtLeastOneDeclaration
-
setNameOffset
- Specified by:
setNameOffset
in interfaceIParsedElementWithAtLeastOneDeclaration
-
declares
- Specified by:
declares
in interfaceIParsedElementWithAtLeastOneDeclaration
- Returns:
- True if this statement declares the given identifier; false otherwise
-
getDeclarations
- Specified by:
getDeclarations
in interfaceIParsedElementWithAtLeastOneDeclaration
- Returns:
- all names declared by this element
-
getAnnotations
- Overrides:
getAnnotations
in classParsedElement
-
getFullDescription
- Specified by:
getFullDescription
in interfaceIVarStatement
-
clearDefn
public void clearDefn() -
isDefinitionParsed
public boolean isDefinitionParsed() -
setDefinitionParsed
public void setDefinitionParsed(boolean bParsed) -
getHasInitializer
public boolean getHasInitializer()- Specified by:
getHasInitializer
in interfaceIVarStatement
-
isImplicitlyUsed
public boolean isImplicitlyUsed() -
getPropertyNameOffset
public int getPropertyNameOffset()- Specified by:
getPropertyNameOffset
in interfaceIVarStatement
-
isFieldDeclaration
public boolean isFieldDeclaration()- Specified by:
isFieldDeclaration
in interfaceIVarStatement
-
setIsInitializedTopLevelProgVar
public void setIsInitializedTopLevelProgVar() -
getProperty
- Specified by:
getProperty
in interfaceIVarStatement
-
setProperty
-