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

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