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
public class VarStatement extends Statement implements IVarStatement
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:
IGosuParser
-
-
Field Summary
Fields Modifier and Type Field Description protected Expression
_expression
protected boolean
_hasProperty
protected ModifierInfo
_modifiers
protected TypeLiteral
_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 Constructor Description VarStatement()
-
Method Summary
-
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 Detail
-
_expression
protected Expression _expression
-
_typeLiteral
protected TypeLiteral _typeLiteral
-
_hasProperty
protected boolean _hasProperty
-
_modifiers
protected ModifierInfo _modifiers
-
-
Method Detail
-
getIdentifierName
public String getIdentifierName()
- Specified by:
getIdentifierName
in interfaceIVarStatement
-
getSymbol
public ISymbol getSymbol()
- Specified by:
getSymbol
in interfaceIVarStatement
-
setSymbol
public void setSymbol(ISymbol symbol)
- Specified by:
setSymbol
in interfaceIVarStatement
-
getPropertyName
public String getPropertyName()
- Specified by:
getPropertyName
in interfaceIVarStatement
-
setPropertyName
public void setPropertyName(String strPropertyName)
-
getTypeLiteral
public TypeLiteral getTypeLiteral()
- Specified by:
getTypeLiteral
in interfaceIVarStatement
-
setTypeLiteral
public void setTypeLiteral(TypeLiteral typeLiteral)
-
getAsExpression
public Expression getAsExpression()
- Specified by:
getAsExpression
in interfaceIVarStatement
-
setAsExpression
public void setAsExpression(Expression expression)
-
setType
public void setType(IType newType)
-
hasProperty
public boolean hasProperty()
- Specified by:
hasProperty
in interfaceIVarStatement
-
setHasProperty
public void setHasProperty(boolean hasProperty)
-
getModifierInfo
public ModifierInfo getModifierInfo()
- Specified by:
getModifierInfo
in interfaceIVarStatement
-
setModifierInfo
public void setModifierInfo(ModifierInfo modifiers)
-
getDeclAnnotations
public List<IGosuAnnotation> getDeclAnnotations()
-
setDeclAnnotations
public void setDeclAnnotations(List<IGosuAnnotation> declAnnotations)
-
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
public IType getType()
- Specified by:
getType
in interfaceIHasType
- Specified by:
getType
in interfaceIVarStatement
-
setScriptPart
public void setScriptPart(IScriptPartId partId)
-
getScriptPart
public IScriptPartId getScriptPart()
- Specified by:
getScriptPart
in interfaceIVarStatement
-
execute
public Object 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
protected ITerminalStatement getLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)
- Specified by:
getLeastSignificantTerminalStatement_internal
in classStatement
-
toString
public String toString()
Description copied from class:Statement
Subclasses should return a String representing the parsed statement.
-
getFunctionName
public String getFunctionName()
- Specified by:
getFunctionName
in interfaceIParsedElement
- Overrides:
getFunctionName
in classParsedElement
-
getNameOffset
public int getNameOffset(String identifierName)
- Specified by:
getNameOffset
in interfaceIParsedElementWithAtLeastOneDeclaration
-
setNameOffset
public void setNameOffset(int iOffset, String identifierName)
- Specified by:
setNameOffset
in interfaceIParsedElementWithAtLeastOneDeclaration
-
declares
public boolean declares(String identifierName)
- Specified by:
declares
in interfaceIParsedElementWithAtLeastOneDeclaration
-
getDeclarations
public String[] getDeclarations()
- Specified by:
getDeclarations
in interfaceIParsedElementWithAtLeastOneDeclaration
-
getAnnotations
public List<IGosuAnnotation> getAnnotations()
- Overrides:
getAnnotations
in classParsedElement
-
getFullDescription
public String 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
public DynamicPropertySymbol getProperty()
- Specified by:
getProperty
in interfaceIVarStatement
-
setProperty
public void setProperty(DynamicPropertySymbol dps)
-
-