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.
428 lines
13 KiB
Plaintext
428 lines
13 KiB
Plaintext
//=======================================================================
|
|
//================ Lex class support ====================================
|
|
//=======================================================================
|
|
// lexClass:
|
|
// name = c_PYString
|
|
// parent = c_PY
|
|
// parent:dyn = c_PY
|
|
// parent:file = <*.py|*.pyw|*.pys>
|
|
//
|
|
// 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
|
|
//
|
|
//-----------------------------------------------------------------------
|
|
//* Global attributes ***************************************************
|
|
//-----------------------------------------------------------------------
|
|
// global:FirstParseInSeparateThread = 1 // {0,1} default=1
|
|
// global:EditReparceInSeparateThread = 1 // {0,1} default=1
|
|
// global:ConfigChangedReparceInSeparateThread= 1 // {0,1} default=1
|
|
// global:EditReparceTimeout_ms = 500 // default= 500 ms; time out for start reparse after last key was pressed.
|
|
// global:MaxBackParseOffset = 100 // default= 100 chars; maximum back buffer size. Some times parser look back for the text from current position.
|
|
// global:OnScreenSchCacheLifeTime_sec = 180 // default= 180 sec; -1 and 0 means infinite; time out for on screen parsed pices of text. for memory using optimization.
|
|
// global:ParserThreadIdleLifeTime_sec = 60 // default=60 sec; -1 and 0 means infinite; time out for existing of parser thread when parser idle (no parse requests).
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
//=======================================================================
|
|
//================ 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_PY
|
|
parent:file = <*.py|*.pyw|*.pys>
|
|
caseSensitive = 1
|
|
DisplayName = 'Normal Text'
|
|
|
|
//global:FirstParseInSeparateThread = 0
|
|
global:EditReparceInSeparateThread = 1
|
|
|
|
//global:EditReparceTimeout_ms = 250
|
|
//global:MaxBackParseOffset = 100
|
|
//global:OnScreenSchCacheLifeTime_sec = 60
|
|
//global:ParserThreadIdleLifeTime_sec = -1
|
|
|
|
lexClass:
|
|
name = c_PYCommentML1
|
|
parent = c_PY
|
|
children = c_URL
|
|
|
|
//children = c_PascalCodeBlock_End
|
|
start:Tag = '"""'
|
|
end:Tag = '"""'
|
|
Collapsable = 1
|
|
CollapsedText = '###'
|
|
txt:colorFG = 0x00CF00
|
|
DisplayName = 'Comment (Multi-Line)'
|
|
|
|
lexClass:
|
|
name = c_PYCommentML2
|
|
parent = c_PY
|
|
children = c_URL
|
|
|
|
//children = c_PascalCodeBlock_End
|
|
start:Tag = '\'\'\''
|
|
end:Tag = '\'\'\''
|
|
Collapsable = 1
|
|
CollapsedText = '###'
|
|
txt:colorFG = 0x00CF00
|
|
DisplayName = 'Comment (Multi-Line)'
|
|
|
|
lexClass:
|
|
name = c_URL
|
|
ParseOnScreen = 0
|
|
parent:dyn = c_PY
|
|
caseSensitive = 0
|
|
children = 0
|
|
previous:tag = @specs, ' ', '\t', @eol
|
|
start:Tag = 'http:'
|
|
end:separators = ' ', '\t', '*', '"', @eol
|
|
txt:colorBK = 0xC0FFC0
|
|
txt:Underline = 1
|
|
DisplayName = 'URL'
|
|
|
|
lexClass:
|
|
name = c_String
|
|
parent:dyn = c_PY
|
|
children = c_URL
|
|
start:Tag = '"'
|
|
// skip:Tag = '\\"', '\\\r\n', '\\\n\r', '\\\n', '\\\r'
|
|
end:Tag = '"', @eol
|
|
txt:colorFG = 0xE00000
|
|
DisplayName = 'String (Double Quotes)'
|
|
|
|
lexClass:
|
|
name = c_String_char
|
|
parent:dyn = c_PY
|
|
children = 0
|
|
start:Tag = '\''
|
|
//skip:Tag = '\\"', '\\\r\n', '\\\n\r', '\\\n', '\\\r'
|
|
end:Tag = '\'', @eol
|
|
txt:colorFG = 0xE00000
|
|
DisplayName = 'String (Single Quotes)'
|
|
|
|
|
|
lexClass:
|
|
name = c_PYCommentSL
|
|
// ParseOnScreen = 0
|
|
parent = c_PY
|
|
children = c_URL
|
|
start:tag ='#'
|
|
// skip:Tag = '\\\r\n', '\\\n\r', '\\\n', '\\\r'
|
|
end:tag = @eol
|
|
txt:colorFG = 0x00A000
|
|
DisplayName = 'Comment (Single-Line)'
|
|
|
|
lexClass:
|
|
name = c_PYKeywords
|
|
ParseOnScreen = 0
|
|
parent:Dyn = c_PY
|
|
children = 0
|
|
DisplayName = 'Keyword'
|
|
|
|
token:tag = 'and'
|
|
token:tag = 'assert'
|
|
token:tag = 'break'
|
|
token:tag = 'continue'
|
|
token:tag = 'del'
|
|
token:tag = 'elif'
|
|
token:tag = 'else'
|
|
token:tag = 'except'
|
|
token:tag = 'exec'
|
|
token:tag = 'finally'
|
|
token:tag = 'for'
|
|
token:tag = 'from'
|
|
token:tag = 'global'
|
|
token:tag = 'if'
|
|
token:tag = 'return'
|
|
token:tag = 'try'
|
|
token:tag = 'import'
|
|
token:tag = 'in'
|
|
token:tag = 'is'
|
|
token:tag = 'not'
|
|
token:tag = 'or'
|
|
token:tag = 'pass'
|
|
token:tag = 'print'
|
|
token:tag = 'raise'
|
|
token:tag = 'while'
|
|
token:tag = 'def'
|
|
token:tag = 'class'
|
|
token:tag = 'yield'
|
|
token:start:separators = @specs, ' ', @eol
|
|
token:end:separators = @specs, ' ', @eol
|
|
|
|
txt:colorFG = 0x0000FF
|
|
|
|
|
|
lexClass:
|
|
name = c_PYExceptions
|
|
ParseOnScreen = 0
|
|
parent:Dyn = c_PY
|
|
children = 0
|
|
DisplayName = 'Exception'
|
|
|
|
token:tag = 'ArithmeticError'
|
|
token:tag = 'AssertionError'
|
|
token:tag = 'AttributeError'
|
|
token:tag = 'EOFError'
|
|
token:tag = 'EnvironmentError'
|
|
token:tag = 'Exception'
|
|
token:tag = 'FloatingPointError'
|
|
token:tag = 'IOError'
|
|
token:tag = 'ImportError'
|
|
token:tag = 'IndexError'
|
|
token:tag = 'KeyError'
|
|
token:tag = 'KeyboardInterrupt'
|
|
token:tag = 'LookupError'
|
|
token:tag = 'MemoryError'
|
|
token:tag = 'NameError'
|
|
token:tag = 'NotImplementeError'
|
|
token:tag = 'OSError'
|
|
token:tag = 'OverflowError'
|
|
token:tag = 'RuntimeError'
|
|
token:tag = 'StandarError'
|
|
token:tag = 'StopIteration'
|
|
token:tag = 'SyntaxError'
|
|
token:tag = 'SystemError'
|
|
token:tag = 'SystemExit'
|
|
token:tag = 'TypeError'
|
|
token:tag = 'ValueError'
|
|
token:tag = 'ZeroDivisionError'
|
|
token:start:separators = @specs, ' ', @eol
|
|
token:end:separators = @specs, ' ', @eol
|
|
|
|
txt:colorFG = 0x0000FF
|
|
|
|
lexClass:
|
|
name = c_PYBuiltins
|
|
ParseOnScreen = 0
|
|
parent:Dyn = c_PY
|
|
children = 0
|
|
DisplayName = 'Builtins'
|
|
|
|
token:tag = 'Ellipsis'
|
|
token:tag = 'False'
|
|
token:tag = 'None'
|
|
token:tag = 'True'
|
|
token:tag = 'lambda'
|
|
token:tag = '__debug__'
|
|
token:tag = '__doc__'
|
|
token:tag = '__import__'
|
|
token:tag = '__name__'
|
|
token:tag = '__class__'
|
|
token:tag = '__future__'
|
|
token:tag = '__init__'
|
|
token:tag = '__del__'
|
|
token:tag = '__call__'
|
|
token:tag = '__iter__'
|
|
token:tag = '__getattr__'
|
|
token:tag = '__setattr__'
|
|
token:tag = '__delattr__'
|
|
token:tag = '__getitem__'
|
|
token:tag = '__setitem__'
|
|
token:tag = '__delitem__'
|
|
token:tag = '__getslice__'
|
|
token:tag = '__setslice__'
|
|
token:tag = '__delslice__'
|
|
token:tag = '__get__'
|
|
token:tag = '__set__'
|
|
token:tag = '__delete__'
|
|
token:tag = '__str__'
|
|
token:tag = '__repr__'
|
|
token:tag = '__cmp__'
|
|
token:tag = '__rcmp__'
|
|
token:tag = '__nonzero__'
|
|
token:tag = '__len__'
|
|
token:tag = '__lt__'
|
|
token:tag = '__le__'
|
|
token:tag = '__gt__'
|
|
token:tag = '__ge__'
|
|
token:tag = '__eq__'
|
|
token:tag = '__ne__'
|
|
token:tag = '__add__'
|
|
token:tag = '__sub__'
|
|
token:tag = '__mul__'
|
|
token:tag = '__mod__'
|
|
token:tag = '__div__'
|
|
token:tag = '__floordiv__'
|
|
token:tag = '__truediv__'
|
|
token:tag = '__divmod__'
|
|
token:tag = '__pow__'
|
|
token:tag = '__lshift__'
|
|
token:tag = '__rshift__'
|
|
token:tag = '__and__'
|
|
token:tag = '__or__'
|
|
token:tag = '__xor__'
|
|
token:tag = '__radd__'
|
|
token:tag = '__rsub__'
|
|
token:tag = '__rmul__'
|
|
token:tag = '__rdiv__'
|
|
token:tag = '__rmod__'
|
|
token:tag = '__rdivmod__'
|
|
token:tag = '__rpow__'
|
|
token:tag = '__rlshift__'
|
|
token:tag = '__rrshift__'
|
|
token:tag = '__rand__'
|
|
token:tag = '__ror__'
|
|
token:tag = '__rxor__'
|
|
token:tag = '__iadd__'
|
|
token:tag = '__isub__'
|
|
token:tag = '__imul__'
|
|
token:tag = '__idiv__'
|
|
token:tag = '__imod__'
|
|
token:tag = '__ipow__'
|
|
token:tag = '__ilshift__'
|
|
token:tag = '__irshift__'
|
|
token:tag = '__iand__'
|
|
token:tag = '__ior__'
|
|
token:tag = '__ixor__'
|
|
token:tag = '__neg__'
|
|
token:tag = '__pos__'
|
|
token:tag = '__abs__'
|
|
token:tag = '__invert__'
|
|
token:tag = '__int__'
|
|
token:tag = '__long__'
|
|
token:tag = '__float__'
|
|
token:tag = '__complex__'
|
|
token:tag = '__oct__'
|
|
token:tag = '__hex__'
|
|
token:tag = '__coerce__'
|
|
token:tag = '__contains__'
|
|
token:tag = '__hash__'
|
|
token:tag = '__slots__'
|
|
token:tag = '__iter__'
|
|
token:tag = '__next__'
|
|
token:tag = 'abs'
|
|
token:tag = 'apply'
|
|
token:tag = 'buffer'
|
|
token:tag = 'callable'
|
|
token:tag = 'chr'
|
|
token:tag = 'classmethod'
|
|
token:tag = 'cmp'
|
|
token:tag = 'coerce'
|
|
token:tag = 'compile'
|
|
token:tag = 'complex'
|
|
token:tag = 'delattr'
|
|
token:tag = 'dir'
|
|
token:tag = 'divmod'
|
|
token:tag = 'eval'
|
|
token:tag = 'execfile'
|
|
token:tag = 'exit'
|
|
token:tag = 'filter'
|
|
token:tag = 'float'
|
|
token:tag = 'getattr'
|
|
token:tag = 'getattribute'
|
|
token:tag = 'globals'
|
|
token:tag = 'hasattr'
|
|
token:tag = 'hash'
|
|
token:tag = 'hex'
|
|
token:tag = 'id'
|
|
token:tag = 'input'
|
|
token:tag = 'int'
|
|
token:tag = 'intern'
|
|
token:tag = 'isinstance'
|
|
token:tag = 'issubclass'
|
|
token:tag = 'iter'
|
|
token:tag = 'len'
|
|
token:tag = 'list'
|
|
token:tag = 'locals'
|
|
token:tag = 'long'
|
|
token:tag = 'map'
|
|
token:tag = 'max'
|
|
token:tag = 'min'
|
|
token:tag = 'oct'
|
|
token:tag = 'open'
|
|
token:tag = 'ord'
|
|
token:tag = 'pow'
|
|
token:tag = 'property'
|
|
token:tag = 'quit'
|
|
token:tag = 'range'
|
|
token:tag = 'raw_input'
|
|
token:tag = 'reduce'
|
|
token:tag = 'reload'
|
|
token:tag = 'repr'
|
|
token:tag = 'round'
|
|
token:tag = 'setattr'
|
|
token:tag = 'slice'
|
|
token:tag = 'str'
|
|
token:tag = 'string'
|
|
token:tag = 'super'
|
|
token:tag = 'tuple'
|
|
token:tag = 'type'
|
|
token:tag = 'vars'
|
|
token:tag = 'xrange'
|
|
token:tag = 'file'
|
|
token:tag = 'dict'
|
|
token:tag = 'classmethod'
|
|
token:tag = 'staticmethod'
|
|
token:start:separators = @specs, ' ', @eol
|
|
token:end:separators = @specs, ' ', @eol
|
|
|
|
txt:colorFG = 0x990099
|
|
lexClass:
|
|
name = c_PYSpecs
|
|
ParseOnScreen = 0
|
|
parent:Dyn = c_PY
|
|
children = 0
|
|
DisplayName = 'Specs'
|
|
|
|
token:tag = @specs
|
|
|
|
txt:colorFG = 0x0000FF
|
|
|
|
lexClass:
|
|
name = c_PYDigit
|
|
ParseOnScreen = 0
|
|
parent:Dyn = c_PY
|
|
children = 0
|
|
DisplayName = 'Digit'
|
|
|
|
token:tag = @digit
|
|
|
|
txt:colorFG = 0x8000FF
|