我被 Raku 所吸引是因为它的内置语法,并认为我会玩弄它并编写一个简单的电子邮件地址解析器,唯一的问题是:我无法让它工作。
在找到真正有效的东西之前,我尝试了无数次迭代,但我很难理解为什么。
它归结为,正在更改token为rule。
这是我的示例代码:
grammar Email {
token TOP { <name> '@' [<subdomain> '.']* <domain> '.' <tld> }
token name { \w+ ['.' \w+]* }
token domain { \w+ }
token subdomain { \w+ }
token tld { \w+ }
}
say Email.parse('foo.bar@baz.example.com');
Run Code Online (Sandbox Code Playgroud)
不起作用,它只是打印Nil,但是
grammar Email {
rule TOP { <name> '@' [<subdomain> '.']* <domain> '.' <tld> }
token name { \w+ ['.' \w+]* }
token domain { \w+ }
token subdomain …Run Code Online (Sandbox Code Playgroud)