1/**
2 * Name: idl
3 * Description: IDL (CORBA Interface Definition Language)
4 */
5
6state idl extends HighlightEntry
7{
8  /* Comments. */
9  /\/\*/ {
10    comment_face (true);
11    language_print ($0);
12    call (c_comment);
13    comment_face (false);
14  }
15  /\/\// {
16    comment_face (true);
17    language_print ($0);
18    call (eat_one_line);
19    comment_face (false);
20  }
21
22  /* Character constants. */
23  /'.'|'\\\\.'/ {
24    string_face (true);
25    language_print ($0);
26    string_face (false);
27  }
28
29  /* String constants. */
30  /\"/ {
31    string_face (true);
32    language_print ($0);
33    call (c_string);
34    string_face (false);
35  }
36
37  /* Pre-processor lines. */
38  /^#/ {
39    reference_face (true);
40    language_print ($0);
41    call (c_ppline);
42    reference_face (false);
43  }
44
45  /* Boolean literals */
46  /\b(TRUE|FALSE)\b/ {
47    string_face (true);
48    language_print ($0);
49    string_face (false);
50  }
51
52  /* Keywords.
53    (build-re '(any attribute boolean case char const context default double
54    enum exception fixed float in inout interface long module Object
55    octet oneway out native raises readonly sequence short string struct switch
56    typedef unsigned union void wchar wstring))
57  */
58  /\b(Object|a(ny|ttribute)|boolean|c(ase|har|on(st|text))|d(efault|ouble)\
59|e(num|xception)|f(ixed|loat)|in(|out|terface)|long|module|native\
60|o(ctet|neway|ut)|r(aises|eadonly)|s(equence|hort|tr(ing|uct)|witch)\
61|typedef|un(ion|signed)|void|w(char|string))\b/ {
62    keyword_face (true);
63    language_print ($0);
64    keyword_face (false);
65  }
66}
67
68
69/*
70Local variables:
71mode: c
72End:
73*/
74