如何在erlang中创建解析器

Chi*_*dam 5 erlang parser-generator

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

列出在erlang中创建解析器的可用工具以及使用它们的项目可能会有所帮助.

Ham*_*ani 7

您可以使用leex,yecc,spell1和其他一些人.

  • leex:基于正则表达式的Erlang词法分析器生成器,类似于lex或flex.词法分析器文件包括用于部件Definition,Rules并且还二郎代码.

  • yecc:Erlang的LALR-1解析器生成器,类似于yacc.甲解析器生成文件包括用于部件Non-terminals,Terminals,RulesRoot-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实现.

幻灯片包含一些有关如何使用它们的有用示例.