Do not botch SIGWINCH delivery to the subshell.
[midnight-commander.git] / misc / syntax / jal.syntax
blob100644f4f3de2cfeb2ce40d618b54feac0abc54d
2 # Syntax rules for the JAL programming language.
5 caseinsensitive
7 context default
9     #=========================
10     # Variable types
11     #
12     keyword whole bit blue white
13     keyword whole byte blue white
14     keyword whole sbyte blue white
15     keyword whole word blue white
16     keyword whole sword blue white
17     keyword whole dword blue white
18     keyword whole sdword blue white
20     #=========================
21     # Predefined constants
22     #
23     keyword whole false black green
24     keyword whole true black green
25     keyword whole off black green
26     keyword whole on black green
27     keyword whole low black green
28     keyword whole high black green
30     #=========================
31     # Keywords
32     #
33     keyword whole alias yellow
34     keyword whole at yellow
35     keyword whole begin yellow
36     keyword whole const yellow
37     keyword whole count yellow
38     keyword whole defined yellow
39     keyword whole end yellow
40     keyword whole exit yellow
41     keyword whole function yellow
42     keyword whole get yellow
43     keyword whole in yellow
44     keyword whole is yellow
45     keyword whole local yellow
46     keyword whole of yellow
47     keyword whole out yellow
48     keyword whole put yellow
49     keyword whole procedure yellow
50     keyword whole record yellow
51     keyword whole repeat yellow
52     keyword whole return yellow
53     keyword whole then yellow
54     keyword whole until yellow
55     keyword whole var yellow
57     keyword whole volatile blue white
59     keyword whole asm brightred
60     keyword whole assembler brightred
61     keyword whole assert brightred
62     keyword whole include brightred
63     keyword whole task brightred
65     #=========================
66     # Pragma keywords
67     #
68     keyword whole pragma\{\t\s\}\[\t\s\]bootloader\{\t\s\}\[\t\s\]bloader brightred
69     keyword whole pragma\{\t\s\}\[\t\s\]bootloader\{\t\s\}\[\t\s\]long_start brightred
70     keyword whole pragma\{\t\s\}\[\t\s\]bootloader\{\t\s\}\[\t\s\]loader18 brightred
71     keyword whole pragma\{\t\s\}\[\t\s\]bootloader\{\t\s\}\[\t\s\]rickpic brightred
72     keyword whole pragma\{\t\s\}\[\t\s\]clear\{\t\s\}\[\t\s\]no brightred
73     keyword whole pragma\{\t\s\}\[\t\s\]clear\{\t\s\}\[\t\s\]yes brightred
74     keyword whole pragma\{\t\s\}\[\t\s\]code brightred
75     keyword whole pragma\{\t\s\}\[\t\s\]data brightred
76     keyword whole pragma\{\t\s\}\[\t\s\]debug\{\t\s\}\[\t\s\]codegen\{\t\s\}\[\t\s\]no brightred
77     keyword whole pragma\{\t\s\}\[\t\s\]debug\{\t\s\}\[\t\s\]codegen\{\t\s\}\[\t\s\]yes brightred
78     keyword whole pragma\{\t\s\}\[\t\s\]debug\{\t\s\}\[\t\s\]pcode\{\t\s\}\[\t\s\]no brightred
79     keyword whole pragma\{\t\s\}\[\t\s\]debug\{\t\s\}\[\t\s\]pcode\{\t\s\}\[\t\s\]yes brightred
80     keyword whole pragma\{\t\s\}\[\t\s\]eedata brightred
81     keyword whole pragma\{\t\s\}\[\t\s\]eeprom brightred
82     keyword whole pragma\{\t\s\}\[\t\s\]error brightred
83     keyword whole pragma\{\t\s\}\[\t\s\]frame brightred
84     keyword whole pragma\{\t\s\}\[\t\s\]fuse_def brightred
85     keyword whole pragma\{\t\s\}\[\t\s\]id brightred
86     keyword whole pragma\{\t\s\}\[\t\s\]iddata brightred
87     keyword whole pragma\{\t\s\}\[\t\s\]inline brightred
88     keyword whole pragma\{\t\s\}\[\t\s\]interrupt\{\t\s\}\[\t\s\]fast brightred
89     keyword whole pragma\{\t\s\}\[\t\s\]interrupt\{\t\s\}\[\t\s\]normal brightred
90     keyword whole pragma\{\t\s\}\[\t\s\]interrupt\{\t\s\}\[\t\s\]raw brightred
91     keyword whole pragma\{\t\s\}\[\t\s\]interrupt brightred
92     keyword whole pragma\{\t\s\}\[\t\s\]jump_table brightred
93     keyword whole pragma\{\t\s\}\[\t\s\]keep\{\t\s\}\[\t\s\]bank brightred
94     keyword whole pragma\{\t\s\}\[\t\s\]keep\{\t\s\}\[\t\s\]page brightred
95     keyword whole pragma\{\t\s\}\[\t\s\]keep brightred
96     keyword whole pragma\{\t\s\}\[\t\s\]name brightred
97     keyword whole pragma\{\t\s\}\[\t\s\]nostack brightred
98     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]expr_reduce\{\t\s\}\[\t\s\]no brightred
99     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]expr_reduce\{\t\s\}\[\t\s\]yes brightred
100     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]cexpr_reduce\{\t\s\}\[\t\s\]no brightred
101     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]cexpr_reduce\{\t\s\}\[\t\s\]yes brightred
102     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]const_detect\{\t\s\}\[\t\s\]no brightred
103     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]const_detect\{\t\s\}\[\t\s\]yes brightred
104     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]load_reduce\{\t\s\}\[\t\s\]no brightred
105     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]load_reduce\{\t\s\}\[\t\s\]yes brightred
106     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]temp_reduce\{\t\s\}\[\t\s\]no brightred
107     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]temp_reduce\{\t\s\}\[\t\s\]yes brightred
108     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]variable_frame\{\t\s\}\[\t\s\]no brightred
109     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]variable_frame\{\t\s\}\[\t\s\]yes brightred
110     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]variable_reduce\{\t\s\}\[\t\s\]no brightred
111     keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]variable_reduce\{\t\s\}\[\t\s\]yes brightred
112     keyword whole pragma\{\t\s\}\[\t\s\]shared brightred
113     keyword whole pragma\{\t\s\}\[\t\s\]size brightred
114     keyword whole pragma\{\t\s\}\[\t\s\]speed brightred
115     keyword whole pragma\{\t\s\}\[\t\s\]stack brightred
116     keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]bank brightred
117     keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]clock brightred
118     keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]chip brightred
119     keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]cpu brightred
120     keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]fuses brightred
121     keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]fuses_def brightred
122     keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]page brightred
123     keyword whole pragma\{\t\s\}\[\t\s\]target brightred
124     keyword whole pragma\{\t\s\}\[\t\s\]task brightred
125     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]all\{\t\s\}\[\t\s\]no brightred
126     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]all\{\t\s\}\[\t\s\]yes brightred
127     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]backend\{\t\s\}\[\t\s\]no brightred
128     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]backend\{\t\s\}\[\t\s\]yes brightred
129     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]conversion\{\t\s\}\[\t\s\]no brightred
130     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]conversion\{\t\s\}\[\t\s\]yes brightred
131     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]directives\{\t\s\}\[\t\s\]no brightred
132     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]directives\{\t\s\}\[\t\s\]yes brightred
133     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]misc\{\t\s\}\[\t\s\]no brightred
134     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]misc\{\t\s\}\[\t\s\]yes brightred
135     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]range\{\t\s\}\[\t\s\]no brightred
136     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]range\{\t\s\}\[\t\s\]yes brightred
137     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]stack_overflow\{\t\s\}\[\t\s\]no brightred
138     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]stack_overflow\{\t\s\}\[\t\s\]yes brightred
139     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]truncate\{\t\s\}\[\t\s\]no brightred
140     keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]truncate\{\t\s\}\[\t\s\]yes brightred
142     keyword whole block brightcyan
143     keyword whole case brightcyan
144     keyword whole else brightcyan
145     keyword whole elsif brightcyan
146     keyword whole for brightcyan
147     keyword whole forever brightcyan
148     keyword whole if brightcyan
149     keyword whole loop brightcyan
150     keyword whole otherwise brightcyan
151     keyword whole start brightcyan
152     keyword whole suspend brightcyan
153     keyword whole using brightcyan
154     keyword whole while brightcyan
156     keyword whole _debug yellow
157     keyword whole _error yellow
158     keyword whole _warn yellow
160     keyword whole _code_size brightred
161     keyword whole _fuses brightred
162     keyword whole _fuses_base brightred
163     keyword whole target_chip brightred
164     keyword whole target_cpu brightred
165     keyword whole target_clock brightred
167     keyword whole _usec_delay yellow
169 wholechars 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_
171     #=========================
172     # Numbers
173     #
174     keyword whole 0b\{01_\}\[01_\] brightgreen
175     keyword whole 0q\{0123456_\}\[0123456_\] brightgreen
176     keyword whole \[-\]\{0123456789_\}\[0123456789_\] brightgreen
177     keyword whole 0x\{0123456789ABCDEFabcdef_\}\[0123456789ABCDEFabcdef_\] brightgreen
179     #=========================
180     # Comments
181     #
182     keyword --*\n white magenta
183     keyword ;*\n white magenta
185     #=========================
186     # Special symbols
187     #
188     keyword - yellow
189     keyword \* yellow
190     keyword / yellow
191     keyword % yellow
192     keyword \+ yellow
193     keyword << yellow
194     keyword >> yellow
196     keyword ~ brightmagenta
197     keyword !! brightmagenta
198     keyword & brightmagenta
199     keyword | brightmagenta
200     keyword ^ brightmagenta
201     keyword ' brightmagenta
203     keyword : brightred
204     keyword != brightred
205     keyword == brightred
206     keyword <= brightred
207     keyword >= brightred
208     keyword < brightred
209     keyword > brightred
211     keyword = yellow
212     keyword ! brightmagenta
214     #=========================
215     # Separators
216     #
217     keyword ( brightcyan
218     keyword ) brightcyan
219     keyword [ brightcyan
220     keyword ] brightcyan
221     keyword { brightcyan
222     keyword } brightcyan
223     keyword , brightcyan
224     keyword . brightcyan
226     #=========================
227     # Assembler lines
228     #
229 context exclusive asm\{\t\s\}\[\t\s\] \n blue cyan
231     #=========================
232     # Strings
233     #
234 context " " black green
235     spellcheck
236     keyword \\" red
237     keyword \\\\ red
238     keyword \\\{abfnrtv?\} red
239     keyword \\0\{0123456789ABCDEFabcdef\}\{0123456789ABCDEFabcdef\}\{0123456789ABCDEFabcdef\} red
240     keyword \\\x\{0123456789ABCDEFabcdef\}\{0123456789ABCDEFabcdef\} red