0

我正在尝试为我正在创建的语言解析“函数调用”,但我得到:

:30:0 Syntax error: Operator expected

下面的第一行是我得到错误的地方:

Fun(FXs) -->   name(F),
                ws,
                [0'(],
                ws,
                args(Xs),
                ws,
                [0')],
                {FXs =.. [F, Xs]}.

 name(N) -->  id(Cs),
             {atom_chars(Cs, N)}.

我已经详尽地搜索了谷歌以寻求有关 DCG 解析错误的帮助,但我没有找到任何东西。关于我做错了什么的解释会有所帮助,或者任何可以让我更多地了解 DCG 的资源!

4

1 回答 1

2

我想这很有趣:你应该改写fun。SWI-Prolog 有一个扩展允许 CamelCase 函子,但必须启用。

于 2011-11-22T07:50:00.960 回答