Logtalk
		
			
		 
		
	
	
	
		
			
				\b([A-Z_][A-Za-z0-9_]*)
			
			
				:-\s(object)\(			
				:-\s(protocol)\(			
				:-\s(category)\(			
				:-\s(end_(object|protocol|category))\.			
				:-\s(alias)\(			
				:-\s(e(ncoding|xport))\(			
				:-\s(initialization)\(			
				:-\s(info)\(			
				:-\s(mod(e|ule))\(			
				:-\s(dynamic)\(			
				:-\s(dynamic)\.			
				:-\s(discontiguous)\(			
				:-\s(p(ublic|r(otected|ivate)))\(			
				:-\s(m(eta_predicate|ultifile))\(			
				:-\s(op)\(			
				:-\s(calls)\(			
				:-\s(use(s|_module))\(			
				:-\s(synchronized)\(			
				:-\s(synchronized)\.			
				:-\s(threaded)\.			
			
			
				\b(specializes)\(
				\b(extends)\(
				\b(i(mp(orts|lements)|nstantiates))\(
			
			
				(::)			
				(\^\^)
			
			
				(:)			
			
			
				(\{)			
				(\})
			
			
				\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(a(bolish|ssert(a|z)))\(
				\b(clause)\(
				\b(retract(all)?)\(
				\b((bag|set)of)\(
				\b(f(ind|or)all)\(
				\b(before)\(
				\b(after)\(
				\b(expand_term)\(
				\b(term_expansion)\(
				\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(impl(ements_protocol|orts_category))\(
				\b((instantiat|specializ)es_class)\(
				\b(define_events)\(
				\b((se|curren)t_logtalk_flag)\(
				\b(logtalk_(compile|l(ibrary_path|oad)))\(
				\b(forall)\(
				
				\b(threaded(_(call|once|ignore|exit|peek|wait|notify))?)\(
			
			
				
				\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((curren|se)t_(in|out)put)\(
				\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|p(eek|ut))_c(har|ode))\(
				\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|c(hars|o(ncat|des))))\(
				\b(sub_atom)\(
				\b(char_code)\(
				\b(number_c(har|ode)s)\(
				
				\b((se|curren)t_prolog_flag)\(
				\b(halt)\(
				\b(halt)[^[(A-Za-z_]]
			
			
				(@)(?=(,|[:alpha:]))			
				(\?)(?=(,|[:alpha:]))
				(\+)(?=(,|[:alpha:]))
				(-)(?=(,|[:alpha:]))
			
			
				(?<=[^[A-Za-z_0-9]]|^)(\d+((\.\d+)?([eE]([-+])?\d+)?)?)
				(?<=[^[A-Za-z_0-9]]|^)(0b[0-1]+)
				(?<=[^[A-Za-z_0-9]]|^)(0o[0-7]+)
				(?<=[^[A-Za-z_0-9]]|^)(0x\h+)
				(?<=[^[A-Za-z_0-9]]|^)(0'.)
			
			
				(::)(?=(,|[)]))			
				(\*)(?=(,|[)]))
			
			
				(:-)
			
		
		
			(?<!0')"
			"
		
		
			(?<!0)'
			'