【发布时间】:2016-05-04 05:29:48
【问题描述】:
我正在尝试使用 prolog 编写解析器。
我有我的标记器,它返回标记列表。例如:
Tokens = [key(read),id('N'),sep(:=),int(10),....] 我只需要制作 prolog 来返回一组指令来运行程序。
program = [].
program = [Instructions | Program].
问题是,为给定的标记和语法构建解析树的最简单方法是什么(如bison)。如果有任何帮助,我将不胜感激。
【问题讨论】:
-
见dcg。纯 Prolog 关系可用于所有方向。这意味着一旦您描述列表与其解析树之间的关系,您就可以生成并解析列表和树。从
program(AST) --> ...之类的 DCG 规则开始,描述抽象语法树和标记列表之间的关系。
标签: parsing prolog bison tokenize dcg