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 Symbol
asSymbol()
Get the corresponding non-keyword symbol.static boolean
isKeyword(Object obj)
Test whether an object is a keyword.static Keyword
make(String name)
Create or find a Keyword with a given name (without ':').void
readExternal(ObjectInput in)
Object
readResolve()
static Object
searchForKeyword(Object[] vals, int offset, Object keyword)
Search vals[0:offset-1] for a keyword.static Object
searchForKeyword(Object[] vals, int offset, Object keyword, Object dfault)
Search vals[0:offset-1] for a keyword.String
toString()
void
writeExternal(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:
true
if the object is a keyword,false
otherwise.
-
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:
writeExternal
in interfaceExternalizable
- Overrides:
writeExternal
in classSymbol
- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternal
in interfaceExternalizable
- Overrides:
readExternal
in classSymbol
- Throws:
IOException
ClassNotFoundException
-
readResolve
public Object readResolve() throws ObjectStreamException
- Overrides:
readResolve
in classSymbol
- Throws:
ObjectStreamException
-
-