我正在尝试使用fslex
and编写一个小型 DSL 解析器fsyacc
。输入由需要不同词法规则的两种不同语言的交错块组成。我如何编写我的fslex
文件来支持它?
(我想类似的情况是如何fslex
为 c 语言定义一个文件,但支持内联汇编,这需要不同的词法规则?)
我目前拥有的是这样的:
rule tokenize = parse
| "core" { core lexbuf }
...
and core = parse
| ...
问题是,一旦core
解析器返回一个令牌,输入的下一部分就会被传递给它tokenize
。但是,我想(原样)留core
在该州。我怎么做?
谢谢!