org.quasiliteral.quasiterm
Class QAstro

java.lang.Object
  |
  +--org.quasiliteral.quasiterm.QAstroArg
        |
        +--org.quasiliteral.quasiterm.QAstro
All Implemented Interfaces:
Astro, AstroArg, Marker, MatchMaker, PassByConstruction, Persistent, Selfless, Serializable, ValueMaker
Direct Known Subclasses:
QFunctor, QHole, QTerm

public abstract class QAstro
extends QAstroArg
implements Astro, ValueMaker, MatchMaker

Untamed:

Author:
Mark S. Miller
See Also:
Serialized Form

Field Summary
(package private) static long serialVersionUID
           
 
Fields inherited from class org.quasiliteral.quasiterm.QAstroArg
EListGuard, EMPTY_INDEX, myBuilder, myOptSpan
 
Fields inherited from interface org.erights.e.elib.tables.Selfless
HONORARY, HONORED_NAMES
 
Fields inherited from interface org.erights.e.elib.serial.PassByConstruction
HONORARY, HONORED_NAMES
 
Fields inherited from interface org.erights.e.elib.serial.Persistent
HONORARY, HONORED_NAMES
 
Constructor Summary
QAstro(AstroBuilder builder, SourceSpan optSpan)
          Enabled:
 
Method Summary
(package private) abstract  QAstro asFunctor()
          Returns a variant of this Astro that may serve as a functor of a QTerm.
 Astro build(AstroBuilder builder)
          Enabled:
 Object getOptArgData()
          Enabled:
 Object getOptArgData(short tagCode)
          Enabled:
 String getOptArgString(short tagCode)
          Enabled:
 String getOptString()
          Enabled:
 short getOptTagCode()
          Enabled:
 ConstList matchBind(ConstList args, Object specimen)
          Enabled:
 boolean matchBind(ConstList args, Object specimen, FlexList bindings)
          Enabled:
 Object substitute(ConstList args)
          Enabled: @return :Astro
 
Methods inherited from class org.quasiliteral.quasiterm.QAstroArg
__printOn, asText, endShape, getHeight, getOptSpan, matchBindSlice, prettyPrintOn, qbuild, startShape, substSlice, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.quasiliteral.astro.Astro
getArgs, getOptData, getTag, withArgs, withoutArgs
 
Methods inherited from interface org.quasiliteral.astro.AstroArg
getOptSpan
 
Methods inherited from interface org.erights.e.elib.tables.Selfless
getSpreadUncall
 

Field Detail

serialVersionUID

static final long serialVersionUID
Constructor Detail

QAstro

public QAstro(AstroBuilder builder,
              SourceSpan optSpan)
Enabled:

Method Detail

substitute

public Object substitute(ConstList args)
Enabled: @return :Astro

Specified by:
substitute in interface ValueMaker

matchBind

public ConstList matchBind(ConstList args,
                           Object specimen)
Enabled:

Specified by:
matchBind in interface MatchMaker

matchBind

public boolean matchBind(ConstList args,
                         Object specimen,
                         FlexList bindings)
Enabled:

Specified by:
matchBind in interface MatchMaker
Parameters:
args - See the doc on 'args' in #substitute(Object[], String)
specimen - :Astro
bindings - Like 'args', but by extraction from specimen
Returns:
Do we have a match?

build

public Astro build(AstroBuilder builder)
Enabled:

Specified by:
build in interface Astro

getOptTagCode

public short getOptTagCode()
Enabled:

Specified by:
getOptTagCode in interface Astro

getOptString

public String getOptString()
Enabled:

Specified by:
getOptString in interface Astro

getOptArgData

public Object getOptArgData()
Enabled:

Specified by:
getOptArgData in interface Astro

getOptArgData

public Object getOptArgData(short tagCode)
Enabled:

Specified by:
getOptArgData in interface Astro

getOptArgString

public String getOptArgString(short tagCode)
Enabled:

Specified by:
getOptArgString in interface Astro

asFunctor

abstract QAstro asFunctor()
Returns a variant of this Astro that may serve as a functor of a QTerm.

If this Astro (or derivatives) should not be used as a functor, then this operation should throw.



comments?