1/**
2 * Name: delphi
3 * Description: Delphi programming language.
4 * Author: Michael Van Canneyt <michael@tfdec1.fys.kuleuven.ac.be>
5 */
6
7state delphi extends HighlightEntry
8{
9  BEGIN {
10    require_state (pascal);
11  }
12
13  /* comments */
14  /(\{|\(\*)/ {
15    comment_face (true);
16    language_print ($0);
17    call (pascal_comment);
18    comment_face (false);
19  }
20  /* C++ -style comments */
21  /\/\// {
22    comment_face (true);
23    language_print ($0);
24    call (eat_one_line);
25    comment_face (false);
26  }
27  /* strings */
28  /[\']/ {
29    string_face (true);
30    language_print ($0);
31    call (pascal_string);
32    string_face (false);
33  }
34  /* Keywords.
35     (build-re '(and asm array begin case const constructor destructor
36     div do downto else end file for function goto if implementation
37     in inline interface label mod nil not object of or packed
38     procedure program record repeat set shlr string then to type
39     unit until uses var while with xor As class except exports
40     finalization finally inherited initialization is library property
41     raise threAdvar try absolute abstract assembler automated cdecl
42     default dispid dynamic export external far forward index message
43     name near nodefault override pascal private protected public
44     published read register resident stdcall stored virtual write)
45     t)
46   */
47  /\b(A[sS]\
48|[aA]([bB][sS]([oO][lL][uU][tT][eE]|[tT][rR][aA][cC][tT])|[nN][dD]\
49|[rR][rR][aA][yY]|[sS]([mM]|[sS][eE][mM][bB][lL][eE][rR])\
50|[uU][tT][oO][mM][aA][tT][eE][dD])\
51|[bB][eE][gG][iI][nN]\
52|[cC]([aA][sS][eE]|[dD][eE][cC][lL]|[lL][aA][sS][sS]\
53|[oO][nN][sS][tT](|[rR][uU][cC][tT][oO][rR]))\
54|[dD]([eE]([fF][aA][uU][lL][tT]|[sS][tT][rR][uU][cC][tT][oO][rR])\
55|[iI]([sS][pP][iI][dD]|[vV])|[oO](|[wW][nN][tT][oO])\
56|[yY][nN][aA][mM][iI][cC])\
57|[eE]([lL][sS][eE]|[nN][dD]\
58|[xX]([cC][eE][pP][tT]|[pP][oO][rR][tT](|[sS])|[tT][eE][rR][nN][aA][lL]))\
59|[fF]([aA][rR]\
60|[iI]([lL][eE]|[nN][aA][lL]([iI][zZ][aA][tT][iI][oO][nN]|[lL][yY]))\
61|[oO][rR](|[wW][aA][rR][dD])|[uU][nN][cC][tT][iI][oO][nN])\
62|[gG][oO][tT][oO]\
63|[iI]([fF]|[mM][pP][lL][eE][mM][eE][nN][tT][aA][tT][iI][oO][nN]\
64|[nN](|[dD][eE][xX]|[hH][eE][rR][iI][tT][eE][dD]\
65|[iI][tT][iI][aA][lL][iI][zZ][aA][tT][iI][oO][nN]|[lL][iI][nN][eE]\
66|[tT][eE][rR][fF][aA][cC][eE])\
67|[sS])\
68|[lL]([aA][bB][eE][lL]|[iI][bB][rR][aA][rR][yY])\
69|[mM]([eE][sS][sS][aA][gG][eE]|[oO][dD])\
70|[nN]([aA][mM][eE]|[eE][aA][rR]|[iI][lL]\
71|[oO]([dD][eE][fF][aA][uU][lL][tT]|[tT]))\
72|[oO]([bB][jJ][eE][cC][tT]|[fF]|[rR]|[vV][eE][rR][rR][iI][dD][eE])\
73|[pP]([aA]([cC][kK][eE][dD]|[sS][cC][aA][lL])\
74|[rR]([iI][vV][aA][tT][eE]\
75|[oO]([cC][eE][dD][uU][rR][eE]|[gG][rR][aA][mM]|[pP][eE][rR][tT][yY]\
76|[tT][eE][cC][tT][eE][dD]))\
77|[uU][bB][lL][iI]([cC]|[sS][hH][eE][dD]))\
78|[rR]([aA][iI][sS][eE]\
79|[eE]([aA][dD]|[cC][oO][rR][dD]|[gG][iI][sS][tT][eE][rR]|[pP][eE][aA][tT]\
80|[sS][iI][dD][eE][nN][tT]))\
81|[sS]([eE][tT]|[hH][lL][rR]\
82|[tT]([dD][cC][aA][lL][lL]|[oO][rR][eE][dD]|[rR][iI][nN][gG]))\
83|[tT]([hH]([eE][nN]|[rR][eE]A[dD][vV][aA][rR])|[oO]|[rR][yY]|[yY][pP][eE])\
84|[uU]([nN]([iI][tT]|[tT][iI][lL])|[sS][eE][sS])\
85|[vV]([aA][rR]|[iI][rR][tT][uU][aA][lL])\
86|[wW]([hH][iI][lL][eE]|[iI][tT][hH]|[rR][iI][tT][eE])|[xX][oO][rR])\b/ {
87    keyword_face (true);
88    language_print ($0);
89    keyword_face (false);
90  }
91}
92
93
94/*
95Local variables:
96mode: c
97End:
98*/
99