haskell-parser-examples:用 Parsec 和 HappyAlex 编写的简单解析器示例

时间:2024-07-04 02:28:35
【文件属性】:

文件名称:haskell-parser-examples:用 Parsec 和 HappyAlex 编写的简单解析器示例

文件大小:7KB

文件格式:ZIP

更新时间:2024-07-04 02:28:35

Haskell

演示如何使用两个看似最流行的可用选项:Parsec 和 Happy/Alex,为 Haskell 中的无类型 lambda 演算编写基本解析器。 构建: cabal configure cabal build 跑步 ./dist/build/lambda/lambda < examples/ex1.lam 这将运行每个解析器并打印 AST 和评估。 创建这些解析器是因为我找不到如何解析带有隐式“并列”运算符的表达式的示例——即,由两个并排的表达式组成的表达式,例如,类似 ML 的语言中的函数应用程序。 事实证明这很容易。 请注意,这些解析器应该接受完全相同的语法并生成相同的 AST ......但这是一件很难检查的事情,所以不能保证! 事实上,如果你能发现它们的不同之处,我会很想知道的。 我不声称或期望这些解析器是有效的。


【文件预览】:
haskell-parser-examples-master
----.gitignore(5B)
----src()
--------Main.hs(541B)
--------ParsecParser.hs(2KB)
--------AlexToken.x(1KB)
--------HappyParser.y(1KB)
--------Expr.hs(782B)
--------Eval.hs(961B)
----examples()
--------ex1.lam(45B)
--------ex3.lam(39B)
--------ex5.lam(59B)
--------ex4.lam(39B)
--------ex2.lam(38B)
--------ex6.lam(79B)
----README.md(938B)
----lambda.cabal(636B)

网友评论