Logtalk \b([A-Z_][A-Za-z0-9_]*) :-\s(object)\( :-\s(protocol)\( :-\s(category)\( :-\s(end_(object|protocol|category))\. :-\s(alias)\( :-\s(encoding)\( :-\s(initialization)\( :-\s(info)\( :-\s(mode)\( :-\s(dynamic)\( :-\s(dynamic)\. :-\s(discontiguous)\( :-\s(p(ublic|r(otected|ivate)))\( :-\s(m(etapredicate|ultifile))\( :-\s(op)\( :-\s(calls)\( :-\s(uses)\( \b(instantiates)\( \b(specializes)\( \b(extends)\( \b(imp(orts|lements))\( (::) (\^\^) (\{) (\}) \b(ca(ll|tch))\( \b(throw)\( \b(true)[^[(A-Za-z_]] \b(fail)[^[(A-Za-z_]] \s(-->)\s \s(->)\s (!) (;) \b(parameter)\( \b(se(lf|nder))\( \b(this)\( \b(current_predicate)\( \b(predicate_property)\( \b(abolish)\( \b(assert(a|z))\( \b(clause)\( \b(retract(all)?)\( \b((bag|set)of)\( \b(f(ind|or)all)\( \b(before)\( \b(after)\( \b(expand_term)\( \b(phrase)\( \b(current_(object|protocol|category|event))\( \b(create_(object|protocol|category))\( \b((object|protocol|category)_property)\( \b(abolish_(object|protocol|category|events))\( \b(extends_(object|protocol))\( \b(implements_protocol)\( \b((instantiates|specializes)_class)\( \b(imports_category)\( \b(define_events)\( \b((set|current)_logtalk_flag)\( \b(logtalk_(compile|l(ibrary_path|oad)))\( \b(forall)\( \s(=)\s \s(\\=)\s \b(unify_with_occurs_check)\( \b(atom(ic)?)\( \b(integer)\( \b(float)\( \b(compound)\( \b((non)?var)\( \b(number)\( (==) (\\==) (@<) (@=<) (@>=) (@>) \b(functor)\( \b(arg)\( (=\.\.) \b(copy_term)\( \s(is)\s (=:=) (=\\=) (<) (=<) (>) (>=) (\+) (?<!:)(-) (\*) (//) (/) \s(rem)\s \s(mod)\s \b(rem)\( \b(mod)\( \b(abs)\( \b(sign)\( \b(float(_(integer|fractional)_part)?)\( \b(floor)\( \b(truncate)\( \b(round)\( \b(ceiling)\( (\*\*) \b(sin)\( \b(cos)\( \b(atan)\( \b(exp)\( \b(log)\( \b(sqrt)\( (>>) (<<) (/\\) (\\/) (\\) \b(current_(input|output))\( \b(set_(input|output))\( \b(open)\( \b(close)\( \b(flush_output)\( \b(stream_property)\( \b(at_end_of_stream)\( \b(set_stream_position)\( \b(flush_output)[^[(A-Za-z_]] \b(at_end_of_stream)[^[(A-Za-z_]] \b(get_(char|code))\( \b(peek_(char|code))\( \b(put_(char|code))\( \b(nl)\( \b(nl)\b \b((get|peek|put)_byte)\( \b(read(_term)?)\( \b(write(q)?)\( \b(write_(canonical|term))\( \b((current_)?op)\( \b((current_)?char_conversion)\( (\\\+) \b(once)\( \b(repeat)[^[(A-Za-z_]] \b(atom_(length|concat|chars|codes))\( \b(sub_atom)\( \b(char_code)\( \b(number_(chars|codes))\( \b((set|current)_prolog_flag)\( \b(halt)\( \b(halt)[^[(A-Za-z_]] (?<=[^[A-Za-z_0-9]]|^)([0-9]+((\.[0-9]+)?([eE][-+][0-9]+)?)?) (?<=[^[A-Za-z_0-9]]|^)(0b[0-1]+) (?<=[^[A-Za-z_0-9]]|^)(0o[0-7]+) (?<=[^[A-Za-z_0-9]]|^)(0x[0-9a-fA-F]+) (?<=[^[A-Za-z_0-9]]|^)(0'[0-9a-zA-Z]) (@)(?=(,|[:alpha:])) (\?)(?=(,|[:alpha:])) (\+)(?=(,|[:alpha:])) (-)(?=(,|[:alpha:])) (::)(?=(,|[)])) (\*)(?=(,|[)])) (:-) " " (?<!0)' ' /\* \*/ % [\n\r]