Package gnu.expr
Class Keyword
- java.lang.Object
-
- gnu.mapping.Symbol
-
- gnu.expr.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:
- Serialized Form
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description SymbolasSymbol()Get the corresponding non-keyword symbol.static booleanisKeyword(Object obj)Test whether an object is a keyword.static Keywordmake(String name)Create or find a Keyword with a given name (without ':').voidreadExternal(ObjectInput in)ObjectreadResolve()static ObjectsearchForKeyword(Object[] vals, int offset, Object keyword)Search vals[0:offset-1] for a keyword.static ObjectsearchForKeyword(Object[] vals, int offset, Object keyword, Object dfault)Search vals[0:offset-1] for a keyword.StringtoString()voidwriteExternal(ObjectOutput out)-
Methods inherited from class gnu.mapping.Symbol
compareTo, equals, equals, getKeyProperty, getKeySymbol, getLocalName, getLocalPart, getName, getNamespace, getNamespaceURI, getPrefix, hasEmptyNamespace, hashCode, hasUnknownNamespace, make, make, makeUninterned, makeUninterned, makeWithUnknownNamespace, matches, matches, parse, setNamespace, toString, valueOf, valueOf, valueOf
-
-
-
-
Field Detail
-
keywordNamespace
public static final Namespace keywordNamespace
-
-
Method Detail
-
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:
trueif the object is a keyword,falseotherwise.
-
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 inoffset- the index in vals to start the search atkeyword- 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 inoffset- the index in vals to start the search atkeyword- the keyword to search fordfault- 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:
writeExternalin interfaceExternalizable- Overrides:
writeExternalin classSymbol- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternalin interfaceExternalizable- Overrides:
readExternalin classSymbol- Throws:
IOExceptionClassNotFoundException
-
readResolve
public Object readResolve() throws ObjectStreamException
- Overrides:
readResolvein classSymbol- Throws:
ObjectStreamException
-
-