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
		
	
| //=======================================================================
 | |
| //================ 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
 | |
| 
 |