是否有可能让几个词法分析者共享相同的身份定义?

时间:2013-10-17 12:21:22

标签: ocaml lex lexical-analysis ocamllex

我有几个词法分析器:lexer_1.mlllexer_2.mll,...

identlet ident = regexp)的某些定义很常见,并在这些文件中重复出现。例如,INTEGERFLOAT,...

的定义

有没有人知道是否可以在某个地方定义一次,并让.mll文件调用它?

1 个答案:

答案 0 :(得分:2)

我担心没有“纯粹的OCaml”解决方案,因为ident似乎系统地内联ocamllex。您仍然可以将正则表达式定义放在一个文件中,并在需要的地方使用cpp(或任何其他C预处理器)#include。这当然是对cpp的滥用,因为您没有使用.c文件,但您不会是第一个这样做的人。

事实上,我刚刚遇到cppo,这是一个类似cpp的实用程序,目标是OCaml程序,你可能觉得它很有用。