org.extex.unit.tex.macro
Class Def
java.lang.Object
org.extex.interpreter.type.AbstractCode
org.extex.interpreter.type.AbstractAssignment
org.extex.unit.tex.macro.Def
- All Implemented Interfaces:
- java.io.Serializable, LogEnabled, Code
- Direct Known Subclasses:
- Gdef
public class Def
- extends AbstractAssignment
- implements LogEnabled
This class provides an implementation for the primitive \def.
The Primitive \def
The primitive \def defines a new macro. The macro is assigned to a
control sequence or an active character.
A macro has a body with the expansion tokens. Whenever the macro is expanded
the tokens from the body are used.
A macro can have a non-trivial pattern for matching arguments.
TODO missing documentation
Syntax
The formal description of this primitive is the following:
〈def〉
→ 〈prefix〉 \def 〈control sequence〉 〈parameter text〉 { 〈replacement text〉 }
〈prefix〉
→
| \global 〈prefix〉
| \long 〈prefix〉
| \outer 〈prefix〉
| \protected 〈prefix〉
Examples
\def\a#1{--#1--}
\def\a#1#{--#1--}
\def\a#1#2{--#2--#1--}
\def\a#1:#2.{--#2--#1--}
- Version:
- $Revision: 4770 $
- Author:
- Gerd Neugebauer
- See Also:
- Serialized Form
|
Field Summary |
protected static long |
serialVersionUID
The constant serialVersionUID contains the id for
serialization. |
|
Constructor Summary |
Def(CodeToken token)
Creates a new object. |
| 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
Def
public Def(CodeToken token)
- Creates a new object.
- Parameters:
token - the initial token for the primitive
assign
public void assign(Flags prefix,
Context context,
TokenSource source,
Typesetter typesetter)
throws HelpingException,
TypesetterException
- The method assign is the core of the functionality of
execute().
This method is preferable to execute() since the
execute() method provided in this class takes care of
\afterassignment and \globaldefs as well.
- Specified by:
assign in class AbstractAssignment
- 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:
Code.execute(
org.extex.interpreter.Flags, org.extex.interpreter.context.Context,
org.extex.interpreter.TokenSource, org.extex.typesetter.Typesetter)
enableLogging
public void enableLogging(java.util.logging.Logger logger)
- Setter for the logger.
- Specified by:
enableLogging in interface LogEnabled
- Parameters:
logger - the logger to use- See Also:
LogEnabled.enableLogging(
java.util.logging.Logger)