问题标签 [fslex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2410 浏览

f# - lex/yacc 和 fslex/fsyacc 有什么区别?

我正在学习 F#,因为我想编写一个词法分析器和解析器。我对这种处理有一点经验,但真的需要像 F# 一样正确地学习它。

在学习 F# 的词法/解析功能时,学习 lex 和 yacc 是否足够?

或者是否有一些差异意味着 lex/yacc 的代码不适用于 fslex 和 fsyacc?

0 投票
3 回答
1928 浏览

visual-studio - FSLex 示例解决方案?

我已经使用 C/lex 很长时间了,现在想使用 F#/fslex。我在 C# 和学习 F# 的过程中相当不错。唯一的问题是我看不到任何项目示例或模板,其中 fslex 正确包含在 Visual Studio 构建过程中。有谁知道我在哪里可以找到一个?

很多问候!沃尔克

0 投票
3 回答
959 浏览

f# - 期待 LexBuffer但给定一个 LexBuffer“char”类型与“byte”类型不匹配

类型不匹配。期望 a LexBuffer<char> 但给定 a LexBuffer<byte> 类型 'char' 与类型 'byte' 不匹配

这是我在使用 fslex 时收到的错误消息。我已经尝试手动检查每一次出现的 lexbuf 及其类型。它LexBuffer<char>无处不在。但是编译器仍然给我上述错误。你能告诉我为什么会发生这个错误以及如何解决它。

0 投票
2 回答
248 浏览

f# - F# 2.0 与 Powerpack 2.0,fslex 错误 1

在命名空间 RSLispV3.RunTime: http ://pastebin.com/XNb9qi11

LispParser.fsy: http ://pastebin.com/pymF1Vvm

LispLexer.fsl: http ://pastebin.com/pfXdDuxs

我进入 MSBuild 的 PowerPacks 目标,从 .fsprog 调用它们。

使用 VS2008 构建时出现错误:“fslex.exe”以代码 1 退出。

帮助?

0 投票
2 回答
324 浏览

f# - FsLex 和 FsYacc 的疯狂错误

我正在尝试编译这个项目:

http://ramon.org.il/Here.zip

但是我得到了一堆无意义的错误。他们得到了我熟悉的文本,但在这个位置上没有类似的东西(比如空行中的意外')')。

请帮帮我!

0 投票
2 回答
329 浏览

f# - FsLex 更改为最新的 PowerPack?

我一直在研究编译器,但在更改为 PowerPack 1.9.9.9 和 VS2010 的发布版本后,我无法编译以下行:

让 lexbuf = Lexing.from_string 文本

我收到以下两个错误:

“未定义值、构造函数、命名空间或类型'from_string'”非常明显,它试图告诉我什么,但解决方案是什么?

0 投票
1 回答
266 浏览

f# - FSLex 未知错误

我的 FSLex 遇到了一些我无法解决的问题...我所知道的是 fslex.exe 以代码 1 退出...

顶部的 F# 代码在 F# Interactive 中进行了测试,因此不存在问题(我不知道如何解决)。

词法分析器:http : //pastebin.com/qnDnUh59

和 Parser.fsi: http ://pastebin.com/sGyLqZbN

谢谢,拉蒙。

0 投票
1 回答
555 浏览

f# - fslex 中的 Lua 长字符串

我在业余时间一直在研究 Lua fslex 词法分析器,使用 ocamllex 手册作为参考。

我在尝试正确标记长字符串时遇到了一些障碍。“长字符串”由'[' ('=')* '['']' ('=')* ']'标记分隔;标志的数量=必须相同。

在第一个实现中,词法分析器似乎无法识别[[模式,LBRACKET尽管最长匹配规则产生了两个标记,而[=[正确识别出变化。此外,正则表达式无法确保使用正确的结束标记,在第一次']' ('=')* ']'捕获时停止,无论实际的长字符串“级别”如何。此外,fslex 似乎不支持正则表达式中的“as”结构。

我一直在尝试用词法分析器中的另一条规则来解决这个问题:

但是我被卡住了,有两个原因:首先,我认为我不能“推动”,可以说,一旦我读完长字符串,我就不能“推动”下一条规则;其次,我不喜欢在找到正确的结束标记之前逐个字符地读取字符的想法,这使得当前的设计毫无用处。

如何在 fslex 中标记 Lua 长字符串?谢谢阅读。

0 投票
3 回答
569 浏览

function - F# 内联函数特化

我当前的项目涉及词法分析和解析脚本代码,因此我正在使用 fslex 和 fsyacc。Fslex LexBuffers 可以有两种形式LexBuffer<char>LexBuffer<byte>我希望可以选择同时使用这两种方法。

为了同时使用两者,我需要一个 ^buf -> 字符串类型的词位函数。到目前为止,我的专业化尝试看起来像:

我收到一个类型错误,指出函数体应该是 type ^buf -> string,但推断的类型是 just string。显然,我做错了什么(主要是?)。

我正在尝试在 F# 中甚至可能吗?如果是这样,有人可以指出我正确的路径吗?

谢谢!

0 投票
1 回答
396 浏览

regex - 如何在 fslex 的模式中指定 unicode 字符

在 FSharp Lexer 的模式中指定 Unicode 字符的正确方法是什么。以下代码未使用 FsLex.exe 实用程序编译:

我做错了什么?

PS:我正在使用带有 --unicode 选项的 fslex.exe

谢谢, 维塔利