text/x-logtalk
		*.lgt
		%
		/*
		*/
	
	
		
		
		
		
		
		
		
		
		
	
	
		
			"
			"
		
	
		
			'
			'
		
	
		
	
		
		
		
			^\s*:-\s
			(object)(?=[(])			
			(protocol)(?=[(])			
			(category)(?=[(])			
			(end_(object|protocol|category))(?=[.])			
		
		
			(specializes)(?=[(])
			(extends)(?=[(])
			(i(mp(orts|lements)|nstantiates))(?=[(])
		
		
 			^\s*:-\s
			
			(p(ublic|r(otected|ivate)))(?=[(])			
 			
			(synchronized)(?=[(])			
			(synchronized)(?=[.])			
			(threaded)(?=[.])			
			
			(alias)(?=[(])			
			(e(ncoding|xport))(?=[(])			
			(in(itialization|fo))(?=[(])			
			(mod(e|ule))(?=[(])			
			(dynamic)(?=[(])			
			(dynamic)(?=[.])			
			(discontiguous)(?=[(])			
			(m(eta_predicate|ultifile))(?=[(])			
			(op)(?=[(])			
			(calls)(?=[(])			
			(use(s|_module))(?=[(])			
		
		
			
			(parameter)(?=[(])
			(se(lf|nder))(?=[(])
			(this)(?=[(])
			
			(current_predicate)(?=[(])
			(predicate_property)(?=[(])
			
			(a(bolish|ssert(a|z)))(?=[(])
			(clause)(?=[(])
			(retract(all)?)(?=[(])
			
			((bag|set)of)(?=[(])
			(f(ind|or)all)(?=[(])
			
			(before)(?=[(])
			(after)(?=[(])
			
			(expand_term)(?=[(])
			(term_expansion)(?=[(])
			(phrase)(?=[(])
		
		
			
			((abolish|c(reate|urrent))_(object|protocol|category))(?=[(])
			((object|protocol|category)_property)(?=[(])
			
			(extends_(object|protocol))(?=[(])
			(imp(lements_protocol|orts_category))(?=[(])
			((instantiat|specializ)es_class)(?=[(])
			
			(current_event)(?=[(])
			((abolish|define)_events)(?=[(])
			
			((se|curren)t_logtalk_flag)(?=[(])
			
			(logtalk_(compile|l(ibrary_path|oad)))(?=[(])
			
			(threaded(_(call|once|ignore|exit|peek|wait|notify))?)(?=[(])
			
			(forall)(?=[(])
		
		
			
			(unify_with_occurs_check)(?=[(])
			
			(atom(ic)?)(?=[(])
			(integer)(?=[(])
			(float)(?=[(])
			(compound)(?=[(])
			((non)?var)(?=[(])
			(number)(?=[(])
			
			(functor)(?=[(])
			(arg)(?=[(])
			(copy_term)(?=[(])
			
			is
			
			(rem)(?=[(])
			rem
			(mod)(?=[(])
			mod
			(abs)(?=[(])
			(sign)(?=[(])
			(float(_(integer|fractional)_part)?)(?=[(])
			(floor)(?=[(])
			(truncate)(?=[(])
			(round)(?=[(])
			(ceiling)(?=[(])
			
			(sin)(?=[(])
			(cos)(?=[(])
			(atan)(?=[(])
			(exp)(?=[(])
			(log)(?=[(])
			(sqrt)(?=[(])
			
			((current|set)_(in|out)put)(?=[(])
			(open)(?=[(])
			(close)(?=[(])
			(flush_output)(?=[(])
			flush_output
			(stream_property)(?=[(])
			(at_end_of_stream)(?=[(])
			at_end_of_stream
			(set_stream_position)(?=[(])
			
			((get|p(eek|ut))_c(har|ode))(?=[(])
			(nl)(?=[(])
			nl
			
			((get|peek|put)_byte)(?=[(])
			
			(read(_term)?)(?=[(])
			(write(q|_(canonical|term))?)(?=[(])
			((current_)?op)(?=[(])
			((current_)?char_conversion)(?=[(])
			
			(once)(?=[(])
			(true|fail|repeat)(?![-!(^~])
			
			(atom_(length|c(hars|o(ncat|des))))(?=[(])
			(sub_atom)(?=[(])
			(char_code)(?=[(])
			(number_c(hars|odes))(?=[(])
			
			((set|current)_prolog_flag)(?=[(])
			(halt)(?=[(])
			halt
		
		
			
			
			
			=
			\\=
			
			==
			\\==
			@<
			@=<
			@>=
			@>
			
			=\.\.
			
			=:=
			=\\=
			<
			=<
			>
			>=
			
			\+(?![,a-z])
			(?<!:)(-)(?![,a-z])
			\*
			//
			/
			
			\*\*
			
			>>
			<<
			/\\
			\\/
			\\
			
			(\\\+|!)
		
	
		
			
	        \b(0'.|0b[0-1]+|0o[0-7]+|0x[0-9a-fA-F]+|\d+(\.\d+)?([eE]([-+])?\d+)?)
			
		
	
		
			
			\b[A-Z_][a-zA-Z0-9_]*
			
		
		
			
			
			::			
			\^\^
		
		
			
			
			:			
		
		
			
			
			\{			
			\}