Class SymbolTable

    • Constructor Detail

      • SymbolTable

        public SymbolTable()
    • Method Detail

      • setSymbolResolver

        public void setSymbolResolver​(SymbolResolver resolver)
      • setParentSymbolTable

        public void setParentSymbolTable​(SymbolTable tbl)
        Set the symbol table for any parent query, so that if this query refers to an expression from the parent query then it is resolvable.
        Parameters:
        tbl - The parent symbol table
      • getParentSymbolTable

        public SymbolTable getParentSymbolTable()
        Accessor for the parent symbol table (if any).
        Returns:
        The parent symbol table
      • getSymbolNames

        public Collection<String> getSymbolNames()
        Accessor for the names of the symbols in this table.
        Returns:
        Names of the symbols
      • getSymbol

        public Symbol getSymbol​(String name)
        Return the Symbol for the specified name if known. If there is a parent symbol table then looks up in that after if not found here (unless the name is "this").
        Parameters:
        name - The name to look up
        Returns:
        The symbol for this name
      • getSymbolIgnoreCase

        public Symbol getSymbolIgnoreCase​(String name)
        Return the Symbol for the specified name if known, treating the name as case-insensitive. If there is a parent symbol table then looks up in that after if not found here (unless the name is "this").
        Parameters:
        name - The name to look up
        Returns:
        The symbol for this name
      • hasSymbol

        public boolean hasSymbol​(String name)
        Accessor for whether this symbol table has a particular symbol name. Does not make any use of parent symbol table(s).
        Parameters:
        name - The name of the symbol we require
        Returns:
        Whether it is present here
      • addSymbol

        public int addSymbol​(Symbol symbol)
      • removeSymbol

        public void removeSymbol​(Symbol symbol)