小编Taz*_*aza的帖子

Prolog - 解析

我是语言序言的新手,并且已经获得了关于在prolog中解析的任务.我需要一些帮助来解决问题.

在协助中我们有语法:

Expr ::= + Expr Expr | * Expr Expr | Num | Xer  
Xer  ::= x | ^ x Num  
Num  ::= 2 | 3 | .... a Integer (bigger than 1) ...
Run Code Online (Sandbox Code Playgroud)

令牌^与数学中的令牌相同.5^5等于25.

解析需要双向工作:使用实例化列表调用以生成Ast,而使用实例化Ast调用应生成类似的前缀列表.

我的assingment说我需要做一个前缀解析,这样做:
示例(删除Ast的值):

?- parse([+, *, 2, x, ^, x, 5 ], Ast), parse(L, Ast).  
X = ...,  
L = [+, *, 2, x, ^, x, 5]  
Run Code Online (Sandbox Code Playgroud)

我也想知道解析树的样子.

parsing prolog dcg

6
推荐指数
1
解决办法
4316
查看次数

标签 统计

dcg ×1

parsing ×1

prolog ×1