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