perl6 – Perl 6的其他问题是否是一个特殊的声明分离案例?
从
syntax doc:
if True { say "Hello"; } say "world"; 这很好,Why is this Perl 6 feed operator a “bogus statement”?发生了什么. 但是,这条规则对于一个不受约束的其他人如何运作?这是一个特例吗? if True { say "Hello"; } else { say "Something else"; } say "world"; 或者, my $s = "abc"; with $s.index("a") { say "Found a at $_" } orwith $s.index("b") { say "Found b at $_" } orwith $s.index("c") { say "Found c at $_" } else { say "Didn't find a,b or c" } 解决方法
您找到的文档并不完全正确.
documentation has been updated and is now correct.它现在写着:
原始答案: 查看if在 在nqp中if的规则 rule statement_control:sym<if> { <sym>s <xblock> [ 'elsif's <xblock> ]* [ 'else's <else=.pblock> ]? } (https://github.com/perl6/nqp/blob/master/src/NQP/Grammar.nqp#L243,截至2017年8月5日) 在Rakudo的if规则 rule statement_control:sym<if> { $<sym>=[if|with]<.kok> {} <xblock(so ~$<sym>[0] ~~ /with/)> [ [ | 'else'h*'if' <.typed_panic: 'X::Syntax::Malformed::Elsif'> | 'elif' { $/.typed_panic('X::Syntax::Malformed::Elsif',what => "elif") } | $<sym>='elsif' <xblock> | $<sym>='orwith' <xblock(1)> ] ]* {} [ 'else' <else=.pblock(so ~$<sym>[-1] ~~ /with/)> ]? } (截至2017年8月5日https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Grammar.nqp#L1450) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |