You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			253 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Plaintext
		
	
		
		
			
		
	
	
			253 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Plaintext
		
	
| 
											2 years ago
										 | //======================================================================= | ||
|  | //================ Lex class support ==================================== | ||
|  | //======================================================================= | ||
|  | // 		lexClass: | ||
|  | //			name		= c_PascalString | ||
|  | //		+	parent		= c_Pascal | ||
|  | //		+	parent:dyn	= c_Pascal | ||
|  | // | ||
|  | //		+	children		= 0 | ||
|  | //		+	children		= class1, class2, ... | ||
|  | // | ||
|  | //		+	previous:class			=	 | ||
|  | //		+	previous:tag			=	 | ||
|  | //		+	previous:tag:separators	=	 | ||
|  | // | ||
|  | //		+	start:class		=  | ||
|  | //		+	start:Tag		= '"' | ||
|  | // | ||
|  | //		+	skip:Tag		= '\"' | ||
|  | // | ||
|  | //		+	end:class		= // | ||
|  | //		+	end:Tag			= '"' | ||
|  | //		+	end:separators	= ' ' | ||
|  | // | ||
|  | //		+	Token:tag		= 'if', 'for', 'while', 'do' | ||
|  | //		+	Token:start:separators	=  | ||
|  | //		+	Token:end:separators	=  | ||
|  | //----------------------------------------------------------------------- | ||
|  | //---------------- Attributes ------------------------------------------- | ||
|  | //----------------------------------------------------------------------- | ||
|  | //		txt:colorFG	= 0xffc0c0 // color value in hex format. default: black	 | ||
|  | //		txt:colorBK	= 0xffc0c0 // color value in hex format. default: white		 | ||
|  | // | ||
|  | //		txt:colorSelFG	= 0xffc0c0 // color value in hex format. default: white | ||
|  | //		txt:colorSelBK	= 0xffc0c0 // color value in hex format. default: black | ||
|  | // | ||
|  | //		txt:Bold	= 1 // {1,0} default: 0 | ||
|  | //		txt:Italic	= 1 // {1,0} default: 0 | ||
|  | //		txt:Underline	= 1 // {1,0} default: 0 | ||
|  | // | ||
|  | //		caseSensitive	= 1 // {1,0} default: 0 | ||
|  | // | ||
|  | //		Collapsable	= 1 // {1,0} default: 0 | ||
|  | //		CollapsedText	= '/*...*/' // quoted string value. default: '[..]'	 | ||
|  | // | ||
|  | //		ParseOnScreen	= 1 // {1,0} default: 0 | ||
|  | ///////////////////////////////////////////////////////////////////////// | ||
|  | 
 | ||
|  | //======================================================================= | ||
|  | //================ Variables support ==================================== | ||
|  | //======================================================================= | ||
|  | // NON operation - example:   @alpha:not | ||
|  | // | ||
|  | // @alpha	= a-z, A-Z | ||
|  | // @digit	= 0-9 | ||
|  | // @HexDdigit	= 0-9, a-f, A-F | ||
|  | // @specs	= "~`!@#$%^&*()_-+=\\|{}[];:'\",.<>/?" | ||
|  | // @EOL		= End Of Line | ||
|  | //--------------------------------------------- | ||
|  | // special tags:  '\\', '\'', '\t', '\r', '\n' | ||
|  | ///////////////////////////////////////////////////////////////////////// | ||
|  | 
 | ||
|  | lexClass:  | ||
|  | 	name			= c_Pascal | ||
|  | 	parent:file		= <*.pas|*.dpr|*.dpk|*.inc|*.int>	 | ||
|  | 	caseSensitive		= 0 | ||
|  | 
 | ||
|  | lexClass: | ||
|  | 	name		= c_PascalCodeBlock_Start		 | ||
|  | 	parent		= c_Pascal, c_PascalCodeBlock	 | ||
|  | 	children	= 0	 | ||
|  | 	previous:tag	= ';', ' ', '\t', @eol | ||
|  | 	start:Tag	= 'begin' | ||
|  | 	end:Tag		= '\t', ' ', @eol | ||
|  | 	end:Separators	= '\t', ' ', @eol | ||
|  | 	txt:colorFG	= 0x0000FF | ||
|  |     txt:bold    = 1 | ||
|  | 	 | ||
|  | lexClass: | ||
|  | 	name		= c_PascalCodeBlock_End		 | ||
|  | 	parent		= c_Pascal, c_PascalCodeBlock, c_PascalCodeBlock	 | ||
|  | 	children	= 0	 | ||
|  | 	previous:tag	= @specs, ' ', '\t', @eol | ||
|  | 	start:Tag	= 'end'	 | ||
|  | 	end:Separators	= @specs, @eol | ||
|  | 	txt:colorFG	= 0x0000FF | ||
|  |     txt:bold    = 1 | ||
|  | 
 | ||
