The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

MarpaX::Languages::ECMA::AST::Grammar::Base - ECMA, grammars base package

VERSION

version 0.001

SYNOPSIS

    use strict;
    use warnings FATAL => 'all';
    use MarpaX::Languages::ECMA::AST::Grammar::Base;

    my $grammar = MarpaX::Languages::ECMA::AST::Grammar::Base->new("grammar", "My::Package", "ECMA_262_5");

    my $grammar_content = $grammar->content();
    my $grammar_option = $grammar->grammar_option();
    my $recce_option = $grammar->recce_option();

DESCRIPTION

This modules returns a base package for all the ECMA grammars written in Marpa BNF.

SUBROUTINES/METHODS

new($grammar, $package, $spec)

Instance a new object. Takes a grammar, a package name and an ECMA specification as required parameters.

strict($self, [$strict])

Sets/Returns the strict mode of the grammar.

content($self)

Returns the content of the grammar.

extract($self)

Returns the part of the grammar that can be safely extracted and injected in another.

grammar_option($self)

Returns recommended option for Marpa::R2::Scanless::G->new(), returned as a reference to a hash.

recce_option($self)

Returns recommended option for Marpa::R2::Scanless::R->new(), returned as a reference to a hash.

parse($self, $sourcep, [$optionsp], [$start], [$length])

Parse the source given as reference to a scalar, an optional reference to a options that is a hash that can contain:

callbackargsp

Callbak Code Reference

callbackargs

Reference to an array of Callback Code Reference first arguments

failure

Failure callback Code Reference

failureargs

Reference to an array of Failure callback Code Reference first arguments

end

End callback Code Reference

endargs

Reference to an array of End callback Code Reference first arguments

This method must be called as a super method by grammar using this package as a parent. $self must be a reference to a grammar instantiated via MarpaX::Languages::ECMA::AST::Grammar. The callback code will always be called with: per-callback arguments, $sourcep, $pos (i.e. current position), $max (i.e. max position), $impl (i.e. a MarpaX::Languages::ECMA::AST::Impl instance). The default and failure callbacks must always return the new position in the stream, and croak if there is an error. In the 'end' and 'failure' callbacks, $pos is not meaningful: this is the last position where external scanning restarted. You might want to look to the getLastLexeme() method. Output of the 'end' callback is ignored.

value($self, $impl)

Return the blessed value. $impl is the recognizer instance for the grammar. Will croak if there is more than one parse tree value.

getLexeme($self, $lexemeHashp, $impl)

Fills a hash with latest paused lexeme:

name

Lexeme name

start

Start position

length

Length

line

Line number as per Marpa

column

Column number as per Marpa

Lexeme value

Returns a true value if a lexeme pause information is available.

getLastLexeme($self, $lexemeHashp, $impl)

Fills a hash with latest lexeme (whatever it is, its name is unknown):

name

undef value

start

Start position

length

Length

line

Line number as per Marpa

column

Column number as per Marpa

Lexeme value

Returns a true value if a lexeme pause information is available.

SEE ALSO

MarpaX::Languages::ECMA::AST::Impl

MarpaX::Languages::ECMA::AST::Util

AUTHOR

Jean-Damien Durand <jeandamiendurand@free.fr>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 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.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 403:

Unknown directive: =value

Around line 437:

Unknown directive: =value