minix/commands/asmconv/syntax.ack
2010-05-12 16:28:54 +00:00

108 lines
1.6 KiB
Plaintext
Executable file

asmprog:
comment ?
statement
asmprog ; asmprog
asmprog comment ? \n asmprog
letter:
[._a-zA-Z]
digit:
[0-9]
identifier:
letter (letter | digit)*
digit [bf]
string:
'C-like string sequence'
"C-like string sequence"
number:
C-like number
comment:
! .*
statement:
label-definition statement
empty
assignment
instruction
pseudo-instruction
label-definition:
identifier :
digit :
assignment:
identifier = expression
instruction:
iX86-instruction
pseudo-instruction:
.extern identifier (, identifier)*
.define identifier (, identifier)*
.data1 expression (, expression)*
.data2 expression (, expression)*
.data4 expression (, expression)*
.ascii string
.asciz string
.align expression
.space expression
.comm identifier , expression
.sect identifier
.base expression
.assert expression
.symb XXX
.line XXX
.file XXX
.nolist
.list
iX86-pseudo
expression:
C-like expression with [ and ] for grouping
iX86-instruction:
prefix
prefix iX86-instruction
identifier
identifier iX86operand
identifier iX86operand , iX86operand
identifier iX86operand : iX86operand
prefix:
o16
o32
a16
a32
rep
repz
repnz
repe
repne
cseg | dseg | eseg | fseg | gseg | sseg
iX86operand:
register
( register )
expression
( expression )
expression ( register )
expression ( register * [1248] )
expression ? ( register ) ( register )
expression ? ( register ) ( register * [1248] )
register:
al | bl | cl | dl | ah | bh | ch | dh
ax | bx | cx | dx | si | di | bp | sp
eax | ebx | ecx | edx | esi | edi | ebp | esp
cs | ds | es | fs | gs | ss
cr0 | cr1 | cr2 | cr3
iX86-pseudo:
.use16
.use32