This module provides methods to compact javascript source down to just
what is needed. It can remove all comments, put everything on one line
(semi-)safely, and remove extra whitespace.
Marpa::PP is the pure Perl version of Marpa.
Marpa parses any language whose grammar can be written in BNF. That includes
recursive grammars, ambiguous grammars, infinitely ambiguous grammars and
grammars with useless or empty productions.
Marpa::XS is the XS version of Marpa.
Marpa parses any language whose grammar can be written in BNF. That includes
recursive grammars, ambiguous grammars, infinitely ambiguous grammars and
grammars with useless or empty productions.
Marpa parses any language whose grammar can be written in BNF. That includes
recursive grammars, ambiguous grammars, infinitely ambiguous grammars and
grammars with useless or empty productions.
Modern Perl programs use several modules to enable additional features of Perl
and of the CPAN.
This module provides the capability to parse a string at runtime as
Perl source code, so that the resulting compiled code can be later
executed. This is part of the job of the string form of the eval
operator, but in this module it is separated out from the other jobs
of eval. Parsing of Perl code is generally influenced by its lexical
context, and this module provides some explicit control over this
process, by reifying lexical environments as Perl objects.
Perl6::Subs is a source filter that adds a very useful subset of Perl
6 subroutine syntax to Perl 5. Given a subroutine defined with a Perl
6 prototype, the code generated by Perl6::Subs will, at runtime,
declare the formal parameters, assign them their values, and validate
their contents according to both built-in and user-given rules.
This module is an implementation of the "Promise/A+" pattern for
asynchronous programming. Promises are meant to be a way to
better deal with the resulting callback spaghetti that can often
result in asynchronous programs.
This module provides an implementation for Perl 6 Rules.
It is a front-end to several other modules:
* Pugs::Grammar::Rule parses the Rules syntax.
* Pugs::Grammar::Rule::Rule specifies the Rules syntax with Rules.
* Pugs::Emitter::Rule::Perl5 converts parsed Rules to Perl 5 code.
* Pugs::Runtime::Rule provides the runtime engine for Rules.
* Pugs::Runtime::Match represents a Match object.
The Quantum::Superpositions module adds two new operators to Perl: any and
all.
Each of these operators takes a list of values (states) and superimposes
them into a single scalar value (a superposition), which can then be
stored in a standard scalar variable.
The any and all operators produce two distinct kinds of superposition. The
any operator produces a disjunctive superposition, which may (notionally)
be in any one of its states at any time, according to the needs of the
algorithm that uses it.
In contrast, the all operator creates a conjunctive superposition, which
is always in every one of its states simultaneously.
Superpositions are scalar values and hence can participate in arithmetic
and logical operations just like any other type of scalar. However, when
an operation is applied to a superposition, it is applied (notionally) in
parallel to each of the states in that superposition.