state inf_string extends Highlight
{
/\"\"/ {
language_print($0);
}
/\"/ {
language_print($0);
return;
}
}
state inf extends HighlightEntry
{
/;/ {
comment_face(true);
language_print($0);
call(eat_one_line);
comment_face(false);
}
/^(\[)([^\]]+)(\][ \t]*)/ {
language_print($1);
function_name_face(true);
language_print($2);
function_name_face(false);
language_print($3);
}
/\"\"\"/ {
string_face(true);
language_print($0);
call(inf_string);
string_face(false);
}
/\"\"/ {
string_face(true);
language_print($0);
string_face(false);
}
/\"/ {
string_face(true);
language_print($0);
call(inf_string);
string_face(false);
}
/^([a-zA-Z_][a-zA-Z_0-9]*)([ \t]*=[ \t]*\+)/ {
reference_face(true);
language_print($1);
reference_face(false);
language_print($2);
}
/(goto)([ \t]*)([a-zA-Z_][a-zA-Z_0-9]*)/ {
keyword_face(true);
language_print($1);
keyword_face(false);
language_print($2);
reference_face(true);
language_print($3);
reference_face(false);
}
/\bshell\b/i {
builtin_face(true);
language_print($0);
builtin_face(false);
}
/^([ \t]*)(read-syms|detect|install)([ \t]+)([a-zA-Z_][a-zA-Z_0-9]*)/i {
language_print($1);
builtin_face(true);
language_print($2);
builtin_face(false);
language_print($3);
reference_face(true);
language_print($4);
reference_face(false);
}
/^([ \t]*)(read-syms|detect|install)\b/i {
language_print($1);
builtin_face(true);
language_print($2);
builtin_face(false);
}
/([a-zA-Z_][a-zA-Z_0-9]*[ \t]*=)/ {
language_print($0);
}
/\b(e(lse(|-if(int|str)|if-contains)|nd(forlistdo|if)|xit)|forlistdo|goto\
|if(contains|int|str)|re(ad-syms|turn)\
|set(|-(add|d(ectohex|iv)|hextodec|mul|or|sub(|st))))\b(\(i\))?/i {
keyword_face(true);
language_print($0);
keyword_face(false);
}
}