问题标签 [dcg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1283 浏览

prolog - 为给定的上下文无关语法生成符号串(句子)

我有一个简单的语法,例如

现在我想为上面的语法写一个解析器,比如

它通过最左推导生成一个句子aaabbb

我不够好,无法在 prolog 中处理 dcg/cfg。所以请帮助我这个例子,这样我就可以继续尝试更大的东西。

0 投票
1 回答
1753 浏览

prolog - prolog 中的字符串标记化

我在文本文件“grammar.txt”中有以下上下文无关语法

我正在打开这个文件并能够读取 prolog 中的每一行。现在我想标记每一行并生成一个列表,例如

我怎样才能做到这一点?

0 投票
1 回答
198 浏览

prolog - 序言:DCG 语法错误

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

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

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

0 投票
2 回答
2057 浏览

io - Reading a file in prolog

Possible Duplicate:
Read a file line by line in Prolog

I found the following prolog code which reads one character at a time and prints out.

But if the file has multiple lines is there a way to read 1 whole line at a time so that it will be easy for tokenizing.

0 投票
2 回答
7419 浏览

prolog - Prolog中的'和'有什么区别?

我是 Prolog 的新手,注意到 ' 和 " 给出不同的行为,但很好奇为什么。具体来说,在加载文件时,?- ['test1.pl'].有效,而?- ["test1.pl"].无效。

0 投票
2 回答
295 浏览

prolog - Prolog challenge

I have the below implementation for the sublist algorithm. Problem: Given 2 lists, determine whether one is a sublist of the other. I would really need another distinct solution in Prolog.

Solution one:

Solution two:

Solution three:

Solution three':

0 投票
2 回答
757 浏览

prolog - 你如何在 Prolog 中用另一个子列表搜索和替换一个列表?

我正在尝试通过搜索和替换来修改列表,想知道如何搜索包含搜索词作为列表的列表?

假设我有一个列表 [1,2,3,4] 我想挑出 2 和 3 并将其替换为 5,6 所以理想情况下我可以有一个谓词:

0 投票
1 回答
1456 浏览

file - 如何在 SWI Prolog 中读取文件?

我想读取一个包含每行名称的文件。而且我不知道如何使用 SWI Prolog 做到这一点。我对 C/C++ 有足够的了解,那么有什么方法可以对 Prolog 做同样的事情吗?

0 投票
1 回答
1044 浏览

prolog - 处理 prolog 上下文无关语法

给定一个 CFG

我想写一个谓词,如语法('S',句子),它产生所有可能的

使用最左推导,如果遇到的符号是终端,它应该打印出那个终端,如果遇到的符号是非终端 'S',它应该回溯并替换语法a S b 或 c 或 d之一并重复过程。

我不想要任何代码......只是帮助我一些技巧如何开始

0 投票
2 回答
471 浏览

prolog - 在 prolog 中从数据库中调用事实

如果语法类似于

这个语法被插入到数据库中。我必须编写一个 dcg 来为数据库中的 cfg 生成句子。例如,如果我以这种方式定义 dcg myDcg('S',str),则'S'(非终端)应该被调用或替换aSbc|d左右。

问题是每次遇到非终端('S')以生成句子时,我如何用数据库中的事实调用/替换'S' 。

希望您理解我的问题,如果没有,我将尝试编辑问题。


下面(示例代码)是我想要做的这不是 dcg。

每当遇到终端时,它应该被打印出来,当遇到非终端时,它将回溯。