问题标签 [smacc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
binary-tree - 如何在 Squeak4.1 中解析文件中的字符?
朋友,假设我有一个文件test.txt,文件内容为“1+2*3”,如果直接在Squeak的Workspace中表示,打印出来会得到结果9
,我想得到的是7
然后我读取文件内容1+2*3
从一个文件。像这样的代码,它运行良好
但是如何将字符串“1 + 2 * 3”的5个字符存储到一个集合中,进一步我可以使用二叉树来计算方程?有人可以给我一些提示吗?先谢谢 :)
abstract-syntax-tree - 如何在 Pharo SmaCC 中将自定义节点添加到 AST?
我正在使用 Pharo 在 SmaCC 中为 Java 语言的通用自定义节点创建 CST。我找到了语法(解析器和扫描器),并用几个例子对其进行了测试,创建抽象语法树完美。
但是,我需要使用自定义通用节点创建具体语法树,例如在每个时间节点上,对于我需要添加父节点 LOOP_STATEMENT 的节点。我找不到怎么做?可能吗?
我阅读了有关 SmaCC 和 Pharo 的所有信息,但在这里找不到示例或解决方案http://books.pharo.org/booklet-Smacc/html/Chapters/Smacc/SmaccAST.html
例如,我尝试在示例计算器代码上添加自定义 CST 节点。
这是 AST 语法
例如,我需要添加节点 SEPARATOR 作为每个括号的父节点。通过知道如何做到这一点,这将解决我的 Java 语法问题并将 LOOP_STATEMENT 添加为 while 节点的父节点。
regex - 我如何更好地理解 SmaCC 如何在正则表达式中使用“isMethod”功能?
我不清楚 SmaCC 正则表达式中的“isMethod”支持。
这两个消息来源本质上说的是同一件事
- https://files.pharo.org/books-pdfs/booklet-Smacc/2017-10-29-Smacc.pdf
- http://www.refactoryworkers.com/SmaCC/Scanner.html
没什么好说的,所以我有几个问题:
- 这是否意味着我可以使用 isWhitespace、isNotWhitespace 等?(我怎么知道名字?)
- 这是否意味着我可以使用自己的代币?(如果我定义了这些,比如 isVariable、isMultiLineComment?)
- 有什么好地方可以让我更好地理解这一点吗?
谢谢你的时间