|
|
1
1
这个问题有点棘手,因为您提供了一个示例语法定义和一些Smalltalk源代码的示例,但是提供的代码没有用提供的语法突出显示,因为它的结构不正确。 在这里,我们假设您提供的Smalltalk示例如下这可能是有效的,也可能是无效的(我已经很长时间没有使用smalltalk了),但是它突出显示了您的语法,所以让我们调用它来进行测试。
您在上面提供的语法匹配是正确的,所以我猜您的问题在于您在语法中的位置。
因此,假设在语法定义中有不止一个地方需要匹配这些c块中的一个;在这种情况下,我们可能需要创建一个新的
这是与上面提供的相同的摘录,但放在上下文中因此,假设第一个出现这样一个块的地方是在块体中你有一个
但是,这并没有达到预期的结果;突出显示不正确:
很明显,至少从c注释开始,可能更早,突出显示就出错了。如果你使用
它看起来也像
所以在现实中,现在的问题是上面的定义已经就位,而不是
如果你看看你的语法
这些规则说当我们看到一条以
匿名上下文包含在看到关闭时弹出的规则
当你
此外,当
范围
因此这里的问题是
解决方法是移动
在这个位置上,块的突出显示更像我们所期望的:
|
|
|
ludo · 我们如何使用法罗的每一种方法? 8 年前 |
|
|
patzi · 理解smalltalk中奇怪的逻辑运算符 8 年前 |
|
|
patzi · 如何在Smalltalk中操作位? 8 年前 |
|
|
patzi · 了解GNU Smalltalk闭包 8 年前 |
|
|
Hutch · Pragmas的工作方式似乎和我在海边预期的不同 8 年前 |
|
|
Diana · Pharo Smalltalk中的For循环For数组 9 年前 |
|
|
nickwalt · 初级程序员-是从ES5还是ES6开始[已关闭] 9 年前 |