Group
Extension

Matches 6

JBD ( J/JB/JBD/JBD-0.04.tar.gz, JBD, 2014; MetaCPAN )
JBD/lib/JBD/JSON.pm ( view source; MetaCPAN )
package JBD::JSON;
# ABSTRACT: provides JSON parsing subs
our $VERSION = '0.04'; # VERSION

# JSON parsing subs.
# @author Joel Dalley
# @version 2014/Mar/22

use JBD::Core::Exporter ':omni';

use JBD
ser::DSL;
use JBD::JSON::Lexers;
use JBD::JSON::Grammar;
use JBD::JSON::Transformers 'remove_novalue';

# @param string $parser A JBD::Parser sub name.
# @param scalar/ref $text JSON text.
# @return a
t json_array  => \&remove_novalue,
         json_object => \&remove_novalue;

    my $st = parser_state tokens $text, [
        JsonNum,        JsonQuote,      JsonComma,
        JsonColon,      JsonC
JBD ( J/JB/JBD/JBD-0.04.tar.gz, JBD, 2014; MetaCPAN )
JBD/lib/JBD/JSON/Lexers.pm ( view source; MetaCPAN )
package JBD::JSON::Lexers;
# ABSTRACT: JSON lexers
our $VERSION = '0.04'; # VERSION

# JSON Lexers.
# @author Joel Dalley
# @version 2014/Mar/22

use JBD::Core::Exporter;
use JBD::Parser::DSL;

our @E
XPORT = qw(
    JsonSpace JsonNum JsonNull JsonBool 
    JsonSquareBracket JsonCurlyBrace 
    JsonColon JsonComma JsonQuote JsonStringChar 
    JsonEscapeSeq UnicodeEscapeSeq JsonEscapeChar 
    );

  || hex "0x$1" < 0 
               || hex "0x$1" > 0x001F; $1;
    }, 'UnicodeEscapeSeq';
}

sub JsonEscapeChar { 
    bless sub {
        my $chars = shift;
        return unless length $chars;

   
JBD ( J/JB/JBD/JBD-0.04.tar.gz, JBD, 2014; MetaCPAN )
JBD/lib/JBD/JSON/Grammar.pm ( view source; MetaCPAN )
ckage JBD::JSON::Grammar;
# ABSTRACT: a JSON grammar
our $VERSION = '0.04'; # VERSION

# A JSON grammar.
# @author Joel Dalley
# @version 2014/Mar/18

use JBD::Core::Exporter;

use JBD::JSON::Transfor
'reduce_JsonString';
use JBD::JSON::Lexers;
use JBD::Parser::DSL;

our @EXPORT = qw(
    init json_space
    json_member_list json_element_list
    json_bool_literal json_null_literal
    json_escape_
char json_escape_seq
    json_string_char star_string_char
    json_member json_object json_string
    json_array json_value json_text
    );


#///////////////////////////////////////////////////////
JBD ( J/JB/JBD/JBD-0.04.tar.gz, JBD, 2014; MetaCPAN )
JBD/lib/JBD/JSON/Transformers.pm ( view source; MetaCPAN )
package JBD::JSON::Transformers;
# ABSTRACT: JSON parser token transformers
our $VERSION = '0.04'; # VERSION

# JSON parser token transformers.
# @author Joel Dalley
# @version 2014/Mar/22

use JBD::C
ore::Exporter ':omni';
use JBD::Parser::DSL;
use JBD::JSON::Lexers;

# @param arrayref Array of JBD::Parser::Tokens.
# @return arrayref Same array, minus Nothing-type tokens.
sub remove_novalue { 
   
::Parser::Tokens.
# @return arrayref A single JsonString-typed token array.
sub reduce_JsonString {
    my $tokens = remove_novalue shift;
    [token 'JsonString', join '', map $_->value, @$tokens];
}
JBD ( J/JB/JBD/JBD-0.04.tar.gz, JBD, 2014; MetaCPAN )
JBD/lib/JBD.pm ( view source; MetaCPAN )
re>.

The JBD namespace also contains lexing, parsing and grammar tools.

For JSON tokenizing and parsing, see L<JBD::JSON>.

For general parsing tools, see L<JBD::Parser>.

=head1 AUTHOR

Joel Dalley
JBD ( J/JB/JBD/JBD-0.04.tar.gz, JBD, 2014; MetaCPAN )
JBD/lib/JBD/JSON/bin/grammar.pl ( view source; MetaCPAN )
:JSON 'std_parse';

# Optionally specify a single json_corpus file to test.
# If no argument, then all inline & corpus tests run.
my $file = shift;

# Inline tests.
my @cfg = $file ? () : (
    [json_
space        => ' '],
    [json_escape_seq   => '\\"'],
    [json_null_literal => 'null'],
    [json_bool_literal => 'true'],
    [json_bool_literal => 'false'],
    [json_string_char  => 'chars'],
  
  [json_string       => qq|"This. Is\na string?\r\f"|],
    [json_member_list  => '"nada":null'],
    [json_element_list => 'true, false, null, 1, 2'],
    [json_array        => '[1, 2]'],
    [json_m

Powered by Groonga
Maintained by Kenichi Ishigaki <ishigaki@cpan.org>. If you find anything, submit it on GitHub.