gpt4 book ai didi

operator-overloading - 添加新的赋值运算符

转载 作者:行者123 更新时间:2023-12-04 05:16:47 27 4
gpt4 key购买 nike

我开始使用 smalltalk,我正在尝试添加一个新的赋值运算符 :> .

pharo 中使用的当前运算符不是选择器,所以我开始查看下划线 _ 的类 Scanner可以为分配启用。我试图以类似的方式做到这一点,但没有奏效。

您对我如何实现这一目标有任何想法或建议吗?

最佳答案

首先,请查看方法 Scanner>>#xColon .只要在输入中遇到冒号,就会调用此方法。通过将以下代码段添加到方法的顶部,您可以使其检测到您的新分配 token :> :

aheadChar = $> ifTrue: [
self step.
tokenType := #leftArrow.
self step.
^ token := #':=' ]

像这样 :>行为与正常分配完全相同。通过定制 tokenTypetoken您可以将新的赋值运算符传递给解析器(参见 Parser>>#expressionParser>>#assignment:)并构建不同的 AST(即实现不同的执行行为)。

如果您对更大的灵 active 感兴趣,您可能想查看 Helvetia . Helvetia 是 Pharo 的语言工作台,允许您修改宿主语言并以更加模块化的方式调整工具。 examples 之一包含在发行版 ( CUSwapExample) 中的是向 Smalltalk 添加了两个新的赋值运算符。

关于operator-overloading - 添加新的赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14156853/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com