Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
t
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Grammar message

inspired by [Grammar::PrettyErrors](https://github.com/bduggan/p6-grammar -prettyerrors), and ripping off the code used there for printing messages , prints error messages highlighting the line and, if possible, the position where it last worked.

Installing

zef install Grammar::Message

Running

my $str = (('a'..'z').rotor(3).map: *.join("")).join("\n");
my $saved-match; # Saves in situ
$str ~~ / m { $saved-match = $/} /; # Code right behind match you need printed
say pretty-message( "Found", $saved-match);

Will print

Found
  3 │ ghi
  4 │ jkl
  5 │▶ mno
        ^
  6 │ pqr
  7 │ stu
  8 │ vwx

with highlights for the matching line.

$str .= subst( "m", "mm" );
G.parse( $str );
say pretty-message( "Some failure around here", $saved-match);

will print

Some failure around here
  4 │ jkl
  5 │ mmno
  6 │▶ pqr
     ^
  7 │ stu
  8 │ vwx

Take into account that the point will always be the best bet, and in any case it will reflect the state of the pos attribute of the Match at the point you saved it.

See also

Original code by Brian Duggan in Grammar::PrettyErrors is the origin of this code.

License

Respecting the original code license, this is also licensed under the Artistic license (included).

About

Create colorful messages to indicate what's wrong in a grammar rule

Resources

License

Releases

No releases published

Packages

No packages published

Languages

You can’t perform that action at this time.