org.extex.unit.tex.string
Class Number
java.lang.Object
org.extex.interpreter.type.AbstractCode
org.extex.unit.tex.string.Number
- All Implemented Interfaces:
- java.io.Serializable, Code, ExpandableCode
public class Number
- extends AbstractCode
- implements ExpandableCode
This class provides an implementation for the primitive \number.
The Primitive \number
The primitive \number takes a following number specification of
any kind and produces a decimal representation of it. The associated tokens
– with category code 12 – are pushed back to the input stream.
Any leading zeroes and whitespace characters are omitted.
The primitive can be applied to a constant which is rather pointless except
that leading zeroes are discarded. It can as well be applied to a register in
which case one gets the tokens representing the content of the register.
Syntax
The formal description of this primitive is the following:
〈number〉
→ \number 〈number〉
Examples
\number 42 → 42
\count=-123
\number -\count3 → 123
\number -0042 → -42
- Version:
- $Revision:4431 $
- Author:
- Gerd Neugebauer
- See Also:
- Serialized Form
|
Field Summary |
protected static long |
serialVersionUID
The constant serialVersionUID contains the id for
serialization. |
|
Method Summary |
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. |
void |
expand(Flags prefix,
Context context,
TokenSource source,
Typesetter typesetter)
This method takes the first token and expands it. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
serialVersionUID
protected static final long serialVersionUID
- The constant serialVersionUID contains the id for
serialization.
- See Also:
- Constant Field Values
Number
public Number(CodeToken token)
- Creates a new object.
- Parameters:
token - the initial token for the primitive
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 executioncontext - the interpreter contextsource - the token sourcetypesetter - 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)
expand
public void expand(Flags prefix,
Context context,
TokenSource source,
Typesetter typesetter)
throws HelpingException,
TypesetterException
- This method takes the first token and expands it. The result is placed on
the stack. This means that expandable code does one step of expansion and
puts the result on the stack. To expand a token it might be necessary to
consume further tokens.
- Specified by:
expand in interface ExpandableCode
- Parameters:
prefix - the prefix flags controlling the expansioncontext - the interpreter contextsource - the token sourcetypesetter - the typesetter
- Throws:
HelpingException - in case of an error
TypesetterException - in case of an error in the typesetter- See Also:
ExpandableCode.expand(
org.extex.interpreter.Flags, org.extex.interpreter.context.Context,
org.extex.interpreter.TokenSource, org.extex.typesetter.Typesetter)