|  | lexClass: | ||
|  | 	name		= c_PascalCodeBlock	 | ||
|  | 	parent		= c_Pascal, c_PascalCodeBlock | ||
|  | 	children	= c_PascalCodeBlock_End		 | ||
|  | 	start:CLASS	= c_PascalCodeBlock_Start	 | ||
|  | 	end:CLASS	= c_PascalCodeBlock_End	 | ||
|  | 	Collapsable	= 1  | ||
|  | 	CollapsedText	= '...' | ||
|  | 
 | ||
|  | lexClass: 	 | ||
|  | 	name			= c_String	 | ||
|  | 	parent:dyn		= c_Pascal, c_PascalCodeBlock | ||
|  | 	children		= 0 | ||
|  | 	start:Tag		= '"' | ||
|  | 	skip:Tag		= '\\"', '\\\r\n', '\\\n\r', '\\\n', '\\\r'	 | ||
|  | 	end:Tag			= '"', @eol | ||
|  | 	txt:colorFG		= 0xE00000 | ||
|  | 
 | ||
|  | lexClass: 	 | ||
|  | 	name			= c_String_char	 | ||
|  | 	parent:dyn		= c_Pascal, c_PascalCodeBlock | ||
|  | 	children		= 0 | ||
|  | 	start:Tag		= '\'' | ||
|  | 	//skip:Tag		= '\\"', '\\\r\n', '\\\n\r', '\\\n', '\\\r'	 | ||
|  | 	end:Tag			= '\'', @eol | ||
|  | 	txt:colorFG		= 0xE00000 | ||
|  | 
 | ||
|  | lexClass:	 | ||
|  | 	name		= c_PascalCommentSL | ||
|  | 	parent		= c_Pascal, c_PascalCodeBlock | ||
|  | 	children	= 0		 | ||
|  | 	start:tag	='//' | ||
|  | 	skip:Tag	= '\\\r\n', '\\\n\r', '\\\n', '\\\r'	 | ||
|  | 	end:tag		= @eol | ||
|  | 	txt:colorFG	= 0x00A000 | ||
|  | 
 | ||
|  | lexClass: | ||
|  | 	name		= c_PascalCommentML1	 | ||
|  | 	parent:dyn	= c_Pascal, c_PascalCodeBlock | ||
|  | 	children	= 0 | ||
|  | 	start:Tag	='{' | ||
|  | 	end:Tag		='}' | ||
|  | 	Collapsable	= 1  | ||
|  | 	CollapsedText	= '{...}' 	 | ||
|  | 	txt:colorFG	= 0x00CF00 | ||
|  | 
 | ||
|  | lexClass: | ||
|  | 	name		= c_PascalCommentML2 | ||
|  | 	parent:dyn	= c_Pascal, c_PascalCodeBlock | ||
|  | 	children	= 0 | ||
|  | 	start:Tag	='(*' | ||
|  | 	end:Tag		='*)' | ||
|  | 	Collapsable	= 1  | ||
|  | 	CollapsedText	= '(*...*)' 	 | ||
|  | 	txt:colorFG	= 0x00CF00 | ||
|  | 
 | ||
|  | lexClass:	 | ||
|  | 	name		= c_KeywordsWord | ||
|  | 	ParseOnScreen	= 1 | ||
|  | 	parent:Dyn	= c_Pascal, c_PascalCodeBlock | ||
|  | 	children	= 0	 | ||
|  | 	token:tag	= 'and', 'array', 'as', 'const', 'div', 'file', 'in', 'is' | ||
|  | 	token:tag	= 'mod', 'not', 'of', 'or', 'out', 'shl', 'shr', 'threadvar', 'var', 'xor' | ||
|  | 	token:start:separators	= @specs, @eol | ||
|  | 	token:end:separators	= @specs, @eol | ||
|  | 	txt:colorFG	= 0xAA33BB | ||
|  | 	txt:bold = 1 | ||
|  | 
 | ||
|  | lexClass:	 | ||
|  | 	name		= c_KeywordsConst | ||
|  | 	ParseOnScreen	= 1 | ||
|  | 	parent:Dyn	= c_Pascal, c_PascalCodeBlock | ||
|  | 	children	= 0	 | ||
|  | 	token:tag	= 'False', 'True', 'nil', 'null' | ||
|  | 	token:start:separators	= @specs, @eol | ||
|  | 	token:end:separators	= @specs, @eol | ||
|  | 	txt:colorFG	= 0xAA33BB | ||
|  | 	txt:bold = 1 | ||
|  | 
 | ||
