Skip to content

Instantly share code, notes, and snippets.

@whitten
Forked from jddurand/literal.pl
Created March 20, 2016 05:29
Show Gist options
  • Save whitten/3a58a013a8c4a3a3681e to your computer and use it in GitHub Desktop.
Save whitten/3a58a013a8c4a3a3681e to your computer and use it in GitHub Desktop.
Marpa literal() and UTF8 flag
#!env perl
use strict;
use diagnostics;
use Marpa::R2;
use Devel::Peek;
my $grammar_source = do {local $/; <DATA>};
my $input = "\x{2665}";
print "INPUT:\n--------------------\n";
Dump($input);
my $grammar = Marpa::R2::Scanless::G->new({ source => \$grammar_source});
my $re = Marpa::R2::Scanless::R->new( { grammar => $grammar } );
$re->read(\$input);
my ($start, $length) = $re->g1_location_to_span($re->current_g1_location());
my $char = $re->literal($start, $length);
print "recce->literal\n--------------------\n";
Dump($char);
print "recce->range_to_string\n--------------------\n";
my $test = $re->range_to_string($re->last_completed_range('test'));
Dump($test);
__DATA__
:start ::= test
test ::= char
char ~ [\x{2665}]
:lexeme ~ <char> pause => after event => 'char'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment