|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.dante.extex.interpreter.type.AbstractCode
de.dante.extex.interpreter.primitives.register.dimen.Dimenexpr
This class provides an implementation for the primitive
The primitive \dimenexpr provides a means to use a inline way of
writing mathematical expressions to be evaluated. Mathematical expressions
can be evaluated in
The mathematical expression to be evaluated can be made up of the basic
operations addition (+), subtraction (-), multiplication (*) with numbers,
and division(/) by numbers. The unary minus can be used. Parentheses can be
used for grouping. Anything which looks like a length can be used as
argument. White-space can be used freely without any harm.
The expression is terminated at the first token which can not be part of
an expression. For instance a letter may signal the end of the expression.
If the expression should terminate without a proper token following it,
the token \relax can be used to signal the end of the expression.
This \relax token is silently consumed by \dimenexpr.
The primitive \dimenexpr can be used in any place where a dimen is
required. This includes assignments to dimen registers and comparisons.
\dimenexpr
.
The Primitive \dimenexpr
Syntax
The formal description of this primitive is the following:
〈dimenexpr〉
→ \dimenexpr 〈expr〉 \relax
| \dimenexpr 〈expr〉
〈expr〉
→ 〈operand〉
| 〈operand〉 + 〈expr〉
| 〈operand〉 - 〈expr〉
〈operand〉
→ 〈dimen〉
| 〈operand〉 * 〈number〉
| 〈number〉 * 〈operand〉
| 〈operand〉 / 〈number〉
| - 〈expr〉
| ( 〈expr〉 )
Examples
\count1=\dimenexpr 23pt \relax
\count1=\dimenexpr 2 * 3pt \relax
\count1=\dimenexpr 2pt*\count2
\count1=\dimenexpr 2*(1pt+3em)
\count1=\dimenexpr 2*-\dimen0
Field Summary | |
protected static long |
serialVersionUID
The constant serialVersionUID contains the id for serialization. |
Constructor Summary | |
Dimenexpr(java.lang.String name)
Creates a new object. |
Method Summary | |
long |
convertCount(Context context,
TokenSource source,
Typesetter typesetter)
This method converts a register into a count. |
long |
convertDimen(Context context,
TokenSource source,
Typesetter typesetter)
This method converts a register into a dimen. |
Tokens |
the(Context context,
TokenSource source,
Typesetter typesetter)
This method is the getter for the description of the primitive. |
Methods inherited from class de.dante.extex.interpreter.type.AbstractCode |
enableLocalization, execute, getLocalizer, getName, isIf, isOuter, printable, printableControlSequence, readResolve, setName, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected static final long serialVersionUID
Constructor Detail |
public Dimenexpr(java.lang.String name)
name
- the name for debuggingMethod Detail |
public long convertCount(Context context, TokenSource source, Typesetter typesetter) throws InterpreterException
CountConvertible
convertCount
in interface CountConvertible
context
- the interpreter contextsource
- the source for new tokenstypesetter
- the typesetter to use for conversion
InterpreterException
- in case of an errorCountConvertible.convertCount(
de.dante.extex.interpreter.context.Context,
de.dante.extex.interpreter.TokenSource,
de.dante.extex.typesetter.Typesetter)
public long convertDimen(Context context, TokenSource source, Typesetter typesetter) throws InterpreterException
DimenConvertible
convertDimen
in interface DimenConvertible
context
- the interpreter contextsource
- the source for new tokenstypesetter
- the typesetter to use for conversion
InterpreterException
- in case of an errorDimenConvertible.convertDimen(
de.dante.extex.interpreter.context.Context,
de.dante.extex.interpreter.TokenSource,
de.dante.extex.typesetter.Typesetter)
public Tokens the(Context context, TokenSource source, Typesetter typesetter) throws InterpreterException
Theable
the
in interface Theable
context
- the interpreter contextsource
- the source for further tokens to qualify the requesttypesetter
- the typesetter to use
InterpreterException
- in case of an errorTheable.the(
de.dante.extex.interpreter.context.Context,
de.dante.extex.interpreter.TokenSource,
de.dante.extex.typesetter.Typesetter)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |