/** * Name: oberon * Description: Oberon programming language * Author: Daniel Hottinger * * Last update: Sat Apr 07 14:24:32 CEST 2001 */ state oberon_comment extends Highlight { /(\*\))/ { language_print ($0); return; } } state oberon_string extends Highlight { /[\"\']/ { language_print ($0); return; } } state oberon extends HighlightEntry { /* comments */ /(\(\*)/ { comment_face (true); language_print ($0); call (oberon_comment); comment_face (false); } /* strings */ /[\"\']/ { string_face (true); language_print ($0); call (oberon_string); string_face (false); } /* Keywords. (build-re '(& ~ array begin case const div do downto else elsif end exit for goto is if import in label loop mod module nil of or pointer procedure record repeat return set then to type until var while with xor) t) */ /\b(&|[aA][rR][rR][aA][yY]|[bB][eE][gG][iI][nN]\ |[cC]([aA][sS][eE]|[oO][nN][sS][tT])\ |[dD]([iI][vV]|[oO](|[wW][nN][tT][oO]))|[eE]([lL][sS][eE]|[nN][dD])\ |[fF][oO][rR]|[gG][oO][tT][oO]|[iI]([fF]|[mM][pP][oO][rR][tT])\ |[lL][aA][bB][eE][lL]|[mM][oO][dD](|[uU][lL][eE])|[nN][iI][lL]\ |[oO]([fF]|[rR])|[pP][rR][oO][cC][eE][dD][uU][rR][eE]\ |[rR][eE]([cC][oO][rR][dD]|[pP][eE][aA][tT]|[tT][uU][rR][nN])\ |[sS][eE][tT]|[tT]([hH][eE][nN]|[oO]|[yY][pP][eE])\ |[uU][nN][tT][iI][lL]|[vV][aA][rR]|[wW]([hH][iI][lL][eE]|[iI][tT][hH])\ |[xX][oO][rR]|~)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */