小编Fra*_*rco的帖子

如何正确地形式化GNU/Linux命令的命令行用法?

我想写一个类似BNF的正式语法来描述一些GNU/Linux工具的命令行用法.例如,我可以将cat命令的用法描述为:

(cat-command) : 'cat' (arguments-list)
(arguments-list) : (argument)
(arguments-list) : (arguments-list) (argument)
(argument) : (file)
Run Code Online (Sandbox Code Playgroud)

问题是我无法为某些命令写下精确的语法,例如md5sum.我的第一次尝试是:

(md5sum-command) : 'md5sum' (arguments-list)
(arguments-list) : (argument)
(arguments-list) : (arguments-list) (argument)
(argument) : (file)
(argument) : '--check'
Run Code Online (Sandbox Code Playgroud)

但正如您所看到的,这个语法允许您--check根据需要多次指定参数,这是不正确的,因为您最多应该使用它一次.

我该如何解决这个问题?另外,为了更好地处理这类问题,我应该研究什么样的正式语法?

grammar bnf

7
推荐指数
1
解决办法
1528
查看次数

有关英特尔IA-32软件开发人员手册的问题

我正在研究英特尔的IA-32软件开发人员手册.特别是,我正在阅读以下手册:http://www.intel.com/Assets/PDF/manual/253666.pdf.我们以ADD指令为例.在第79页上写入,您可以将r8(8位寄存器)添加到r/m8(8位寄存器或存储单元).在下面的几行中,还写入了可以将r/m8添加到r8.问题是:如果我添加两个8位寄存器,我正在使用哪条指令?谢谢.

x86 assembly intel

4
推荐指数
1
解决办法
281
查看次数

标签 统计

assembly ×1

bnf ×1

grammar ×1

intel ×1

x86 ×1