MathParser\Interpreting\ASCIIPrinter Class Reference

Create LaTeX code for prettyprinting a mathematical expression (for example via MathJax) More...

Inheritance diagram for MathParser\Interpreting\ASCIIPrinter:
MathParser\Interpreting\Visitors\Visitor

Public Member Functions

 __construct ()
 Constructor. More...
 
 visitExpressionNode (ExpressionNode $node)
 Generate ASCII output code for an ExpressionNode. More...
 
 visitNumberNode (NumberNode $node)
 Interface function for visiting NumberNodes. More...
 
 visitIntegerNode (IntegerNode $node)
 Interface function for visiting IntegerNodes. More...
 
 visitRationalNode (RationalNode $node)
 Interface function for visiting RationalNodes. More...
 
 visitVariableNode (VariableNode $node)
 Interface function for visiting VariableNodes. More...
 
 visitFunctionNode (FunctionNode $node)
 Interface function for visiting FunctionNode. More...
 
 visitConstantNode (ConstantNode $node)
 Interface function for visiting ConstantNode. More...
 
 parenthesize (Node $node, ExpressionNode $cutoff, $prepend='')
 

Private Attributes

 $lexer
 StdMathLexer $lexer.
 

Detailed Description

Create LaTeX code for prettyprinting a mathematical expression (for example via MathJax)

Implementation of a Visitor, transforming an AST into a string giving LaTeX code for the expression.

The class in general does not generate the best possible LaTeX code, and needs more work to be used in a production setting.

Example:

$parser = new StdMathParser();
$f = $parser->parse('exp(2x)+xy');
printer = new LaTeXPrinter();
result = $f->accept($printer); // Generates "e^{2x}+xy"

Note that surrounding $, $$ or \begin{equation}..\end{equation} has to be added manually.

Constructor & Destructor Documentation

MathParser\Interpreting\ASCIIPrinter::__construct ( )

Constructor.

Create an ASCIIPrinter.

Member Function Documentation

MathParser\Interpreting\ASCIIPrinter::visitConstantNode ( ConstantNode  $node)

Interface function for visiting ConstantNode.

Parameters
ConstantNode$nodeNode to visit.

Implements MathParser\Interpreting\Visitors\Visitor.

MathParser\Interpreting\ASCIIPrinter::visitExpressionNode ( ExpressionNode  $node)

Generate ASCII output code for an ExpressionNode.

Create a string giving ASCII output representing an ExpressionNode (x op y) where op is one of +, -, *, / or ^

Parameters
ExpressionNode$nodeAST to be typeset
Return values
string

Implements MathParser\Interpreting\Visitors\Visitor.

MathParser\Interpreting\ASCIIPrinter::visitFunctionNode ( FunctionNode  $node)

Interface function for visiting FunctionNode.

Parameters
FunctionNode$nodeNode to visit.

Implements MathParser\Interpreting\Visitors\Visitor.

MathParser\Interpreting\ASCIIPrinter::visitIntegerNode ( IntegerNode  $node)

Interface function for visiting IntegerNodes.

Parameters
IntegerNode$nodeNode to visit.

Implements MathParser\Interpreting\Visitors\Visitor.

MathParser\Interpreting\ASCIIPrinter::visitNumberNode ( NumberNode  $node)

Interface function for visiting NumberNodes.

Parameters
NumberNode$nodeNode to visit.

Implements MathParser\Interpreting\Visitors\Visitor.

MathParser\Interpreting\ASCIIPrinter::visitRationalNode ( RationalNode  $node)

Interface function for visiting RationalNodes.

Parameters
RationalNode$nodeNode to visit.

Implements MathParser\Interpreting\Visitors\Visitor.

MathParser\Interpreting\ASCIIPrinter::visitVariableNode ( VariableNode  $node)

Interface function for visiting VariableNodes.

Parameters
VariableNode$nodeNode to visit.

Implements MathParser\Interpreting\Visitors\Visitor.


The documentation for this class was generated from the following file: