Package gnu.expr

Class Keyword

All Implemented Interfaces:
EnvironmentKey, Externalizable, Serializable, Comparable

public class Keyword extends Symbol implements Externalizable
Implementation of Lisp keywords. Keywords are symbolic identifiers that evaluate to themselves, as opposed to symbols which generally name other values.
See Also:
  • Field Details

    • keywordNamespace

      public static final Namespace keywordNamespace
  • Constructor Details

    • Keyword

      public Keyword()
    • Keyword

      public Keyword(Namespace namespace, String name)
      Used for constructing literals (int gnu.expr.LitTable).
  • Method Details

    • asSymbol

      public Symbol asSymbol()
      Get the corresponding non-keyword symbol. Informally, the symbol corresponding to dropping the ':'.
    • make

      public static Keyword make(String name)
      Create or find a Keyword with a given name (without ':').
      Parameters:
      name - the print-name of the desired Keyword
      Returns:
      a Keyword with the given name, newly created iff none such exist
    • isKeyword

      public static boolean isKeyword(Object obj)
      Test whether an object is a keyword.
      Parameters:
      obj - the object to test.
      Returns:
      true if the object is a keyword, false otherwise.
    • toString

      public final String toString()
      Overrides:
      toString in class Symbol
    • searchForKeyword

      public static Object searchForKeyword(Object[] vals, int offset, Object keyword)
      Search vals[0:offset-1] for a keyword. Each key at vals[i] is followed by a value at keys[i+1]. (This is used to search for a keyword parameter in an argument list.)
      Parameters:
      vals - the list to search in
      offset - the index in vals to start the search at
      keyword - the keyword to search for
      Returns:
      vals[i+1] such that vals[i]==keyword (and (i-offset) is even and non-negative); if there is no such i, return Special.dfault.
    • searchForKeyword

      public static Object searchForKeyword(Object[] vals, int offset, Object keyword, Object dfault)
      Search vals[0:offset-1] for a keyword. Each key at vals[i] is followed by a value at keys[i+1]. (This is used to search for a keyword parameter in an argument list.)
      Parameters:
      vals - the list to search in
      offset - the index in vals to start the search at
      keyword - the keyword to search for
      dfault - the value to return if there is no match
      Returns:
      vals[i+1] such that vals[i]==keyword (and (i-offset) is even and non-negative); if there is no such i, return dfault.
    • writeExternal

      public void writeExternal(ObjectOutput out) throws IOException
      Specified by:
      writeExternal in interface Externalizable
      Overrides:
      writeExternal in class Symbol
      Throws:
      IOException
    • readExternal

      public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
      Specified by:
      readExternal in interface Externalizable
      Overrides:
      readExternal in class Symbol
      Throws:
      IOException
      ClassNotFoundException
    • readResolve

      public Object readResolve() throws ObjectStreamException
      Overrides:
      readResolve in class Symbol
      Throws:
      ObjectStreamException