161 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			161 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								# JOE syntax highlight file for Prolog
							 | 
						||
| 
								 | 
							
								# by Christian Nicolai (http://mycrobase.de)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								=Idle
							 | 
						||
| 
								 | 
							
								=Ident
							 | 
						||
| 
								 | 
							
								=Comment
							 | 
						||
| 
								 | 
							
								=String		+Constant
							 | 
						||
| 
								 | 
							
								=Number		+Constant
							 | 
						||
| 
								 | 
							
								=Escape
							 | 
						||
| 
								 | 
							
								=StringEscape	+Escape
							 | 
						||
| 
								 | 
							
								=Keyword
							 | 
						||
| 
								 | 
							
								=Bad
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								=Brace
							 | 
						||
| 
								 | 
							
								=Variable
							 | 
						||
| 
								 | 
							
								=Predicate	+DefinedFunction +DefinedIdent
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:idle Idle
							 | 
						||
| 
								 | 
							
									*		idle
							 | 
						||
| 
								 | 
							
									"\n"		idle
							 | 
						||
| 
								 | 
							
									"%"		line_comment	recolor=-1
							 | 
						||
| 
								 | 
							
									"/"		maybe_comment
							 | 
						||
| 
								 | 
							
									"0-9"		first_digit	recolor=-1
							 | 
						||
| 
								 | 
							
									"'"		string_sq_1	recolor=-1
							 | 
						||
| 
								 | 
							
									"\""		string_dq_1	recolor=-1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									# marking -> predicate hilite
							 | 
						||
| 
								 | 
							
									# buffering -> keyword hilite
							 | 
						||
| 
								 | 
							
									"a-z"		atom		mark buffer
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									"A-Z"		variable	recolor=-1
							 | 
						||
| 
								 | 
							
									"_"		_variable
							 | 
						||
| 
								 | 
							
									"[]"		brace		recolor=-1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:line_comment Comment comment
							 | 
						||
| 
								 | 
							
									*		line_comment
							 | 
						||
| 
								 | 
							
									"BFHNTX"	line_comment	noeat call=comment_todo.comment_todo()
							 | 
						||
| 
								 | 
							
									"\n"		idle
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:maybe_comment Idle
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
									"*"		comment		recolor=-2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:comment Comment comment
							 | 
						||
| 
								 | 
							
									*		comment
							 | 
						||
| 
								 | 
							
									"*"		maybe_end_comment
							 | 
						||
| 
								 | 
							
									"BFHNTX"	comment		noeat call=comment_todo.comment_todo()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:maybe_end_comment Comment comment
							 | 
						||
| 
								 | 
							
									*		comment		noeat
							 | 
						||
| 
								 | 
							
									"/"		idle
							 | 
						||
| 
								 | 
							
									"*"		maybe_end_comment
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:brace Brace
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:string_sq_1 String string
							 | 
						||
| 
								 | 
							
									*		string_sq	noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:string_sq String string
							 | 
						||
| 
								 | 
							
									*		string_sq
							 | 
						||
| 
								 | 
							
									"\'"		idle
							 | 
						||
| 
								 | 
							
									"\\"		string_sq_esc	recolor=-1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:string_sq_esc StringEscape string
							 | 
						||
| 
								 | 
							
									*		string_sq
							 | 
						||
| 
								 | 
							
									"\n"		string_sq	recolor=-2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:string_dq_1 String string
							 | 
						||
| 
								 | 
							
									*		string_dq	noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:string_dq String string
							 | 
						||
| 
								 | 
							
									*		string_dq
							 | 
						||
| 
								 | 
							
									"\""		idle
							 | 
						||
| 
								 | 
							
									"\\"		string_dq_esc	recolor=-1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:string_dq_esc StringEscape string
							 | 
						||
| 
								 | 
							
									*		string_dq
							 | 
						||
| 
								 | 
							
									"\n"		string_dq	recolor=-2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:first_digit Number
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
									# no float support
							 | 
						||
| 
								 | 
							
								#	"."		float
							 | 
						||
| 
								 | 
							
									"0-9"		first_number
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:first_number Number
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
									"0-9"		first_number
							 | 
						||
| 
								 | 
							
									"."		float
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:float Number
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
									"eE"		epart
							 | 
						||
| 
								 | 
							
									"0-9"		float
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:epart Number
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
									"0-9+\-"	enum
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:enum Number
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
									"0-9"		enum
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# list of keywords includes some predicates...
							 | 
						||
| 
								 | 
							
								:atom Ident
							 | 
						||
| 
								 | 
							
									*		atom_end	noeat markend strings
							 | 
						||
| 
								 | 
							
									"append"	kw
							 | 
						||
| 
								 | 
							
									"atom"		kw
							 | 
						||
| 
								 | 
							
									"atomic"	kw
							 | 
						||
| 
								 | 
							
									"call"		kw
							 | 
						||
| 
								 | 
							
									"catch"		kw
							 | 
						||
| 
								 | 
							
									"clause"	kw
							 | 
						||
| 
								 | 
							
									"close"		kw
							 | 
						||
| 
								 | 
							
									"fail"		kw
							 | 
						||
| 
								 | 
							
									"findall"	kw
							 | 
						||
| 
								 | 
							
									"float"		kw
							 | 
						||
| 
								 | 
							
									"halt"		kw
							 | 
						||
| 
								 | 
							
									"integer"	kw
							 | 
						||
| 
								 | 
							
									"is"		kw
							 | 
						||
| 
								 | 
							
									"member"	kw
							 | 
						||
| 
								 | 
							
									"nl"		kw
							 | 
						||
| 
								 | 
							
									"nonvar"	kw
							 | 
						||
| 
								 | 
							
									"number"	kw
							 | 
						||
| 
								 | 
							
									"once"		kw
							 | 
						||
| 
								 | 
							
									"op"		kw
							 | 
						||
| 
								 | 
							
									"open"		kw
							 | 
						||
| 
								 | 
							
									"read"		kw
							 | 
						||
| 
								 | 
							
									"repeat"	kw
							 | 
						||
| 
								 | 
							
									"throw"		kw
							 | 
						||
| 
								 | 
							
									"true"		kw
							 | 
						||
| 
								 | 
							
									"var"		kw
							 | 
						||
| 
								 | 
							
									"write"		kw
							 | 
						||
| 
								 | 
							
								done
							 | 
						||
| 
								 | 
							
									"a-zA-Z0-9_"	atom
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								:kw Keyword
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:atom_end Idle
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
									" "		atom_end
							 | 
						||
| 
								 | 
							
									"("		pred_end	recolormark
							 | 
						||
| 
								 | 
							
									":"		maybe_pred_end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:pred_end Predicate
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:maybe_pred_end Idle
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
									"-"		pred_end	recolormark
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:variable Variable
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
									"a-zA-Z0-9_"	variable
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:_variable Idle
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
									# if it's not only _, color it
							 | 
						||
| 
								 | 
							
									"a-zA-Z0-9_"	variable	recolor=-2
							 |