文件名称:caramel:Ocaml 喜欢玩具编程语言
文件大小:43KB
文件格式:ZIP
更新时间:2024-07-21 20:20:51
OCaml
焦糖 Ocaml 喜欢玩具编程语言 我在没有任何现有工具的情况下从头开始构建焦糖。 为此,我有几个原因: 边做边学 - 了解编译器中的每一步是如何工作的。 类型安全 - 我使用 ocaml GADT 来增加词法分析器和解析器的类型安全。 Afaik 还没有词法分析器/解析器生成器这样做。 成为自托管 - 一旦编译器可以生成一些代码,用焦糖重写它会更容易。 进步 正则表达式:完成 通用容器:Witnessed、Box 词法分析器:完成 Parser:简单的递归解析器 解析器:用位置完成 SLR(k) 解析器 标记化:语言的开始 编译器:从标准输入标记和解析 编译器:先打印,然后从 LR 解析器
【文件预览】:
caramel-master
----.gitignore(130B)
----README.md(796B)
----lexer()
--------src()
----univ()
--------src()
----parser2()
--------src()
----test()
--------test.sh(48B)
----LICENSE(34KB)
----parser()
--------src()
----_oasis(2KB)
----src()
--------tokenize.ml(10KB)
--------token.ml(2KB)
--------comp.ml(8KB)
----common()
--------src()
----regexp()
--------src()