APPENDIX A: IMP80 Syntax
KEY
::= A | B | C | D | E | F | G | H | I | J | K | L | M |
N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
a | b | c | d | e | f | g | h | i | j | k | l | m |
n | o | p | q | r | s | t | u | v | w | x | y | z
::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
::= {newline character}
::= {| character}
::= ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - |
. | / | : | < | = | > | ? | @ | [ | ] | \ | ^ | _ |
` | ~ | ; | <letter> | <digit> | <bar>
::= []...
::= %comment | !
::= []...
::= |
::= []...
::= [, ]...
::= []
::= . []
::= [] [] [@ ]
::= _ ... | ' ... '
::= |
::= ' ' | M' ... '
::= " []... "
::= | | |
<char const> | <str const>
::= + | - | \ | ~
::= = | == | <- | ->
::= + | -
::= | -> | == | \== | ##
::= = | # | \= | <> | > | >= | < | <=
::= * | / | // | + | - | ** | **** | \ | \\ | >> | << |
! | !! | & | .
::= ( [, ]... )
::= _ []
::= [] []... | | ( )
::= [] [ ]...
::= ( ) | (*)
::= []
::= = [, ]...
::= [[%array] %name] |
%array [%format] <adecln>
::= [, ]...
::= [[%array] %name] | %array
::= ( [%or ]... )
::= [, ]...
::= |
::= ( ) |
::= %integer | %real | %long %real
::= %integer | %real | %long | %byte [%integer] |
%short [%integer] | %half [%integer] | %string<count>
::= | %record
::= [%alias " "]
::= [, ]...
::= [= ]
::= [[%array] %name] [%spec] [, ]... |
%array [%format] [%spec] <oname> <bpair>[<constlist>]
::= %fn | %function | %map