NAME¶
"LaTeXML::MathParser" - parses mathematics content
DESCRIPTION¶
"LaTeXML::MathParser" parses the mathematical content of a document.
It uses Parse::RecDescent and a grammar "MathGrammar".
Math Representation¶
Needs description.
Possibile Customizations¶
Needs description.
Convenience functions¶
The following functions are exported for convenience in writing the grammar
productions.
- "$node = New($name,$content,%attributes);"
- Creates a new "XMTok" node with given $name (a
string or undef), and $content (a string or undef) (but at least one of
name or content should be provided), and attributes.
- "$node = Arg($node,$n);"
- Returns the $n-th argument of an "XMApp" node; 0
is the operator node.
- "Annotate($node,%attributes);"
- Add attributes to $node.
- "$node = Apply($op,@args);"
- Create a new "XMApp" node representing the
application of the node $op to the nodes @args.
- "$node = ApplyDelimited($op,@stuff);"
- Create a new "XMApp" node representing the
application of the node $op to the arguments found in @stuff. @stuff are
delimited arguments in the sense that the leading and trailing nodes
should represent open and close delimiters and the arguments are seperated
by punctuation nodes. The text of these delimiters and punctuation are
used to annotate the operator node with "argopen",
"argclose" and "separator" attributes.
- "$node = recApply(@ops,$arg);"
- Given a sequence of operators and an argument, forms the
nested application "op(op(...(arg)))">.
- "$node = InvisibleTimes;"
- Creates an invisible times operator.
- "$boole = isMatchingClose($open,$close);"
- Checks whether $open and $close form a `normal' pair of
delimiters, or if either is ".".
- "$node = Fence(@stuff);"
- Given a delimited sequence of nodes, starting and ending
with open/close delimiters, and with intermediate nodes separated by
punctuation or such, attempt to guess what type of thing is represented
such as a set, absolute value, interval, and so on. If nothing specific is
recognized, creates the application of "FENCED" to the
arguments.
This would be a good candidate for customization!
- "$node = NewFormulae(@stuff);"
- Given a set of formulas, construct a "Formulae"
application, if there are more than one, else just return the first.
- "$node = NewList(@stuff);"
- Given a set of expressions, construct a "list"
application, if there are more than one, else just return the first.
- "$node = LeftRec($arg1,@more);"
- Given an expr followed by repeated (op expr), compose the
left recursive tree. For example "a + b + c - d" would give
"(- (+ a b c) d)">
- "Problem($text);"
- Warn of a potential math parsing problem.
- "MaybeFunction($token);"
- Note the possible use of $token as a function, which may
cause incorrect parsing. This is used to generate warning messages.
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.