MarpaX::ESLIF::Symbol - MarpaX::ESLIF's symbol
version 4.0.1
use MarpaX::ESLIF; my $eslif = MarpaX::ESLIF->new(); my $stringSymbol = MarpaX::ESLIF::Symbol->new($eslif, type => 'string', pattern => '"String Pattern"'); # # In ESLIF, a regex is anchored by default # my $regexSymbol = MarpaX::ESLIF::Symbol->new($eslif, type => 'regex', pattern => 'Regex.*Pattern', modifiers => 'A'); if (defined(my $match = $stringSymbol->try('String Pattern here'))) { print "==> String match: $match\n"; } if (defined(my $match = $regexSymbol->try('Should match Regex etc Pattern in there'))) { print "==> Regex match: $match\n"; }
External symbols can be of type string or regex. They can be used agains a MarpaX::ESLIF::Recognizer or any external input.
string
regex
A string pattern must follow ESLIF)s BNF, i.e. start and ends with:
'
"
“
”
MarpaX::ESLIF::Symbol allows to create external symbols on demand
Returns a symbol instance, noted $symbol later. %options is a hash that contains:
$symbol
%options
type
Value must be "string" or "regex". Required.
pattern
Value is the pattern content. Required.
encoding
Value is the pattern encoding. Optional.
modifiers
Value is a string containing modifiers. Optional.
It must follow the specification of the Terminals section of MarpaX::ESLIF::BNF:
---------------------------------------------------------------- Modifiers Explanation ---------------------------------------------------------------- e Unset back-references in the pattern will match to empty strings i Case-insensitive j \u, \U and \x and unset back-references will act as JavaScript standard m Multi-line regex n Enable Unicode properties and extend meaning of meta-characters s A dot meta-character in the pattern matches all characters, including newlines x Enable comments. This has some limitation due marpaESLIF semantics D A dollar meta-character matches only at the end of the subject string J Allow duplicate names for sub-patterns U Inverts the "greediness" of the quantifiers a Meta-characters will be limited to their ASCII equivalent u Forces support of large codepoints b Could mean "forced binary" mode c Could mean "forced unicode character" mode A Remove the systematic anchoring ----------------------------------------------------------------
Note that a string pattern accepts only the i and c modifiers.
i
c
Try to match the external symbol $symbol on $scalar, that can be anything. Return undef if failure, the matched string if success.
$scalar
undef
MarpaX::ESLIF, MarpaX::ESLIF::Recognizer
Jean-Damien Durand <jeandamiendurand@free.fr>
This software is copyright (c) 2017 by Jean-Damien Durand.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install MarpaX::ESLIF, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MarpaX::ESLIF
CPAN shell
perl -MCPAN -e shell install MarpaX::ESLIF
For more information on module installation, please visit the detailed CPAN module installation guide.