如何在erlang中创建一个解析器,它将采用一个正确形成的命题公式并将其转换为一些内部表示.
列出在erlang中创建解析器的可用工具以及使用它们的项目可能会有所帮助.
您可以使用leex
,yecc
,spell1
和其他一些人.
leex:基于正则表达式的Erlang词法分析器生成器,类似于lex或flex.词法分析器文件包括用于部件Definition
,Rules
并且还二郎代码.
yecc:Erlang的LALR-1解析器生成器,类似于yacc.甲解析器生成文件包括用于部件Non-terminals
,Terminals
,Rules
和Root-symbols
.
spell1:Erlang和LFE的LL(1)解析器生成器,它是Erlang之上的Lisp方言语言.
neotoma:用于解析表达文法(PEG)的Erlang的packrat解析器生成器.
一些使用它们的开源项目:
Efene:Erlang编程语言的替代语法,侧重于简单性和易用性.它使用leex和yecc来解析Efene的语言语法.
ErlyDTL:Erlang的Django模板,它使用leex和yecc来解析基于Django的模板语言.
Tnesia:一个时间序列数据库,它有一个类似于SQL的语言(TQL),用leex和yecc实现.
本幻灯片包含一些有关如何使用它们的有用示例.