目前,fslex和fsyacc工具需要两阶段编译,生成文件然后由fsc编译。如果将源文件作为嵌入资源传递给fslex和fsyacc,在程序中动态生成代码并使用CodeDom即时编译,我认为这些工具会更易于使用。
这种方法可行吗?如果是,实现这一点需要什么条件?
目前,fslex和fsyacc工具需要两阶段编译,生成文件然后由fsc编译。如果将源文件作为嵌入资源传递给fslex和fsyacc,在程序中动态生成代码并使用CodeDom即时编译,我认为这些工具会更易于使用。
这种方法可行吗?如果是,实现这一点需要什么条件?
然而,直接嵌入*.fsl
和*.fsy
文件存在一个问题;如果你将它们嵌入到程序中,在运行时通过fsharplex和fsharpyacc运行,用户定义的操作(例如,当词法分析器或解析器规则匹配时执行的代码)仍然是以F#源代码指定的 - 你需要决定如何将其编译成可执行代码。
fslex
,fsharplex
也基于“正则表达式导出,重新审视”。如果您想要查看代码,请访问此链接:https://github.com/jack-pappas/fsharp-tools - Jack P.