4 (in-package :m68k-assembler
)
6 (defparameter *m68k-asm-grammar
*
10 (label operation operands
)
13 label
((symbol) (symbol colon
))
16 (operands comma operand
))
28 absolute
((expression))
30 indirect
((displacement-indirect)
31 (postincrement-indirect)
32 (predecrement-indirect)
35 displacement-indirect
((expression open register close
)
36 (open register close
))
37 postincrement-indirect
((open register close
+))
38 predecrement-indirect
((- open register close
))
39 indexed-indirect
((expression open register comma register close
)
40 (open register comma register close
))
42 immediate
((hash expression
))
44 ;; we use register-list also for register-direct, and sort out the
45 ;; difference at a semantic level.
46 register-list
((register)
48 (register-list / register-list
))
53 (expression adding-operator term2
))
54 adding-operator
((+) (-))
57 (term2 bitwise-operator term
))
58 bitwise-operator
((<<) (>>) (^
) (or) (&))
61 (term multiplying-operator factor
))
62 multiplying-operator
((*) (/))
65 (unary-operator value
)
66 (open expression close
))
67 unary-operator
((~
) (-))