【发布时间】:2018-12-04 17:11:26
【问题描述】:
这是带有汇编谓词的 .txt 文件:
brz END //comment
sub ONE
sta SECOND
lda RESULT //comment
add FIRST
bra LOOP
我们必须加载和读取 .txt 文件,我们必须删除 cmets 并创建一个指令列表,如下所示:
L=[brz END,sub ONE,...]
【问题讨论】:
-
您查看过文件 I/O 的 SWI Prolog 文档吗?
-
@TessellatingHeckler 您的计划可能是将输入分成几行,然后每行执行一些单独的步骤来解析它们。但事实证明,在 Prolog 中一直采用 DCG 方法并将文件直接解析为目标表示形式要容易得多,而不是分两步完成。 (几年前我开始学习 Prolog 时遇到了同样的问题。)
-
@TessellatingHeckler 我正忙着写一个答案。 (虽然你不是 OP,所以你评论的好像你是很奇怪。)但你应该明白,从其他语言中对你有意义的东西在 Prolog 中可能并不简单,在其他简单的东西中作为初学者,Prolog 对您来说可能并不简单。但这不是 Prolog 的错。 :)
-
@TessellatingHeckler 是的,Prolog I/O 相当原始。您可以使用各种其他解决方案来阅读行(例如,this one on SO)。看起来你还想解析你的 asm cmets(?) 你必须单独处理但不会有太多代码。
标签: prolog