我如何更好地理解 SmaCC 如何在正则表达式中使用 'isMethod' 功能?
How do i better understand how SmaCC uses the 'isMethod' functionality in regular expressions?
我不清楚 SmaCC 正则表达式中的 'isMethod' 支持。
这两个来源基本上说的是同一件事
- https://files.pharo.org/books-pdfs/booklet-Smacc/2017-10-29-Smacc.pdf
- http://www.refactoryworkers.com/SmaCC/Scanner.html
<isMethod> Copies the characters where Character>>isMethod returns true into
the current regular expression. For example, instead of using \d, we could use
<isDigit> since Character>>isDigit returns true for digits.
没有太多要继续的,所以我有几个问题:
- 这是否意味着我可以使用 isWhitespace、isNotWhitespace 等? (我怎么知道名字的?)
- 这是否意味着我可以使用自己的代币? (比如 isVariable,isMultiLineComment 如果我定义这些?)
- 有什么好的地方可以让我更好地理解这个吗?
感谢您的宝贵时间
GToolkit Discord 是解决这个问题的更好地方,因为其中一位原作者在那里闲逛
诚然,评论可以更清楚一些,但从它的示例开始 - #isDigit
- 图像中只有一个实现者:Character
。因此,可能的意思是您可以将 Character
理解的任何消息放在括号中。
回答您的具体问题:
你不能使用#isWhitespace
因为没有这样的消息,但是#isSeparator
似乎可以使用
您通过探索 Character
了解可用名称,例如在浏览器中。
是的,您可以通过在 Character
(或其超类)
中实现它们来使用您自己的标记
正如@Stephan Eggermont 所建议的,GT 的 Discord 是一个提问的好地方。 Pharo ML 和 Discord 通常很有帮助,像这样的问题很可能在那里很容易得到解答,但随着您深入研究 Smacc,您会发现专家越来越少,而且 GT 社区目前大量使用 Smacc。
我不清楚 SmaCC 正则表达式中的 'isMethod' 支持。
这两个来源基本上说的是同一件事
- https://files.pharo.org/books-pdfs/booklet-Smacc/2017-10-29-Smacc.pdf
- http://www.refactoryworkers.com/SmaCC/Scanner.html
<isMethod> Copies the characters where Character>>isMethod returns true into
the current regular expression. For example, instead of using \d, we could use
<isDigit> since Character>>isDigit returns true for digits.
没有太多要继续的,所以我有几个问题:
- 这是否意味着我可以使用 isWhitespace、isNotWhitespace 等? (我怎么知道名字的?)
- 这是否意味着我可以使用自己的代币? (比如 isVariable,isMultiLineComment 如果我定义这些?)
- 有什么好的地方可以让我更好地理解这个吗?
感谢您的宝贵时间
GToolkit Discord 是解决这个问题的更好地方,因为其中一位原作者在那里闲逛
诚然,评论可以更清楚一些,但从它的示例开始 - #isDigit
- 图像中只有一个实现者:Character
。因此,可能的意思是您可以将 Character
理解的任何消息放在括号中。
回答您的具体问题:
你不能使用
#isWhitespace
因为没有这样的消息,但是#isSeparator
似乎可以使用您通过探索
Character
了解可用名称,例如在浏览器中。是的,您可以通过在
中实现它们来使用您自己的标记Character
(或其超类)正如@Stephan Eggermont 所建议的,GT 的 Discord 是一个提问的好地方。 Pharo ML 和 Discord 通常很有帮助,像这样的问题很可能在那里很容易得到解答,但随着您深入研究 Smacc,您会发现专家越来越少,而且 GT 社区目前大量使用 Smacc。