Class ParamExpressionSymbol

java.lang.Object
org.ek9lang.compiler.symbols.Symbol
org.ek9lang.compiler.symbols.ParamExpressionSymbol
All Implemented Interfaces:
Serializable, ISymbol, ITokenReference

public class ParamExpressionSymbol extends Symbol
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:
  • Constructor Details

    • ParamExpressionSymbol

      public ParamExpressionSymbol(String name)
  • Method Details

    • addParameter

      public void addParameter(ISymbol symbol)
    • clone

      public ParamExpressionSymbol clone(IScope withParentAsAppropriate)
      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
      Specified by:
      clone in interface ISymbol
      Overrides:
      clone in class Symbol
    • cloneIntoStreamPipeLineSymbol

      protected ParamExpressionSymbol cloneIntoStreamPipeLineSymbol(ParamExpressionSymbol newCopy)
    • getParameters

      public List<ISymbol> getParameters()
    • getFriendlyName

      public String 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 interface ISymbol
      Overrides:
      getFriendlyName in class Symbol
      Returns:
      a user presentable of the symbol name.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Symbol
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Symbol