1/**
2 * Name: ada
3 * Description: Ada95 programming language.
4 * Author: Rolf Ebert <ebert@waporo.muc.de>
5 */
6
7state ada extends HighlightEntry
8{
9  /* Comments. */
10  /--/ {
11    comment_face (true);
12    language_print ($0);
13    call (eat_one_line);
14    comment_face (false);
15  }
16
17  /* String constants. */
18  /\"/ {
19    string_face (true);
20    language_print ($0);
21    call (c_string);
22    string_face (false);
23  }
24
25
26  /* Character constants. */
27  /'.'|'\\\\.'/ {
28    string_face (true);
29    language_print ($0);
30    string_face (false);
31  }
32
33  /* Keywords.
34     (build-re '(abort abs abstract accept access aliased
35     all and array at begin body case constant declare
36     delay delta digits do else elsif end entry
37     exception exit for function generic goto if in
38     is limited loop mod new not null of or others
39     out package pragma private procedure protected raise
40     range record rem renames requeue return reverse
41     select separate subtype tagged task terminate then type
42     until use when while with xor))
43   */
44  /\b(a(b(ort|s(|tract))|cce(pt|ss)|l(iased|l)|nd|rray|t)|b(egin|ody)\
45|c(ase|onstant)|d(e(clare|l(ay|ta))|igits|o)\
46|e(ls(e|if)|n(d|try)|x(ception|it))|f(or|unction)|g(eneric|oto)\
47|i(f|n|s)|l(imited|oop)|mod|n(ew|ot|ull)|o(f|r|thers|ut)\
48|p(ackage|r(agma|ivate|o(cedure|tected)))\
49|r(a(ise|nge)|e(cord|m|names|queue|turn|verse))\
50|s(e(lect|parate)|ubtype)|t(a(gged|sk)|erminate|hen|ype)|u(ntil|se)\
51|w(h(en|ile)|ith)|xor)\b/ {
52    keyword_face (true);
53    language_print ($0);
54    keyword_face (false);
55  }
56}
57
58
59/*
60Local variables:
61mode: c
62End:
63*/
64