如何在erlang中创建解析器

时间:2016-01-05 18:14:42

标签: erlang parser-generator

如何在erlang中创建一个解析器,它将采用一个正确形成的命题公式并将其转换为一些内部表示。

列出在erlang中创建解析器的可用工具,以及使用它们的项目也很有帮助。

1 个答案:

答案 0 :(得分:7)

您可以使用leexyeccspell1和其他一些人。

  • leex:基于正则表达式的词法分析器生成器,用于Erlang,类似于lex或flex。词法分析器文件包含DefinitionRules以及Erlang代码的部分。

  • yecc:Erlang的LALR-1解析器生成器,类似于yacc。解析器生成器文件包含Non-terminalsTerminalsRulesRoot-symbols的部分。

  • spell1:Erlang的LL(1)解析器生成器和LFE,它是Erlang之上的Lisp方言语言。

  • neotoma:用于解析表达式语法(PEG)的Erlang的packrat解析器生成器。

一些使用它们的开源项目:

  • Efene:Erlang编程语言的替代语法,侧重于简单性和易用性。它使用leex和yecc来解析Efene的语言语法。
  • ErlyDTL:Erlang的Django模板,它使用leex和yecc来解析基于Django的模板语言。
  • Tnesia:一个时间序列数据库,具有类似SQL的语言(TQL),使用leex和yecc实现。

Slide包含一些有关如何使用它们的有用示例。