是否可以覆盖 rebol 路径运算符?
可以覆盖 rebol 系统单词,如 print、make 等,那么是否可以对路径运算符执行相同的操作?那么语法是什么呢?
It is possible to overide rebol system words like print, make etc., so is it possible to do the same with the path operator ? Then what's the syntax ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
另一种可能的方法是使用 REBOL 元编程功能并预处理您自己的代码以捕获路径访问并添加处理程序代码。这里有一个例子:
这将为您提供:
另一种(较慢但更灵活)的方法也可以是将字符串模式的代码传递给预处理器,从而使您摆脱任何 REBOL 特定语法规则,如: 然后,
预处理器代码将发现所有 .放置并更改代码以正确插入对“apply-my-rule”的调用,并最终使用以下命令运行代码:
在运行时可以处理和更改整个代码的程度没有真正的限制(所谓的)第一个示例的“块模式”是最有效的方式)。
Another possible approach is to use REBOL meta-programming capabilities and preprocess your own code to catch path accesses and add your handler code. Here's an example :
This will give you :
Another (slower but more flexible) approach could also be to pass your code in string mode to the preprocessor allowing freeing yourself from any REBOL specific syntax rule like in :
The preprocessor code would then spot all .. places and change the code to properly insert calls to 'apply-my-rule, and would in the end, run the code with :
There's no real limits on how far you can process and change your whole code at runtime (the so-called "block mode" of the first example being the most efficient way).
你的意思是用(比如说)....替换
(比如说)....
....我用点点语法替换了REBOL的正斜杠?
简短的回答:不。有些东西是硬连线到解析器中的。
You mean replace (say)....
with (say)....
....where I've replaced REBOL's forward slash with dot dot syntax?
Short answer: no. Some things are hardwired into the parser.