1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-19 19:59:43 +00:00

Adding port math/p5-Math-SymbolicX-ParserExtensionFactory, Generate parser extensions

Approved by:	tobez (implicit)
This commit is contained in:
Aaron Dalton 2006-05-15 06:53:27 +00:00
parent 2d627f9f28
commit 1c588756cc
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=162408
5 changed files with 80 additions and 0 deletions

View File

@ -193,6 +193,7 @@
SUBDIR += p5-Math-Symbolic-Custom-CCompiler
SUBDIR += p5-Math-Symbolic-Custom-Contains
SUBDIR += p5-Math-SymbolicX-Inline
SUBDIR += p5-Math-SymbolicX-ParserExtensionFactory
SUBDIR += p5-Math-TrulyRandom
SUBDIR += p5-Math-Vec
SUBDIR += p5-Math-VecStat

View File

@ -0,0 +1,31 @@
# New ports collection makefile for: Math-SymbolicX-ParserExtensionFactory
# Date created: 15 May 2006
# Whom: Aaron Dalton <aaron@FreeBSD.org>
#
# $FreeBSD$
#
PORTNAME= Math-SymbolicX-ParserExtensionFactory
PORTVERSION= 1.00
CATEGORIES= math perl5
MASTER_SITES= ${MASTER_SITE_PERL_CPAN}
MASTER_SITE_SUBDIR= Math
PKGNAMEPREFIX= p5-
MAINTAINER= aaron@FreeBSD.org
COMMENT= Generate parser extensions
BUILD_DEPENDS= ${SITE_PERL}/Math/Symbolic.pm:${PORTSDIR}/math/p5-Math-Symbolic
RUN_DEPENDS= ${BUILD_DEPENDS}
MAN3= Math::SymbolicX::ParserExtensionFactory.3
PERL_CONFIGURE= yes
.include <bsd.port.pre.mk>
.if ${PERL_LEVEL} < 500600
IGNORE= requires at least Perl 5.6 due to dependencies. Please install lang/perl5.8 and try again
.endif
.include <bsd.port.post.mk>

View File

@ -0,0 +1,3 @@
MD5 (Math-SymbolicX-ParserExtensionFactory-1.00.tar.gz) = f9f9cd7ed2e65c3378824833320b4512
SHA256 (Math-SymbolicX-ParserExtensionFactory-1.00.tar.gz) = d6343cc4260f0bf6e52a31f97030fe0faa7ea25a1cc33d0a1754968f1e3d38e3
SIZE (Math-SymbolicX-ParserExtensionFactory-1.00.tar.gz) = 5481

View File

@ -0,0 +1,38 @@
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.
WWW: http://search.cpan.org/dist/Math-SymbolicX-ParserExtensionFactory
Author: Steffen Mueller <symbolic-module@steffen-mueller.net>

View File

@ -0,0 +1,7 @@
%%SITE_PERL%%/Math/SymbolicX/ParserExtensionFactory.pm
%%SITE_PERL%%/%%PERL_ARCH%%/auto/Math/SymbolicX/ParserExtensionFactory/.packlist
@dirrm %%SITE_PERL%%/%%PERL_ARCH%%/auto/Math/SymbolicX/ParserExtensionFactory
@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/Math/SymbolicX
@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/Math
@dirrmtry %%SITE_PERL%%/Math/SymbolicX
@dirrmtry %%SITE_PERL%%/Math