问题标签 [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.
prolog - 为给定的上下文无关语法生成符号串(句子)
我有一个简单的语法,例如
现在我想为上面的语法写一个解析器,比如
它通过最左推导生成一个句子aaabbb。
我不够好,无法在 prolog 中处理 dcg/cfg。所以请帮助我这个例子,这样我就可以继续尝试更大的东西。
prolog - prolog 中的字符串标记化
我在文本文件“grammar.txt”中有以下上下文无关语法
我正在打开这个文件并能够读取 prolog 中的每一行。现在我想标记每一行并生成一个列表,例如
我怎样才能做到这一点?
prolog - 序言:DCG 语法错误
我正在尝试为我正在创建的语言解析“函数调用”,但我得到:
下面的第一行是我得到错误的地方:
我已经详尽地搜索了谷歌以寻求有关 DCG 解析错误的帮助,但我没有找到任何东西。关于我做错了什么的解释会有所帮助,或者任何可以让我更多地了解 DCG 的资源!
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.
prolog - Prolog中的'和'有什么区别?
我是 Prolog 的新手,注意到 ' 和 " 给出不同的行为,但很好奇为什么。具体来说,在加载文件时,?- ['test1.pl'].
有效,而?- ["test1.pl"].
无效。
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':
prolog - 你如何在 Prolog 中用另一个子列表搜索和替换一个列表?
我正在尝试通过搜索和替换来修改列表,想知道如何搜索包含搜索词作为列表的列表?
假设我有一个列表 [1,2,3,4] 我想挑出 2 和 3 并将其替换为 5,6 所以理想情况下我可以有一个谓词:
file - 如何在 SWI Prolog 中读取文件?
我想读取一个包含每行名称的文件。而且我不知道如何使用 SWI Prolog 做到这一点。我对 C/C++ 有足够的了解,那么有什么方法可以对 Prolog 做同样的事情吗?
prolog - 处理 prolog 上下文无关语法
给定一个 CFG
我想写一个谓词,如语法('S',句子),它产生所有可能的
使用最左推导,如果遇到的符号是终端,它应该打印出那个终端,如果遇到的符号是非终端 'S',它应该回溯并替换语法a S b 或 c 或 d之一并重复过程。
我不想要任何代码......只是帮助我一些技巧如何开始
prolog - 在 prolog 中从数据库中调用事实
如果语法类似于
这个语法被插入到数据库中。我必须编写一个 dcg 来为数据库中的 cfg 生成句子。例如,如果我以这种方式定义 dcg myDcg('S',str),则'S'(非终端)应该被调用或替换为aSb或c|d左右。
问题是每次遇到非终端('S')以生成句子时,我如何用数据库中的事实调用/替换'S' 。
希望您理解我的问题,如果没有,我将尝试编辑问题。
下面(示例代码)是我想要做的这不是 dcg。
每当遇到终端时,它应该被打印出来,当遇到非终端时,它将回溯。