问题标签 [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.

0 投票
2 回答
198 浏览

binary-tree - 如何在 Squeak4.1 中解析文件中的字符?

朋友,假设我有一个文件test.txt,文件内容为“1+2*3”,如果直接在Squeak的Workspace中表示,打印出来会得到结果9,我想得到的是7 然后我读取文件内容1+2*3从一个文件。像这样的代码,它运行良好

但是如何将字符串“1 + 2 * 3”的5个字符存储到一个集合中,进一步我可以使用二叉树来计算方程?有人可以给我一些提示吗?先谢谢 :)

0 投票
0 回答
176 浏览

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 节点的父节点。

0 投票
2 回答
52 浏览

regex - 我如何更好地理解 SmaCC 如何在正则表达式中使用“isMethod”功能?

我不清楚 SmaCC 正则表达式中的“isMethod”支持。

这两个消息来源本质上说的是同一件事

没什么好说的,所以我有几个问题:

  • 这是否意味着我可以使用 isWhitespace、isNotWhitespace 等?(我怎么知道名字?)
  • 这是否意味着我可以使用自己的代币?(如果我定义了这些,比如 isVariable、isMultiLineComment?)
  • 有什么好地方可以让我更好地理解这一点吗?

谢谢你的时间