comment start "%" comment delim "/*" "*/" multiline nested string delim "\"" "\"" escape "\\" string delim "'" "'" escape "\\" keyword = '\<(abolish|c(urrent|reate))_(object|protocol|category)(?=\()', '\<(object|protocol|category)_property(?=\()', '\', '\<(stream_property|at_end_of_stream|set_stream_position)(?=\()', '\<(get|p(eek|ut))_(byte|c(har|ode))(?=\()', '\', '\<(read(_term)?)(?=\()', '\<(write(q|_(canonical|term))?)(?=\()', '\<(op|current_op)(?=\()', '\<((current_)?char_conversion)(?=\()', '\', '\', '\<(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)|m(eta_predicate|od(e|ule)|ultifile)|synchronized|o(bject|p)|use(s|_module))(?=\()', '^[[:blank:]]*:-[[:blank:]](end_(category|object|protocol)|dynamic|synchronized|threaded)\.' 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 = "::", "^^", ":", ">>", "<<", "/\\", "\\/", "\\", "=:=", "=\\=", "<", "=<", ">", ">=", "=..", "\\==", "==", "@=<", "@<", "@>=", "@>", "=", "\\=", "+", "-", "**", "*", "//", "/", "-->", "!", "->", ";", "\\+", "?", "@", ":-"