1preproc = "bgidriver|bgifont|check_determ|code|config|diagnostics|error|errorlevel|heap|gstacksize|nobreak|nowarnings|printermenu|project"
2
3comment start "%"
4
5include "number.lang"
6
7string delim "\"" "\"" escape "\\"
8string delim "'" "'"  escape "\\"
9
10keyword = "abstract|align|as|and|class|clauses|constants|database|determ",
11	"domains|elsedef|endclass|enddef|erroneous|facts|failure|global",
12	"goal|if|ifdef|ifndef|implement|include|language|multi|nocopy",
13	"nondeterm|object|or|procedure|protected|predicates|reference",
14	"single|static|struct|this",
15	"ABSTRACT|ALIGN|AS|AND|CLASS|CLAUSES|CONSTANTS|DATABASE|DETERM",
16	"DOMAINS|ELSEDEF|ENDCLASS|ENDDEF|ERRONEOUS|FACTS|FAILURE|GLOBAL",
17	"GOAL|IF|IFDEF|IFNDEF|IMPLEMENT|INCLUDE|LANGUAGE|MULTI|NOCOPY",
18	"NONDETERM|OBJECT|OR|PROCEDURE|PROTECTED|PREDICATES|REFERENCE",
19	"SINGLE|STATIC|STRUCT|THIS",
20	"assert|asserta|assertz|bound|chain_inserta|chain_insertafter",
21	"chain_insertz|chain_terms|consult|db_btrees|db_chains|fail",
22	"findall|format|free|msgrecv|msgsend|nl|not|readterm|ref_term|retract",
23	"retractall|save|term_bin|term_replace|term_str|trap|write|writef",
24	"mod|div|abs|exp|ln|log|sqrt|round|trunc|val|cos|sin|tan|arctan",
25	"random|randominit"
26
27comment delim "/*" "*/" multiline nested
28
29type = "char|real|string|symbol|byte|sbyte|short|ushort|word|integer|unsigned|dword|long|ulong|binary|ref"
30
31include "symbols.lang"
32
33cbracket = "{|}"
34
35include "function.lang"
36
37variable = '[[:upper:]][[:word:]]*|_'