examples.perl6.org/categories/parsers/SimpleString

Run Settings
LanguageRaku
Language Version
Run Command
# Perl 6 Example from: https://examples.perl6.org/categories/parsers/SimpleStrings.html use v6; grammar String::Simple::Grammar { rule TOP {^ <string> $} # Note for now, {} gets around a rakudo binding issue token string { <quote> {} <quotebody($<quote>)> $<quote> } token quote { '"' | "'" } token quotebody($quote) { ( <escaped($quote)> | <!before $quote> . )* } token escaped($quote) { '\\' ( $quote | '\\' ) } } # The parse-tree builder ultimately returns the string itself. class String::Simple::Actions { method TOP($/) { make $<string>.made } method string($/) { make $<quotebody>.made } method quotebody($/) { make [~] $0.map: {.<escaped>.made or ~$_} } method escaped($/) { make ~$0 } } # Here is a sample string: my $sample = q{"This is a quote"}; my $result = String::Simple::Grammar.parse: $sample; # parse it say $result.gist; # A more complicated sample: '\'' $sample = "'\\\''"; $result = String::Simple::Grammar.parse: $sample; # parse it say $result.gist;
Editor Settings
Theme
Key bindings
Full width
Lines