消除二元运算的移位/归约错误
fsyacc 正在为所有二进制操作发出移位/归约错误。 我有这个递归产生式: scalar_expr: | scalar_expr binary_op scalar_expr { Binary($2, $1, $3) } …
为什么此 fsyacc 输入生成无法编译的 F#?
我的 fsyacc 代码给出编译器错误,表示未找到变量,但我不确定为什么。我希望有人能指出这个问题。 %{ open Ast %} // The start token becomes a par…
我应该使用 Workflow 还是 fsYacc?
我有一个非常简单的 DSL,需要在 .Net 平台上解析。我对解析器的经验不是很丰富,因此一直在查看使用 F#(fsLex、fsYacc、FParsec)的示例。我对 F# …
F# 模式匹配:如何匹配一组共享相同参数的可能类型?
我是 F# 新手,不太熟悉整个模式匹配的想法。 我试图寻找更好的解决方案来解决我的问题,但我担心我什至无法正确表达问题 - 我希望问题标题至少在某种…
是否可以使用为一种语言开发的 FsYacc 解析器作为其他语言解析过程的一部分?
我正在为两种语言 L1 和 L2 实现解析和表达式求值。 重要的是,L1 可以用作单独的语言,也可以用作 L2 的一部分,并且 L2 只包含几个关键字,而 L1 中…
fsyacc:允许用语言定义运算符
fsyacc 是否有某种方法来处理解析时引入的运算符?我正在尝试为 Kaleidscope 构建一个解析器,这是一种玩具语言,用作 LLVM 教程。万花筒允许定义运算…
Fsyacc:已添加具有相同密钥的项目
我开始玩 Fslex/Fsyacc。尝试使用此输入生成解析器时 Parser.fsy: %{ open Ast %} // The start token becomes a parser function in the compiled co…
使用一元减法扩展 Fsyacc 的示例语法
我尝试扩展“F# Parsed Language Starter”中的示例语法来支持一元减号(对于 2 * -5 这样的表达式)。 我遇到了像 Samsdram 这样的块 这里 基本上,…
以下 ocamlyacc 代码的 fsyacc 等效项是什么?
我正在使用 F# 开发一个玩具编译器,即 FsLex 和 FsYacc 的组合。为了熟悉它们,我阅读了 Expert F# (v2) 一书(顺便说一句,一本好书)的 Lexer/Pars…
F# fslex fsyacc 生产代码成熟吗?
在阅读了一个 2 年历史的网页后,与 OCamel 同行相比,它确实存在 fslex/fsyacc、错误、缓慢、愚蠢等问题,我想知道满足词法解析需求的最佳选择是什么…
Fsyacc 示例语法错误?
因此,我尝试用 F# 编写编译器,并一直在研究 F# powerpack 附带的 Fslex 和 Fsyacc 工具。有一个示例项目负责处理我一直试图理解的外部构建工具。可…
是否可以定义相互依赖的类型并在单独的文件中定义?
我正在尝试实现一个具有扩展解析功能的库。我决定使用 fsyacc 因为我从大学就知道它。不幸的是我遇到了以下问题。 我为语法的头部(Head)定义了一个…
FsLex 和 FsYacc 的疯狂错误
我正在尝试编译这个项目: http://ramon.org.il/Here.zip 但我遇到了一堆无意义的错误。他们得到了我熟悉的文本,但在该位置没有类似的东西(比如在空…
lex/yacc 和 fslex/fsyacc 有什么区别?
我正在学习 F# 因为我想编写一个词法分析器和解析器。我对这种处理有一点经验,但确实需要像 F# 一样正确学习它。 在学习 F# 的词法分析/解析功能时,…
FSYacc 生成的解析器线程安全吗?
如果我使用 FSYacc 生成解析器,它是线程安全的吗? 我问的唯一原因是因为函数 Parsing.rhs_start_pos 和 Parsing.symbol_end_pos 似乎没有任何状态传…