rust 有没有办法使用Pest来要求强制空格?

7vhp5slm  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(209)

我在conlang的基础上编写了esolang,它不可避免地包含空格分隔的单词。与使用符号的常规编程语言相反,这意味着我最终需要在几乎每一个标记之间强制使用空格。这使得语法更难读、写、发展和维护;有没有一种聪明的方法可以强制使用空格?2就像~操作符的重载一样?
TL;DR我喜欢用一种简洁的方式来表达类似这样的东西:

WHITESPACE = ...
a = { "a" }
b = { "b" }
rule = [modifier]{ a ~ b }

这将匹配a ba b,但不匹配ab

cwtwac6a

cwtwac6a1#

您可以使用Pest的原子规则来防止隐式空白并手动处理它:

rule = @{ a ~ WHITESPACE+ ~ b }
a = { "a" }
b = { "b" }
WHITESPACE = _{ " " | "\t" }

相关问题