|  | lexClass:	 | ||
|  | 	name		= c_KeywordsType | ||
|  | 	ParseOnScreen	= 1 | ||
|  | 	parent:Dyn	= c_Pascal, c_PascalCodeBlock | ||
|  | 	children	= 0	 | ||
|  |     // Types | ||
|  | 	token:tag	= 'AnsiChar', 'AnsiString', 'Boolean', 'Byte', 'ByteBool' | ||
|  | 	token:tag	= 'Cardinal', 'Comp', 'Currency', 'DWord', 'Integer' | ||
|  | 	token:tag	= 'LongBool', 'LongInt', 'LongWord', 'OleVariant', 'OpenString' | ||
|  | 	token:tag	= 'PAnsiChar', 'PWideChar', 'ShortInt', 'ShortString', 'SmallInt' | ||
|  | 	token:tag	= 'TDateTime', 'TextFile', 'Variant', 'WideChar', 'WideString' | ||
|  | 	token:tag	= 'Word', 'WordBool' | ||
|  |     // Smalls | ||
|  | 	token:tag	= 'byte', 'char', 'double', 'extended', 'int64' | ||
|  | 	token:tag	= 'real', 'single', 'string', 'text', 'UINT' | ||
|  |     // .NET | ||
|  | 	token:tag	= 'PChar', 'Pointer', 'real48' | ||
|  | 	token:start:separators	= @specs, @eol | ||
|  | 	token:end:separators	= @specs, @eol | ||
|  | 	txt:colorFG	= 0xAA33BB | ||
|  | 	txt:bold = 1 | ||
|  | 
 | ||
|  | lexClass:	 | ||
|  | 	name		= c_KeywordsPropWord | ||
|  | 	ParseOnScreen	= 1 | ||
|  | 	parent:Dyn	= c_PascalProperty | ||
|  | 	children	= 0	 | ||
|  | 	token:tag	= 'default', 'implements', 'index', 'nodefault' | ||
|  | 	token:tag	= 'read', 'readonly', 'stored', 'write', 'writeonly' | ||
|  | 	token:start:separators	= @specs, @eol | ||
|  | 	token:end:separators	= @specs, @eol | ||
|  | 	txt:colorFG	= 0xAA33BB | ||
|  | 	txt:bold = 1 | ||
|  | 
 | ||
|  | lexClass:	 | ||
|  | 	name		= c_KeywordsExport | ||
|  | 	ParseOnScreen	= 1 | ||
|  | 	parent:Dyn	= c_PascalExport | ||
|  | 	children	= 0	 | ||
|  | 	token:tag	= 'external', 'name', 'index' | ||
|  | 	token:start:separators	= @specs, @eol | ||
|  | 	token:end:separators	= @specs, @eol | ||
|  | 	txt:colorFG	= 0xAA33BB | ||
|  | 	txt:bold = 1 | ||
|  | 
 | ||
|  | lexClass:	 | ||
|  | 	name		= c_KeywordsClass | ||
|  | 	ParseOnScreen	= 1 | ||
|  | 	parent:Dyn	= c_PascalClass | ||
|  | 	children	= 0	 | ||
|  | 	token:tag	= 'private', 'protected', 'public', 'published' | ||
|  | 	token:tag	= 'dynamic', 'override', 'reintroduce', 'virtual' | ||
|  | 	token:tag	= 'default', 'message' | ||
|  | 	// .NET | ||
|  | 	token:tag	= 'strict', 'helper', 'sealed', 'final', 'static' | ||
|  | 	token:start:separators	= @specs, @eol | ||
|  | 	token:end:separators	= @specs, @eol | ||
|  | 	txt:colorFG	= 0xAA33BB | ||
|  | 	txt:bold = 1 | ||
|  | 
 | ||
|  | lexClass:	 | ||
|  | 	name		= c_KeywordsInternal | ||
|  | 	ParseOnScreen	= 1 | ||
|  | 	parent:Dyn	= c_PascalClass | ||
|  | 	children	= 0	 | ||
|  | 	token:tag	= 'abstract', 'asm', 'assembler', 'automated' | ||
|  | 	token:tag	= 'begin', 'break', 'case', 'cdecl', 'class', 'constructor', 'contains', 'continue' | ||
|  | 	token:tag	= 'deprecated', 'destructor', 'dispid', 'dispinterface', 'do', 'downto' | ||
|  | 	token:tag	= 'else', 'end', 'except', 'exit', 'experimental', 'export', 'exports', 'external' | ||
|  | 	token:tag	= 'far', 'finalization', 'finally', 'for', 'forward', 'function' | ||
|  | 	token:tag	= 'goto', 'if', 'implementation', 'inherited', 'initialization', 'inline', 'interface', 'interrupt' | ||
|  | 	token:tag	= 'label', 'library', 'near', 'object', 'on', 'operator', 'overload' | ||
|  | 	token:tag	= 'package', 'packed', 'pascal', 'platform', 'procedure', 'program' | ||
|  | 	token:tag	= 'raise', 'record', 'repeat', 'requires', 'resident', 'result', 'resourcestring' | ||
|  | 	token:tag	= 'safecall', 'set', 'self', 'stdcall', 'register' | ||
|  | 	token:tag	= 'then', 'to', 'try', 'type' | ||
|  | 	token:tag	= 'unit', 'until', 'uses', 'while', 'with' | ||
|  | 	// .NET unsafe | ||
|  | 	token:tag	= 'absolute' | ||
|  | 	//token:tag	= '', '', '', '', '', '', '' | ||
|  | 	token:start:separators	= @specs, @eol | ||
|  | 	token:end:separators	= @specs, @eol | ||
|  | 	txt:colorFG	= 0xAA33BB | ||
|  | 	txt:bold = 1 | ||
|  | 
 |