如何在 fslex 的模式中指定 unicode 字符
在 FSharp Lexer 的模式中指定 Unicode 字符的正确方法是什么? 以下代码未使用 FsLex.exe 实用程序进行编译:
let lexeme lexbuf = LexBuffer<char>.LexemeString lexbuf
...
rule tokenize = parse
| ['a'-'z' 'A'-'Z'] { TOKEN1 }
| [\u0100\u0101] { TOKEN2 }
| [\u0102-\u01FF] { TOKEN3 }
...
| [eof] { EOF }
我做错了什么?
PS:我正在使用带有 --unicode 选项的 fslex.exe
谢谢,Vitaliy
What is the correct way to specify Unicode characters in pattern for FSharp Lexer.
Following code is not compiled with the FsLex.exe utility:
let lexeme lexbuf = LexBuffer<char>.LexemeString lexbuf
...
rule tokenize = parse
| ['a'-'z' 'A'-'Z'] { TOKEN1 }
| [\u0100\u0101] { TOKEN2 }
| [\u0102-\u01FF] { TOKEN3 }
...
| [eof] { EOF }
What I'm doing wrong?
P.S: I'm using fslex.exe with --unicode option
Thanks, Vitaliy
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您必须将 unicode 字符放在单引号中,就像正常的 F# 代码一样。
至少这对于我测试的一个小例子似乎有效。
I think you have to put the unicode characters in single quotes, just like in normal F# code.
At least that seems to work for a small example that I tested.