NAME
MarpaX::Languages::ECMAScript::AST::Grammar::Base - ECMAScript, grammars base package
VERSION
version 0.003
SYNOPSIS
use strict;
use warnings FATAL => 'all';
use MarpaX::Languages::ECMAScript::AST::Grammar::Base;
my $grammar = MarpaX::Languages::ECMAScript::AST::Grammar::Base->new("grammar", "My::Package", "ECMAScript_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 ECMAScript grammars written in Marpa BNF.
SUBROUTINES/METHODS
new($grammar, $package, $spec)
Instance a new object. Takes a grammar, a package name and an ECMAScript 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, $source, [$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::ECMAScript::AST::Grammar. The callback code will always be called with: per-callback arguments, $source, $pos (i.e. current position), $max (i.e. max position), $impl (i.e. a MarpaX::Languages::ECMAScript::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):
- start
-
Start position
- length
-
Length
Lexeme value
Returns a true value if a lexeme pause information is available.
SEE ALSO
MarpaX::Languages::ECMAScript::AST::Impl
MarpaX::Languages::ECMAScript::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 404:
Unknown directive: =value
- Around line 426:
Unknown directive: =value