org.extex.unit.omega.ocp.util
Class OcpList

java.lang.Object
  extended by org.extex.interpreter.type.AbstractCode
      extended by org.extex.unit.omega.ocp.util.OcpList
All Implemented Interfaces:
java.io.Serializable, Code, Showable, OcplistConvertible

public class OcpList
extends AbstractCode
implements Showable, OcplistConvertible

This class provides a primitive which acts as container for a pipe of ΩCP programs.

Version:
$Revision$
Author:
Gerd Neugebauer
See Also:
Serialized Form

Constructor Summary
OcpList(CodeToken token)
          Creates a new object.
 
Method Summary
 void addAfter(long scaled, OcpProgram program)
          Add an ΩCP program at the end of the pipe.
 void addBefore(long scaled, OcpProgram program)
          Add an ΩCP program at the beginning of the pipe.
 OcpList convertOcplist(Context context, TokenSource source, Typesetter typesetter)
          Convert the value into an ΩPC list.
 void execute(Flags prefix, Context context, TokenSource source, Typesetter typesetter)
          This method takes the first token and executes it. The result is placed on the stack. This operation might have side effects. To execute a token it might be necessary to consume further tokens.
 OcpList pop()
          Remove an ΩCP program from the pipe.
 void push(OcpList ocpList)
          Push an ΩCP program to the pipe.
 void removeAfter(long scaled, OcpProgram program)
          Remove an ΩCP program at the end of the pipe.
 void removeBefore(long scaled, OcpProgram program)
          Remove an ΩCP program at the beginning of the pipe.
 Tokens show(Context context)
          This method is the getter for the description of the primitive.
 
Methods inherited from class org.extex.interpreter.type.AbstractCode
getLocalizer, getName, getToken, isIf, isOuter, readResolve, toString, toText, toText
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OcpList

public OcpList(CodeToken token)
Creates a new object.

Parameters:
token - the initial token for the primitive
Method Detail

addAfter

public void addAfter(long scaled,
                     OcpProgram program)
Add an ΩCP program at the end of the pipe.

Parameters:
scaled - the index
program - the program

addBefore

public void addBefore(long scaled,
                      OcpProgram program)
Add an ΩCP program at the beginning of the pipe.

Parameters:
scaled - the index
program - the program

convertOcplist

public OcpList convertOcplist(Context context,
                              TokenSource source,
                              Typesetter typesetter)
                       throws HelpingException
Convert the value into an ΩPC list. Some tokens may be read from the input stream to perform the job.

Specified by:
convertOcplist in interface OcplistConvertible
Parameters:
context - the interpreter context
source - the source for new tokens
typesetter - the typesetter
Returns:
the ΩPC list encountered
Throws:
HelpingException - in case of an error
See Also:
OcplistConvertible.convertOcplist( org.extex.interpreter.context.Context, org.extex.interpreter.TokenSource, org.extex.typesetter.Typesetter)

execute

public void execute(Flags prefix,
                    Context context,
                    TokenSource source,
                    Typesetter typesetter)
             throws HelpingException,
                    TypesetterException
This method takes the first token and executes it. The result is placed on the stack. This operation might have side effects. To execute a token it might be necessary to consume further tokens.

Specified by:
execute in interface Code
Overrides:
execute in class AbstractCode
Parameters:
prefix - the prefix controlling the execution
context - the interpreter context
source - the token source
typesetter - the typesetter
Throws:
HelpingException - in case of an error
TypesetterException - in case of an error in the typesetter
See Also:
AbstractCode.execute( org.extex.interpreter.Flags, org.extex.interpreter.context.Context, org.extex.interpreter.TokenSource, org.extex.typesetter.Typesetter)

pop

public OcpList pop()
Remove an ΩCP program from the pipe.

Returns:
the popped element

push

public void push(OcpList ocpList)
Push an ΩCP program to the pipe.

Parameters:
ocpList - the list to push

removeAfter

public void removeAfter(long scaled,
                        OcpProgram program)
Remove an ΩCP program at the end of the pipe.

Parameters:
scaled - the index
program - the program

removeBefore

public void removeBefore(long scaled,
                         OcpProgram program)
Remove an ΩCP program at the beginning of the pipe.

Parameters:
scaled - the index
program - the program

show

public Tokens show(Context context)
            throws HelpingException
This method is the getter for the description of the primitive.

Specified by:
show in interface Showable
Parameters:
context - the interpreter context
Returns:
the description of the primitive as list of Tokens
Throws:
HelpingException - in case of an error
See Also:
Showable.show( org.extex.interpreter.context.Context)