File: demo_pos.pl

package info (click to toggle)
libregexp-grammars-perl 1.058-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,328 kB
  • sloc: perl: 53,328; makefile: 2
file content (32 lines) | stat: -rw-r--r-- 528 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#! /usr/bin/perl

use strict;
use warnings;
use 5.010;
use Regexp::Grammars;

my $grammar = qr{

    <delimited_text>

    <token: delimited_text>
        qq? <delim> <text=(.*?)> </delim>
    |   <matchpos> qq? <delim>
        <error: (?{"Unterminated string starting at index $MATCH{matchpos}"})>

    <token: delim>  [[:punct:]]++

}x;

use IO::Prompter;

while (my $input = prompt) {
    if ($input =~ $grammar) {
        use Data::Show;
        show %/;
    }
    else {
        say 'Failed: ';
        say for @!;
    }
}