LaTeXML::Token(3pm) User Contributed Perl Documentation LaTeXML::Token(3pm)NAME
"LaTeXML::Token" - representation of a token, and "LaTeXML::Tokens", representing lists of tokens.
DESCRIPTION
This module defines Tokens ("LaTeXML::Token", "LaTeXML::Tokens") that get created during tokenization and expansion.
A "LaTeXML::Token" represents a TeX token which is a pair of a character or string and a category code. A "LaTeXML::Tokens" is a list of
tokens (and also implements the API of a LaTeXML::Mouth so that tokens can be read from a list).
Common methods
The following methods apply to all objects.
"@tokens = $object->unlist;"
Return a list of the tokens making up this $object.
"$string = $object->toString;"
Return a string representing $object.
Token methods
The following methods are specific to "LaTeXML::Token".
"$string = $token->getCSName;"
Return the string or character part of the $token; for the special category codes, returns the standard string (eg.
"T_BEGIN-"getCSName> returns "{").
"$string = $token->getString;"
Return the string or character part of the $token.
"$code = $token->getCharcode;"
Return the character code of the character part of the $token, or 256 if it is a control sequence.
"$code = $token->getCatcode;"
Return the catcode of the $token.
Tokens methods
The following methods are specific to "LaTeXML::Tokens".
"$tokenscopy = $tokens->clone;"
Return a shallow copy of the $tokens. This is useful before reading from a "LaTeXML::Tokens".
"$token = $tokens->readToken;"
Returns (and remove) the next token from $tokens. This is part of the public API of LaTeXML::Mouth so that a "LaTeXML::Tokens" can
serve as a LaTeXML::Mouth.
AUTHOR
Bruce Miller <bruce.miller@nist.gov>
COPYRIGHT
Public domain software, produced as part of work done by the United States Government & not subject to copyright in the US.
perl v5.10.1 2009-06-11 LaTeXML::Token(3pm)
Check Out this Related Man Page
LaTeXML::Stomach(3pm) User Contributed Perl Documentation LaTeXML::Stomach(3pm)NAME
"LaTeXML::Stomach" - digests tokens into boxes, lists, etc.
DESCRIPTION
"LaTeXML::Stomach" digests tokens read from a LaTeXML::Gullet (they will have already been expanded).
There are basically four cases when digesting a LaTeXML::Token:
A plain character
is simply converted to a LaTeXML::Box (or LaTeXML::MathBox in math mode), recording the current LaTeXML::Font.
A primitive
If a control sequence represents LaTeXML::Primitive, the primitive is invoked, executing its stored subroutine. This is typically done
for side effect (changing the state in the LaTeXML::State), although they may also contribute digested material. As with macros, any
arguments to the primitive are read from the LaTeXML::Gullet.
Grouping (or environment bodies)
are collected into a LaTeXML::List.
Constructors
A special class of control sequence, called a LaTeXML::Constructor produces a LaTeXML::Whatsit which remembers the control sequence and
arguments that created it, and defines its own translation into "XML" elements, attributes and data. Arguments to a constructor are
read from the gullet and also digested.
Digestion
"$list = $stomach->digestNextBody;"
Return the digested LaTeXML::List after reading and digesting a `body' from the its Gullet. The body extends until the current level
of boxing or environment is closed.
"$list = $stomach->digest($tokens);"
Return the LaTeXML::List resuting from digesting the given tokens. This is typically used to digest arguments to primitives or
constructors.
"@boxes = $stomach->invokeToken($token);"
Invoke the given (expanded) token. If it corresponds to a Primitive or Constructor, the definition will be invoked, reading any needed
arguments fromt he current input source. Otherwise, the token will be digested. A List of Box's, Lists, Whatsit's is returned.
"@boxes = $stomach->regurgitate;"
Removes and returns a list of the boxes already digested at the current level. This peculiar beast is used by things like choose
(which is a Primitive in TeX, but a Constructor in LaTeXML).
Grouping
"$stomach->bgroup;"
Begin a new level of binding by pushing a new stack frame, and a new level of boxing the digested output.
"$stomach->egroup;"
End a level of binding by popping the last stack frame, undoing whatever bindings appeared there, and also decrementing the level of
boxing.
"$stomach->begingroup;"
Begin a new level of binding by pushing a new stack frame.
"$stomach->endgroup;"
End a level of binding by popping the last stack frame, undoing whatever bindings appeared there.
Modes
"$stomach->beginMode($mode);"
Begin processing in $mode; one of 'text', 'display-math' or 'inline-math'. This also begins a new level of grouping and switches to a
font appropriate for the mode.
"$stomach->endMode($mode);"
End processing in $mode; an error is signalled if $stomach is not currently in $mode. This also ends a level of grouping.
AUTHOR
Bruce Miller <bruce.miller@nist.gov>
COPYRIGHT
Public domain software, produced as part of work done by the United States Government & not subject to copyright in the US.
perl v5.10.1 2009-06-11 LaTeXML::Stomach(3pm)