character is a synonym for char constant is a synonym for const enumeration is a synonym for enum func is a synonym for function integer is a synonym for int ptr is a synonym for pointer ret is a synonym for returning structure is a synonym for struct indef is a synonym for indefinite noalias is a synonym for restrict # program: # NOTHING # | declare # | cast # | explain # | set # | help | '?' # | quit | exit # explain: # ( # | # explaindecl: # ? ? ? ? # explaincast: # ? ) NAME? # docast: # NAME into # | # declare: # NAME as ? # | ? # adecl: # function ( returning # | function returning # | ? pointer to # | ? array NUMBER? of # | ? # ptrmodlist: # ? # ptrmod: # const # | volatile # | noalias # | restrict # | relaxed # | strict # | # shared: # shared # The following are valid only in C mode: # | shared [] # | shared [*] # | shared [NUMBER] # Otherwise (english mode): # | local # | shared '('? blocksize? NUMBER ')'? # | shared '('? blocksize? indefinite ')'? # | shared '('? blocksize? automatic ')'? # | shared '('? blocksize? cyclic ')'? # cdecl: # # | * ? # cdecl1: # ( ) * # | NAME * # cdeclpost: # ( ) # | ( # | [ ] # | [ NUMBER ] # cast: # ? * # casthead: # ( # | ( ? ) # | ( ) ( ? # | * ? # castpost: # [ ] # | [ NUMBER ] # type: # # | ? # | struct NAME # | union NAME # | enum NAME # castlist: # (, )* # | ) # castlistitem: # NAME # | ? # adecllist: # (, )* # | ) # adecllistitem: # NAME # | NAME as # | # typename: # int | char | double | float | void # modlist: # # | # modifier: # short # | long # | unsigned # | signed # | # storage: # auto # | extern # | register # | static