Package org.ek9lang.compiler.symbols
Class ParamExpressionSymbol
java.lang.Object
org.ek9lang.compiler.symbols.Symbol
org.ek9lang.compiler.symbols.ParamExpressionSymbol
- All Implemented Interfaces:
Serializable
,ISymbol
,ITokenReference
While we don't add these in the scoped structures when compiling.
We do use these to augment the parse tree for the appropriate context.
We do this so that we can work out what type of result will be returned from an expression.
For this call we need the order list of parameters specifically the types of those parameters.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.ek9lang.compiler.symbols.ISymbol
ISymbol.SymbolCategory, ISymbol.SymbolGenus
-
Field Summary
Fields inherited from interface org.ek9lang.compiler.symbols.ISymbol
NOT_ASSIGNABLE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addParameter
(ISymbol symbol) Clone the symbol and re-parent if this symbol like a method should have a parent.protected ParamExpressionSymbol
boolean
Provide the name an end user would need to see on the screen.int
hashCode()
Methods inherited from class org.ek9lang.compiler.symbols.Symbol
clearInitialisedBy, cloneIntoSymbol, copySymbolProperties, getAssignableWeightTo, getAssignableWeightTo, getCategory, getFullyQualifiedName, getGenus, getInitialisedBy, getName, getParsedModule, getProduceFullyQualifiedName, getSourceToken, getSquirrelledData, getSymbolTypeAsString, getType, getUnCoercedAssignableWeightTo, isAssignableTo, isAssignableTo, isDevSource, isEk9Core, isExactSameType, isInjectionExpected, isLibSource, isMarkedPure, isMutable, isNullAllowed, isPromotionSupported, isReferenced, putSquirrelledData, setCategory, setEk9Core, setGenus, setInitialisedBy, setInjectionExpected, setMarkedPure, setName, setNotMutable, setNullAllowed, setParsedModule, setProduceFullyQualifiedName, setReferenced, setSourceToken, setType, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.ek9lang.compiler.symbols.ISymbol
isApplication, isConceptualTypeParameter, isConstant, isControl, isDeclaredAsConstant, isExtensionOfInjectable, isFromLiteral, isFunction, isGenericInNature, isIncomingParameter, isInitialised, isInjectable, isLoopVariable, isMarkedAbstract, isMethod, isParameterisedType, isPrimitiveType, isPrivate, isPropertyField, isProtected, isPublic, isReturningParameter, isTemplateFunction, isTemplateType, isType, isVariable, setType
-
Constructor Details
-
ParamExpressionSymbol
-
-
Method Details
-
addParameter
-
clone
Description copied from interface:ISymbol
Clone the symbol and re-parent if this symbol like a method should have a parent. Other symbols like VariableSymbols are un-parented -
cloneIntoStreamPipeLineSymbol
-
getParameters
-
getFriendlyName
Description copied from interface:ISymbol
Provide the name an end user would need to see on the screen. Normally this is just 'getName' but in the case of Templates We use a very nasty internal naming for List of SomeClass - which will probably be something like _List_hashed_version_of_ComeClass and the end user needs to see 'List of SomeClass' for it to be meaningful.- Specified by:
getFriendlyName
in interfaceISymbol
- Overrides:
getFriendlyName
in classSymbol
- Returns:
- a user presentable of the symbol name.
-
equals
-
hashCode
public int hashCode()
-