Scroll to navigation

LaTeXML::MathParser(3pm) User Contributed Perl Documentation LaTeXML::MathParser(3pm)

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 separated by punctuation nodes.
"$node = InterpretDelimited($op,@stuff);"
Similar to "ApplyDelimited", this interprets sequence of delimited, punctuated items as being the application of $op to those items.
"$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.

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)">
"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.

2021-05-20 perl v5.32.1