BSD Ports

math/p5-Math-SymbolicX-ParserExtensionFactory 3.02_1 FreeBSD

Generate parser extensions

System
FreeBSD
Repository
FreeBSD ports
Maintainer
[email protected]
Categories
math, perl5
Package size
7.4 KiB, 12.0 KiB installed

Description

This module provides a simple way to extend the Math::Symbolic parser with arbitrary functions that return any valid Math::Symbolic tree. The return value of the function call is inserted into the complete parse tree at the point at which the function call is parsed. Familiarity with the Math::Symbolic module will be assumed throughout the documentation.

This module is not object oriented. It does not export anything. You should not call any subroutines directly nor should you modify any class data directly. The complete interface is the call to use Math::SymbolicX::ParserExtensionFactory and its arguments. The reason for the long module name is that you should not have to call it multiple times in your code because it modifies the parser for good. It is intended to be a pain to type. :-)

The aim of the module is to allow for hooks into the parser without modifying the parser yourself because that requires rather in-depth knowledge of the module code. By specifying key => value pairs of function names and function implementations (code references) as arguments to the use() call of the module, this module extends the parser that is stored in the $Math::Symbolic::Parser variable with the specified functions and whenever "yourfunction(any argument string not containing an unescaped \) )" occurs in the code, the subroutine reference is called with the argument string as argument.

The subroutine is expected to return any Math::Symbolic tree. That means, as of version 0.133, a Math::Symbolic::Operator, a Math::Symbolic::Variable, or a Math::Symbolic::Constant object. The returned object will be incorporated into the Math::Symbolic tree that results from the parse at the exact position at which the custom function call was parsed.

Please note that the usage of this module will be quite slow at compile time because it has to regenerate the complete Math::Symbolic parser the first time you use this module in your code. The run time performance penalty should be low, however.

In the other systems

SystemPortVersion
FreeBSDmath/p5-Math-SymbolicX-ParserExtensionFactory3.02_1
OpenBSDmath/p5-Math-SymbolicX-ParserExtensionFactory3.02p0
DragonFlymath/p5-Math-SymbolicX-ParserExtensionFactory3.02_1

Install

Binary package:

pkg install p5-Math-SymbolicX-ParserExtensionFactory

From the ports tree:

cd /usr/ports/math/p5-Math-SymbolicX-ParserExtensionFactory/ && make install clean

To depend on this port in another port's Makefile:

RUN_DEPENDS=	p5-Math-SymbolicX-ParserExtensionFactory>0:math/p5-Math-SymbolicX-ParserExtensionFactory

Packages

The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.

Repositoryaarch64amd64armv6armv7i386
FreeBSD:14:latest3.02_13.02_13.02_13.02_13.02_1
FreeBSD:14:quarterly3.02_13.02_1n/a3.02_13.02_1
FreeBSD:15:latest3.02_13.02_1n/a3.02_13.02_1
FreeBSD:15:quarterly3.02_13.02_1n/an/an/a
FreeBSD:16:latest3.02_13.02_1n/an/an/a
FreeBSD:16:quarterlyn/an/an/an/an/a

Dependencies

As this port's Makefile names them.

Build 1

Runtime 1

The full lists below include those, and their dependencies in turn.

Build dependencies 3
Run dependencies 3

Configuration

No options to configure.

USES
perl5
Service scripts
none

Files

pkg-plist 2
  • %%PERL5_MAN3%%/Math::SymbolicX::ParserExtensionFactory.3.gz
  • %%SITE_PERL%%/Math/SymbolicX/ParserExtensionFactory.pm
distinfo 1
FileSizeSHA256
Math-SymbolicX-ParserExtensionFactory-3.02.tar.gz629894323a58dc19805e68d3e59c0750d337397456e98d0db4a342bfe5a80bef020f
Master sites 1
  • CPAN

Commit history 0

No commits in the history this site was built from.