This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/Logtalk/wenv/source-highlight/logtalk.lang

78 lines
2.7 KiB
Plaintext
Raw Normal View History

comment start "%"
comment delim "/*" "*/" multiline nested
string delim "\"" "\"" escape "\\"
string delim "'" "'" escape "\\"
keyword = '\<(abolish|c(urrent|reate))_(object|protocol|category)(?=\()',
'\<(object|protocol|category)_property(?=\()',
'\<extends_(object|protocol)(?=\()',
'\<imp(lements_protocol|orts_category)(?=\()',
'\<(instantiates|specializes)_class(?=\()',
'\<(current_event|(abolish|define)_events)(?=\()',
'\<(current|set)_logtalk_flag(?=\()',
'\<logtalk_(compile|l(oad|ibrary_path))(?=\()'
keyword = '\<(after|before)(?=\()',
'\<(parameter|this|se(lf|nder))(?=\()',
'\<(current_predicate|predicate_property)(?=\()',
'\<(expand_term|phrase)(?=\()',
'\<(clause|retract(all)?)(?=\()',
'\<a(bolish|ssert(a|z))(?=\()',
'\<(ca(ll|tch)|throw)(?=\()',
'\<((bag|set)of|f(ind|or)all)(?=\()',
'\<unify_with_occurs_check(?=\()',
'\<(functor|arg|copy_term)(?=\()',
'\<(rem|mod|abs|sign)(?=\()',
'\<(float_(integer|fractional)_part|float)(?=\()',
'\<(floor|truncate|round|ceiling)(?=\()',
'\<(cos|atan|exp|log|s(in|qrt))(?=\()',
'\<(var|atom(ic)?|integer|float|compound|n(onvar|umber))(?=\()',
'\<current_(in|out)put(?=\()',
'\<set_(in|out)put(?=\()',
'\<(open|close)(?=\()',
'\<flush_output(?=\()',
'\<flush_output\>',
'\<(stream_property|at_end_of_stream|set_stream_position)(?=\()',
'\<(get|p(eek|ut))_(byte|c(har|ode))(?=\()',
'\<nl(?=\()', '\<(nl)\>',
'\<(read(_term)?)(?=\()',
'\<(write(q|_(canonical|term))?)(?=\()',
'\<(op|current_op)(?=\()',
'\<((current_)?char_conversion)(?=\()',
'\<atom_(length|c(hars|o(ncat|des)))(?=\()',
'\<(char_code|sub_atom)(?=\()',
'\<number_(c(hars|odes))(?=\()',
'\<(set|current)_prolog_flag(?=\()',
'\<halt(?=\()', '\<(halt)\>',
'\<once(?=\()',
'\<(true|fail|repeat)\>',
'\<(is|rem|mod)\>'
variable = '\<[A-Z_][A-Za-z0-9_]*'
cbracket = "{|}"
preproc = '^[[:blank:]]*:-[[:blank:]](ca(lls|tegory) | p(ublic|r(ot(ocol|ected)|ivate)) | e(ncoding|xports) | in(fo|itialization) | alias | d(ynamic|iscontiguous) | meta_predicate | m(etapredicate|od(e|ule)|ultifile) | o(bject|p) | use(s|_module))(?=\()',
'^[[:blank:]]*:-[[:blank:]](end_(category|object|protocol) | dynamic)\.'
preproc = '\<(extends|i(nstantiates|mp(lements|orts))|specializes)(?=\()'
normal = '\<[a-z][A-Za-z0-9_]*'
number = '0\'[A-Za-z0-9] | 0b[0-1]+ | 0o[0-7]+ | 0x[0-9a-fA-F]+ | [0-9]+(\.[0-9]+)?([eE]([-+])?[0-9]+)?'
symbol = "::", "^^",
">>", "<<", "/\\", "\\/", "\\",
"=:=", "=\\=", "<", "=<", ">", ">=",
"=..",
"\\==", "==", "@=<", "@<", "@>=", "@>",
"=", "\\=",
"+", "-", "**", "*", "//", "/",
"-->",
"!", "->", ";", "\\+",
"?", "@",
":-"