有没有办法让ocammlex有更多的关键词?我已经为德语编写了一个解释器和解析器,它将德语文本“编译”成乳胶图片,以便进行语言分析。它真的工作得很好,在语言学世界里真的很新。感谢ocaml的所有开发人员,您可以滥用ocamllex和menhir等工具来做这样的事情。但很快我就会达到ocammlex-automaton词典的极限,它会说:"automaton to big“。
我知道哈希表的解决方案。我已经没有尝试过了,如果这解决了问题,但是有没有人知道,如果在ocamllex-source-code中改变某种类型的限制整数或类似的东西很容易,我可以在不改变程序代码的情况下滥用它?在我看来,这个关于自动化大小的错误对于进一步的滥用来说是不必要的愚蠢和尴尬,所以我想问一下。
谢谢,祝你有愉快的一天。
发布于 2014-07-16 01:53:19
我赞赏您对滥用工具的坚持:-)
我查看了ocamllex的源代码,我发现只有一个地方可以检查自动机是否变得太大。
let do_alloc_cell used t =
let available =
try Hashtbl.find tag_cells t with Not_found -> Ints.empty in
try
Ints.choose (Ints.diff available used)
with
| Not_found ->
temp_pending := false ;
let n = !next_mem_cell in
if n >= 255 then raise Memory_overflow ;
Hashtbl.replace tag_cells t (Ints.add n available) ;
incr next_mem_cell ;
n只有一个与255的神秘比较,没有注释解释任何不变量等。我简单地浏览了代码,还查看了Lexing模块。我没有看到值255有任何不明显的依赖关系。因此,您可以在此处构建具有更大值的ocamllex副本。你可以试试1023 (比2的幂小1)。
您也可能只想分解并使用不同的工具。我意识到这可能是别人告诉你的。就像我说的,我很佩服你的坚持。
https://stackoverflow.com/questions/24759103
复制相似问题