Logtalk
		
			
		 
		
	
	
	
		
			
				\b([A-Z_][A-Za-z0-9_]*)
			
			
				:-\s(object)\(			
				:-\s(protocol)\(			
				:-\s(category)\(			
				:-\s(end_(object|protocol|category))\.			
				:-\s(alias)\(			
				:-\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|load))\(
				\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)'
			'