<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">DESCRIPTION

    ESLIF is derived from perl's Marpa::R2, and has its own BNF, documented
    in MarpaX::ESLIF::BNF.

    The main features of this BNF are:

    Sub-grammars

      The number of sub grammars is unlimited.

    Regular expressions

      Native support of regular expression using the PCRE2
      &lt;http://www.pcre.org/&gt; library (i.e. this is &lt;not&gt; exactly perl
      regexps, although very closed).

    Streaming

      Native support of streaming input.

    Beginners might want to look at MarpaX::ESLIF::Introduction.

SYNOPSIS

      use MarpaX::ESLIF;
    
      my $eslif = MarpaX::ESLIF-&gt;new();
      printf "ESLIF library version: %s\n", $eslif-&gt;version;

    With a logger, using Log::Any::Adapter::Stderr as an example:

      use MarpaX::ESLIF;
      use Log::Any qw/$log/;
      use Log::Any::Adapter ('Stderr', log_level =&gt; 'trace' );
    
      my $eslif = MarpaX::ESLIF-&gt;new($log);
      printf "ESLIF library version: %s\n", $eslif-&gt;version;

    This class and its derivatives are thread-safe. Although there can be
    many ESLIF instance, in practice a single instance is enough, unless
    you want different logging interfaces. Once a MarpaX::ESLIF instance is
    created, the user should create a MarpaX::ESLIF::Grammar instance to
    have a working grammar.

METHODS

 MarpaX::ESLIF-&gt;new($loggerInterface)

      my $loggerInterface = My::Logger::Interface-&gt;new();
      my $eslif = MarpaX::ESLIF-&gt;new();

    Returns an instance of MarpaX::ESLIF, noted $eslif below.

    $loggerInterface is an optional parameter that, when its exists, must
    be an object instance that can do the methods documented in
    MarpaX::ESLIF::Logger::Interface, or undef.

    An example of logging implementation can be a Log::Any adapter.

 $eslif-&gt;version()

      printf "ESLIF library version: %s\n", $eslif-&gt;version;

    Returns a string containing the current underlying ESLIF library
    version.

NOTES

    The perl interface is an all-in-one version of marpaESLIF
    &lt;https://github.com/jddurand/c-marpaESLIF&gt; library, which means that
    character conversion is using iconv (or iconv-like on Windows) instead
    of ICU, even if the later is available on your system.

SEE ALSO

    MarpaX::ESLIF::Introduction, PCRE2 &lt;http://www.pcre.org/&gt;,
    MarpaX::ESLIF::BNF, MarpaX::ESLIF::Logger::Interface,
    MarpaX::ESLIF::Grammar, MarpaX::ESLIF::Recognizer.

</pre></body></html>