逐个标记阅读Clojure源代码

3
在Clojure中,可以使用 (read) 读取整个s表达式。是否有一种方法可以一次只读取一个标记?因此,调用 (read-token "(read)") 将返回类似于 ["(", "read", ")"] 的内容。

看一下instaparse https://github.com/Engelberg/instaparse - KobbyPemson
不确定这是否适合您的目的,但您至少可以将源代码读入字符串,然后对其字符进行操作。 - Nate W.
@NateW。这仍然需要对字符串进行词法分析,而我正试图避免这样做。 - Michael Dickens
1个回答

2
"

“tokens” 不是 Clojure 读取器处理的内容:它没有像语法更复杂的语言那样明确的词法/语法分析阶段。当然,你可以为 Clojure 表达式编写自己的语法,将 ( 称为 OPEN_PAREN 等等,但没有内置的支持。

"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接