如何在erlang中创建解析器

如何在erlang中创建解析器,erlang,parser-generator,Erlang,Parser Generator,如何在erlang中创建一个解析器,该解析器将接受一个正确格式的命题公式,并将其转换为一些内部表示 列出在erlang中创建解析器的可用工具以及使用这些工具的项目可能会有所帮助。您可以使用leex、yecc、spell1和其他一些工具 :用于Erlang的基于正则表达式的词法分析器生成器,类似于lex或flex。lexer文件包括定义、规则以及Erlang代码的部分 :用于Erlang的LALR-1解析器生成器,类似于yacc。解析器生成器文件包括非终端、终端、规则和根符号的部分 :用于Erl

如何在erlang中创建一个解析器,该解析器将接受一个正确格式的命题公式,并将其转换为一些内部表示


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

您可以使用
leex
yecc
spell1
和其他一些工具

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

  • :用于Erlang的LALR-1解析器生成器,类似于yacc。解析器生成器文件包括
    非终端
    终端
    规则
    根符号
    的部分

  • :用于Erlang的LL(1)解析器生成器,是Erlang之上的Lisp方言语言

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


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

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

这包括一些关于如何使用它们的有用示例。

要回答您的问题,需要了解更多详细信息。请查阅和的文档。以下是如何在不使用解析器生成器工具的情况下为表达式构建自己的解析器: