如何解决在Clojure中创建词法分析器
如果我想在函数中传递字符串并返回使用Clojure输入的字符串的令牌类型,例如“ int x = 5;”。将为“:alpha:alpha:alpha:whitespace:equal:digit”。如何在Clojure中编写lexer函数?
解决方法
您应该使用the instaparse library。一个例子:
(def as-and-bs
(insta/parser
"S = AB*
AB = A B
A = 'a'+
B = 'b'+"))
=> (as-and-bs "aaaaabbbaaaabb")
[:S
[:AB [:A "a" "a" "a" "a" "a"] [:B "b" "b" "b"]]
[:AB [:A "a" "a" "a" "a"] [:B "b" "b"]]]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。