以下 Raku 脚本:
#!/usr/bin/env raku
use v6.d;
grammar MyGrammar
{
rule TOP { <keyword> '=' <value> }
token keyword { \w+ }
token value { <strvalue> | <numvalue> }
token strvalue { '"' <( <-["]>* )> '"' }
token numvalue { '-'? \d+ [ '.' \d* ]? }
}
say MyGrammar.parse('foo = 42');
say MyGrammar.parse('bar = "Hello, World!"');
Run Code Online (Sandbox Code Playgroud)
有以下输出:
?foo = 42?
keyword => ?foo?
value => ?42?
numvalue => ?42?
?bar = "Hello, World!"?
keyword => ?bar?
value => …Run Code Online (Sandbox Code Playgroud)