NAME
ABNF::Generator - abstract base class for ABNF-based generators
INHERITANCE
ABNF::Generator is the root of the Honest and Liar generators
DESCRIPTION
ABNF::Generator is the abstract base class for ABNF-based generators.
Also it provides function asStrings to stringified generated sequences
METHODS
ABNF::Generator->new
($grammar, $validator?)
Creates a new ABNF::Generator object.
$grammar isa ABNF::Grammar.
$validator isa ABNF::Validator.
Children classes can get acces for them by $self->{_grammar} and $self->{_validator}
$generator->_range
($rule, $recursion)
Generates chain for range element.
Abstract method, most of all children must overload it.
$recursion is a structure to controle recursion depth.
$generator->_string
($rule, $recursion)
Generates chain for string element.
Abstract method, most of all children must overload it
$recursion is a structure to controle recursion depth.
$generator->_literal
($rule, $recursion)
Generates chain for literal element.
Abstract method, most of all children must overload it
$recursion is a structure to controle recursion depth.
$generator->_repetition
($rule, $recursion)
Generates chain for repetition element.
Abstract method, most of all children must overload it
$recursion is a structure to controle recursion depth.
$generator->_reference
($rule, $recursion)
Generates chain for reference element.
Abstract method, most of all children must overload it
$recursion is a structure to controle recursion depth.
$generator->_group
($rule, $recursion)
Generates chain for group element.
Abstract method, most of all children must overload it
$recursion is a structure to controle recursion depth.
$generator->_choice
($rule, $recursion)
Generates chain for choce element.
Abstract method, most of all children must overload it
$recursion is a structure to controle recursion depth.
$generator->_rule
($rule, $recursion)
Generates chain for rule element, usually -- basic element in chain.
Abstract method, most of all children must overload it
$recursion is a structure to controle recursion depth.
$generator->_generateChain
($rule, $recursion)
Generates one chain per different rule in $rule.
$rule is structure that Return from ABNF::Grammar::rule and like in Parse::ABNF.
$rule might be a command name.
$recursion is a structure to controle recursion depth.
at init it have only one key -- level == 0.
You can create new object perl call or use one.
See use example in ABNF::Generator::Honest in method _choice
$generator->generate
($rule, $tail="")
Generates one sequence string for command $rule.
Using cache $self->{_cache}->{$rule} for this rule, that speeds up this call.
$rule is a command name.
$tail is a string added to result if it absent.
dies if there is no command like $rule.
$generator->withoutArguments
($name, $tail="")
Return an strings starts like command $name and without arguments.
$tail is a string added to a result.
dies if there is no command like $rule.
$generator->hasCommand
($name)
Return 1 if there is a $name is command, 0 otherwise
FUNCTIONS
_asStrings
($generated)
Return stringification of genereted sequences from _generateChain
.
Uses in generate call to stringify chains.
AUTHOR / COPYRIGHT / LICENSE
Copyright (c) 2013 Arseny Krasikov <nyaapa@cpan.org>.
This module is licensed under the same terms as Perl itself.