- METHODS RELATED TO PARSING
- SEE ALSO
- COPYRIGHT AND LICENSE
Math::SymbolicX::Calculator::Interface - Miscallaneous routines for interfaces
Do not use this in your scripts. Use one of the
This is very much an internal class.
This module is a base class for interfaces to Math::SymbolicX::Calculator. It is not an interface by itself. It doesn't even define stubs for all methods of an interface and as such isn't an interface definition for Calculator::Interfaces. Instead, it contains various miscellaneous methods which may be of use to classes which actually implement interfaces.
These methods parse commands of a somewhat generic syntax.
When defining the form of the accepted input strings below, I'll be using certain variables:
$SYMBOL => An identifier matching /[A-Za-z][A-Za-z0-9_]*/ $FORMULA => String that can be parsed as a Math::Symbolic tree $PATTERN => String that can be parsed as a Math::Symbolic::Custom::Transformation. (*) $REPLACEMENT => String that can be parsed as the replacement part of a Math::Symbolic::Custom::Transformation (*). $TRANSFORMATION => String that can be parsed as a transformation in the calculator context. (*) This means it has the following form: $PATTERN -> $REPLACEMENT $GROUP => A group of transformations. Grouping is done in -braces and the group elements are chained with one of &, |, or ",". Form: [ $x & $x & .... ] (Same for | or , but not mixed!) $x is either another $GROUP, a $TRANSFORMATION or a $SYMBOL in case of the latter, the symbol table of the calculator is accessed to map the $SYMBOL to a $TRANSFORMATION. The ultimate result of parsing such a thing is a Math::Symbolic::Custom::Transformation::Group object (**).
$TRANSFORMATIONs may contain some special syntax. Instead of the
CONST_foo special variables: You can write
If errors occurr, these methods call the
error() method with a description and then return the empty list.
If these methods require access to certain attributes of the interface objects, this is mentioned in the docs.
Parses an expression of one of the forms
$SYMBOL = $FORMULA $SYMBOL = $TRANSFORMATION $SYMBOL = $GROUP
Returns an instance of Math::SymbolicX::Calculator::Command::Assignment which assigns either a formula or a transformation(-group) when executed.
$self-calc()> and expects it to return the Calculator object. Uses the
This method parses expressions of the form
$SYMBOL =~ $SYMBOL2 $SYMBOL =~ $TRANSFORMATION $SYMBOL =~ $GROUP
$SYMBOL =~~ $SYMBOL2 (*) ... and so on ...
=~ operator stands for recursive application of the transformation whereas the
=~~ operator stands for shallow application.
These expressions generally stand for the application of the transformation given on the right to the function
$SYMBOL stands for. This method returns a
Math::SymbolicX::Calculator::Command::Transformation object on success or calls the
error() method and returns an empty list on failure.
This methods expects
$self-calc()> to return the Calculator object. It also uses the
Parses a string of the form:
$SYMBOL $GROUP $TRANSFORMATION
In case of
$SYMBOL, it accesses the Calculator symbol table to fetch the referenced Transformation. (And throws an error if it's not one.)
Returns a Math::Symbolic::Custom::Transformation object or calls the
error() method and returns the empty list on failure.
This method uses Parse::RecDescent. Expects the
calc() method to return the Calculator object. Uses the method
Parses a string of the form "pattern -> replacement", i.e. a simple
Math::Symbolic::Custom::Transformation object or the empty list on failure.
Steffen Müller, <email@example.com>
Copyright (C) 2006, 2013 by Steffen Mueller
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.6 or, at your option, any later version of Perl 5 you may have available.