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 private boolean_bDefinitionParsedprivate boolean_bIsInitializedTopLevelProgVarprivate java.util.List<IGosuAnnotation>_declAnnotationsprivate DynamicPropertySymbol_dpsprotected Expression_expressionprotected boolean_hasPropertyprivate int_iNameOffsetprivate int_iPropertyNameOffsetprotected ModifierInfo_modifiersprivate IScriptPartId_scriptPartIdprivate java.lang.String_strPropertyNameprivate ISymbol_symbolprotected 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclearDefn()booleandeclares(java.lang.String identifierName)private voiddetachDeclTypeLiteral()java.lang.Objectexecute()Executes the Var statement.java.util.List<IGosuAnnotation>getAnnotations()ExpressiongetAsExpression()java.util.List<IGosuAnnotation>getDeclAnnotations()java.lang.String[]getDeclarations()java.lang.StringgetFullDescription()java.lang.StringgetFunctionName()booleangetHasInitializer()java.lang.StringgetIdentifierName()protected ITerminalStatementgetLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)ModifierInfogetModifierInfo()intgetModifiers()intgetNameOffset(java.lang.String identifierName)The offset of the token representing the name for the declarationDynamicPropertySymbolgetProperty()java.lang.StringgetPropertyName()intgetPropertyNameOffset()IScriptPartIdgetScriptPart()ISymbolgetSymbol()ITypegetType()TypeLiteralgetTypeLiteral()booleanhasProperty()booleanisAbstract()booleanisDefinitionParsed()booleanisEnumConstant()booleanisFieldDeclaration()booleanisFinal()booleanisImplicitlyUsed()booleanisInternal()booleanisPrivate()booleanisProtected()booleanisPublic()booleanisStatic()booleanisTransient()voidsetAsExpression(Expression expression)voidsetDeclAnnotations(java.util.List<IGosuAnnotation> declAnnotations)voidsetDefinitionParsed(boolean bParsed)voidsetEnumConstant(boolean bEnumConstant)voidsetFinal(boolean bFinal)voidsetHasProperty(boolean hasProperty)voidsetInternal(boolean bInternal)voidsetIsInitializedTopLevelProgVar()voidsetModifierInfo(ModifierInfo modifiers)voidsetNameOffset(int iOffset, java.lang.String identifierName)voidsetPrivate(boolean bPrivate)voidsetProperty(DynamicPropertySymbol dps)voidsetPropertyName(java.lang.String strPropertyName)voidsetProtected(boolean bProtected)voidsetPublic(boolean bPublic)voidsetScriptPart(IScriptPartId partId)voidsetStatic(boolean bStatic)voidsetSymbol(ISymbol symbol)voidsetType(IType newType)voidsetTypeLiteral(TypeLiteral typeLiteral)java.lang.StringtoString()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 Detail
-
_strPropertyName
private java.lang.String _strPropertyName
-
_expression
protected Expression _expression
-
_typeLiteral
protected TypeLiteral _typeLiteral
-
_hasProperty
protected boolean _hasProperty
-
_modifiers
protected ModifierInfo _modifiers
-
_declAnnotations
private java.util.List<IGosuAnnotation> _declAnnotations
-
_symbol
private ISymbol _symbol
-
_scriptPartId
private IScriptPartId _scriptPartId
-
_iNameOffset
private int _iNameOffset
-
_iPropertyNameOffset
private int _iPropertyNameOffset
-
_bDefinitionParsed
private boolean _bDefinitionParsed
-
_bIsInitializedTopLevelProgVar
private boolean _bIsInitializedTopLevelProgVar
-
_dps
private DynamicPropertySymbol _dps
-
-
Method Detail
-
getIdentifierName
public java.lang.String getIdentifierName()
- Specified by:
getIdentifierNamein interfaceIVarStatement
-
getSymbol
public ISymbol getSymbol()
- Specified by:
getSymbolin interfaceIVarStatement
-
setSymbol
public void setSymbol(ISymbol symbol)
- Specified by:
setSymbolin interfaceIVarStatement
-
getPropertyName
public java.lang.String getPropertyName()
- Specified by:
getPropertyNamein interfaceIVarStatement
-
setPropertyName
public void setPropertyName(java.lang.String strPropertyName)
-
getTypeLiteral
public TypeLiteral getTypeLiteral()
- Specified by:
getTypeLiteralin interfaceIVarStatement
-
setTypeLiteral
public void setTypeLiteral(TypeLiteral typeLiteral)
-
detachDeclTypeLiteral
private void detachDeclTypeLiteral()
-
getAsExpression
public Expression getAsExpression()
- Specified by:
getAsExpressionin interfaceIVarStatement
-
setAsExpression
public void setAsExpression(Expression expression)
-
setType
public void setType(IType newType)
-
hasProperty
public boolean hasProperty()
- Specified by:
hasPropertyin interfaceIVarStatement
-
setHasProperty
public void setHasProperty(boolean hasProperty)
-
getModifierInfo
public ModifierInfo getModifierInfo()
- Specified by:
getModifierInfoin interfaceIVarStatement
-
setModifierInfo
public void setModifierInfo(ModifierInfo modifiers)
-
getDeclAnnotations
public java.util.List<IGosuAnnotation> getDeclAnnotations()
-
setDeclAnnotations
public void setDeclAnnotations(java.util.List<IGosuAnnotation> declAnnotations)
-
getModifiers
public int getModifiers()
- Specified by:
getModifiersin interfaceIVarStatement
-
isStatic
public boolean isStatic()
- Specified by:
isStaticin interfaceIVarStatement
-
setStatic
public void setStatic(boolean bStatic)
-
isPrivate
public boolean isPrivate()
- Specified by:
isPrivatein interfaceIVarStatement
-
setPrivate
public void setPrivate(boolean bPrivate)
-
isInternal
public boolean isInternal()
- Specified by:
isInternalin interfaceIVarStatement
-
setInternal
public void setInternal(boolean bInternal)
-
isProtected
public boolean isProtected()
- Specified by:
isProtectedin interfaceIVarStatement
-
setProtected
public void setProtected(boolean bProtected)
-
isPublic
public boolean isPublic()
- Specified by:
isPublicin interfaceIVarStatement
-
setPublic
public void setPublic(boolean bPublic)
-
isFinal
public boolean isFinal()
- Specified by:
isFinalin interfaceIVarStatement
-
setFinal
public void setFinal(boolean bFinal)
-
isAbstract
public boolean isAbstract()
- Specified by:
isAbstractin interfaceIVarStatement
-
isEnumConstant
public boolean isEnumConstant()
- Specified by:
isEnumConstantin interfaceIVarStatement
-
setEnumConstant
public void setEnumConstant(boolean bEnumConstant)
-
isTransient
public boolean isTransient()
-
getType
public IType getType()
- Specified by:
getTypein interfaceIHasType- Specified by:
getTypein interfaceIVarStatement
-
setScriptPart
public void setScriptPart(IScriptPartId partId)
-
getScriptPart
public IScriptPartId getScriptPart()
- Specified by:
getScriptPartin interfaceIVarStatement
-
execute
public java.lang.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:
executein interfaceIStatement- Overrides:
executein classStatement
-
getLeastSignificantTerminalStatement_internal
protected ITerminalStatement getLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)
- Specified by:
getLeastSignificantTerminalStatement_internalin classStatement
-
toString
public java.lang.String toString()
Description copied from class:StatementSubclasses should return a String representing the parsed statement.
-
getFunctionName
public java.lang.String getFunctionName()
- Specified by:
getFunctionNamein interfaceIParsedElement- Overrides:
getFunctionNamein classParsedElement
-
getNameOffset
public int getNameOffset(java.lang.String identifierName)
Description copied from interface:IParsedElementWithAtLeastOneDeclarationThe offset of the token representing the name for the declaration- Specified by:
getNameOffsetin interfaceIParsedElementWithAtLeastOneDeclaration
-
setNameOffset
public void setNameOffset(int iOffset, java.lang.String identifierName)- Specified by:
setNameOffsetin interfaceIParsedElementWithAtLeastOneDeclaration
-
declares
public boolean declares(java.lang.String identifierName)
- Specified by:
declaresin interfaceIParsedElementWithAtLeastOneDeclaration- Returns:
- True if this statement declares the given identifier; false otherwise
-
getDeclarations
public java.lang.String[] getDeclarations()
- Specified by:
getDeclarationsin interfaceIParsedElementWithAtLeastOneDeclaration- Returns:
- all names declared by this element
-
getAnnotations
public java.util.List<IGosuAnnotation> getAnnotations()
- Overrides:
getAnnotationsin classParsedElement
-
getFullDescription
public java.lang.String getFullDescription()
- Specified by:
getFullDescriptionin interfaceIVarStatement
-
clearDefn
public void clearDefn()
-
isDefinitionParsed
public boolean isDefinitionParsed()
-
setDefinitionParsed
public void setDefinitionParsed(boolean bParsed)
-
getHasInitializer
public boolean getHasInitializer()
- Specified by:
getHasInitializerin interfaceIVarStatement
-
isImplicitlyUsed
public boolean isImplicitlyUsed()
-
getPropertyNameOffset
public int getPropertyNameOffset()
- Specified by:
getPropertyNameOffsetin interfaceIVarStatement
-
isFieldDeclaration
public boolean isFieldDeclaration()
- Specified by:
isFieldDeclarationin interfaceIVarStatement
-
setIsInitializedTopLevelProgVar
public void setIsInitializedTopLevelProgVar()
-
getProperty
public DynamicPropertySymbol getProperty()
- Specified by:
getPropertyin interfaceIVarStatement
-
setProperty
public void setProperty(DynamicPropertySymbol dps)
-
-