2 # A helper class for parsing textual JSON structures into perl
5 # The parser is in JSONNospace.yp, to regenerate you'll need the Parse::YAPP
6 # package. Use 'yapp -m videosite::JSONNospace -s JSONNospace.yp' to regenerate
9 package videosite::JSLexArrayParser;
11 use videosite::JSArrayParser;
12 @ISA = qw(videosite::JSArrayParser);
15 use videosite::JSONNospace;
22 SINGLEQUOTE => '\\\'',
26 QUADHEX => 'u[0-9a-fA-F]{4}',
28 QUOTEDNORMAL => '[nr]',
29 SIMPLECHAR => '[-\w\._\?\+=\&\!%<>;\#]+',
42 my $self = $class->SUPER::new();
44 $self->{'_PARSER'} = videosite::JSONNospace->new();
45 $self->{'_LEXER'} = Parse::Lex->new(@tokens);
46 $self->{'_PARAMS'} = \%params;
48 return bless($self, $class);
55 my $l = $self->{'_LEXER'};
58 $result = $self->{'_PARSER'}->YYParse(
61 return ('', undef) unless $tok;
62 return ('', undef) if $l->eoi();
63 print STDERR $tok->text(), "\n" if (exists($self->{'_PARAMS'}->{'debug'}) and ($self->{'_PARAMS'}->{'debug'} > 0));
64 return ($tok->name(), $tok->text());
69 yydebug => (exists($self->{'_PARAMS'}->{'debug'})?$self->{'_PARAMS'}->{'debug'}:0x0));
70 return ref($result)?$result->[0]:$result;