_pascal.schclass
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:8k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. //=======================================================================
  2. //================ Lex class support ====================================
  3. //=======================================================================
  4. //  lexClass:
  5. // name = c_PascalString
  6. // + parent = c_Pascal
  7. // + parent:dyn = c_Pascal
  8. //
  9. // + children = 0
  10. // + children = class1, class2, ...
  11. //
  12. // + previous:class =
  13. // + previous:tag =
  14. // + previous:tag:separators =
  15. //
  16. // + start:class = 
  17. // + start:Tag = '"'
  18. //
  19. // + skip:Tag = '"'
  20. //
  21. // + end:class = //
  22. // + end:Tag = '"'
  23. // + end:separators = ' '
  24. //
  25. // + Token:tag = 'if', 'for', 'while', 'do'
  26. // + Token:start:separators = 
  27. // + Token:end:separators = 
  28. //-----------------------------------------------------------------------
  29. //---------------- Attributes -------------------------------------------
  30. //-----------------------------------------------------------------------
  31. // txt:colorFG = 0xffc0c0 // color value in hex format. default: black
  32. // txt:colorBK = 0xffc0c0 // color value in hex format. default: white
  33. //
  34. // txt:colorSelFG = 0xffc0c0 // color value in hex format. default: white
  35. // txt:colorSelBK = 0xffc0c0 // color value in hex format. default: black
  36. //
  37. // txt:Bold = 1 // {1,0} default: 0
  38. // txt:Italic = 1 // {1,0} default: 0
  39. // txt:Underline = 1 // {1,0} default: 0
  40. //
  41. // caseSensitive = 1 // {1,0} default: 0
  42. //
  43. // Collapsable = 1 // {1,0} default: 0
  44. // CollapsedText = '/*...*/' // quoted string value. default: '[..]'
  45. //
  46. // ParseOnScreen = 1 // {1,0} default: 0
  47. /////////////////////////////////////////////////////////////////////////
  48. //=======================================================================
  49. //================ Variables support ====================================
  50. //=======================================================================
  51. // NON operation - example:   @alpha:not
  52. //
  53. // @alpha = a-z, A-Z
  54. // @digit = 0-9
  55. // @HexDdigit = 0-9, a-f, A-F
  56. // @specs = "~`!@#$%^&*()_-+=\|{}[];:'",.<>/?"
  57. // @EOL = End Of Line
  58. //---------------------------------------------
  59. // special tags:  '\', ''', 't', 'r', 'n'
  60. /////////////////////////////////////////////////////////////////////////
  61. lexClass: 
  62. name = c_Pascal
  63. parent:file = <*.pas|*.dpr|*.dpk|*.inc|*.int>
  64. caseSensitive = 0
  65. lexClass:
  66. name = c_PascalCodeBlock_Start
  67. parent = c_Pascal, c_PascalCodeBlock
  68. children = 0
  69. previous:tag = ';', ' ', 't', @eol
  70. start:Tag = 'begin'
  71. end:Tag = 't', ' ', @eol
  72. end:Separators = 't', ' ', @eol
  73. txt:colorFG = 0x0000FF
  74.     txt:bold    = 1
  75. lexClass:
  76. name = c_PascalCodeBlock_End
  77. parent = c_Pascal, c_PascalCodeBlock, c_PascalCodeBlock
  78. children = 0
  79. previous:tag = @specs, ' ', 't', @eol
  80. start:Tag = 'end'
  81. end:Separators = @specs, @eol
  82. txt:colorFG = 0x0000FF
  83.     txt:bold    = 1
  84. lexClass:
  85. name = c_PascalCodeBlock
  86. parent = c_Pascal, c_PascalCodeBlock
  87. children = c_PascalCodeBlock_End
  88. start:CLASS = c_PascalCodeBlock_Start
  89. end:CLASS = c_PascalCodeBlock_End
  90. Collapsable = 1 
  91. CollapsedText = '...'
  92. lexClass: 
  93. name = c_String
  94. parent:dyn = c_Pascal, c_PascalCodeBlock
  95. children = 0
  96. start:Tag = '"'
  97. skip:Tag = '\"', '\rn', '\nr', '\n', '\r'
  98. end:Tag = '"', @eol
  99. txt:colorFG = 0xE00000
  100. lexClass: 
  101. name = c_String_char
  102. parent:dyn = c_Pascal, c_PascalCodeBlock
  103. children = 0
  104. start:Tag = '''
  105. //skip:Tag = '\"', '\rn', '\nr', '\n', '\r'
  106. end:Tag = ''', @eol
  107. txt:colorFG = 0xE00000
  108. lexClass:
  109. name = c_PascalCommentSL
  110. parent = c_Pascal, c_PascalCodeBlock
  111. children = 0
  112. start:tag ='//'
  113. skip:Tag = '\rn', '\nr', '\n', '\r'
  114. end:tag = @eol
  115. txt:colorFG = 0x00A000
  116. lexClass:
  117. name = c_PascalCommentML1
  118. parent:dyn = c_Pascal, c_PascalCodeBlock
  119. children = 0
  120. start:Tag ='{'
  121. end:Tag ='}'
  122. Collapsable = 1 
  123. CollapsedText = '{...}' 
  124. txt:colorFG = 0x00CF00
  125. lexClass:
  126. name = c_PascalCommentML2
  127. parent:dyn = c_Pascal, c_PascalCodeBlock
  128. children = 0
  129. start:Tag ='(*'
  130. end:Tag ='*)'
  131. Collapsable = 1 
  132. CollapsedText = '(*...*)' 
  133. txt:colorFG = 0x00CF00
  134. lexClass:
  135. name = c_KeywordsWord
  136. ParseOnScreen = 1
  137. parent:Dyn = c_Pascal, c_PascalCodeBlock
  138. children = 0
  139. token:tag = 'and', 'array', 'as', 'const', 'div', 'file', 'in', 'is'
  140. token:tag = 'mod', 'not', 'of', 'or', 'out', 'shl', 'shr', 'threadvar', 'var', 'xor'
  141. token:start:separators = @specs, @eol
  142. token:end:separators = @specs, @eol
  143. txt:colorFG = 0xAA33BB
  144. txt:bold = 1
  145. lexClass:
  146. name = c_KeywordsConst
  147. ParseOnScreen = 1
  148. parent:Dyn = c_Pascal, c_PascalCodeBlock
  149. children = 0
  150. token:tag = 'False', 'True', 'nil', 'null'
  151. token:start:separators = @specs, @eol
  152. token:end:separators = @specs, @eol
  153. txt:colorFG = 0xAA33BB
  154. txt:bold = 1
  155. lexClass:
  156. name = c_KeywordsType
  157. ParseOnScreen = 1
  158. parent:Dyn = c_Pascal, c_PascalCodeBlock
  159. children = 0
  160.     // Types
  161. token:tag = 'AnsiChar', 'AnsiString', 'Boolean', 'Byte', 'ByteBool'
  162. token:tag = 'Cardinal', 'Comp', 'Currency', 'DWord', 'Integer'
  163. token:tag = 'LongBool', 'LongInt', 'LongWord', 'OleVariant', 'OpenString'
  164. token:tag = 'PAnsiChar', 'PWideChar', 'ShortInt', 'ShortString', 'SmallInt'
  165. token:tag = 'TDateTime', 'TextFile', 'Variant', 'WideChar', 'WideString'
  166. token:tag = 'Word', 'WordBool'
  167.     // Smalls
  168. token:tag = 'byte', 'char', 'double', 'extended', 'int64'
  169. token:tag = 'real', 'single', 'string', 'text', 'UINT'
  170.     // .NET
  171. token:tag = 'PChar', 'Pointer', 'real48'
  172. token:start:separators = @specs, @eol
  173. token:end:separators = @specs, @eol
  174. txt:colorFG = 0xAA33BB
  175. txt:bold = 1
  176. lexClass:
  177. name = c_KeywordsPropWord
  178. ParseOnScreen = 1
  179. parent:Dyn = c_PascalProperty
  180. children = 0
  181. token:tag = 'default', 'implements', 'index', 'nodefault'
  182. token:tag = 'read', 'readonly', 'stored', 'write', 'writeonly'
  183. token:start:separators = @specs, @eol
  184. token:end:separators = @specs, @eol
  185. txt:colorFG = 0xAA33BB
  186. txt:bold = 1
  187. lexClass:
  188. name = c_KeywordsExport
  189. ParseOnScreen = 1
  190. parent:Dyn = c_PascalExport
  191. children = 0
  192. token:tag = 'external', 'name', 'index'
  193. token:start:separators = @specs, @eol
  194. token:end:separators = @specs, @eol
  195. txt:colorFG = 0xAA33BB
  196. txt:bold = 1
  197. lexClass:
  198. name = c_KeywordsClass
  199. ParseOnScreen = 1
  200. parent:Dyn = c_PascalClass
  201. children = 0
  202. token:tag = 'private', 'protected', 'public', 'published'
  203. token:tag = 'dynamic', 'override', 'reintroduce', 'virtual'
  204. token:tag = 'default', 'message'
  205. // .NET
  206. token:tag = 'strict', 'helper', 'sealed', 'final', 'static'
  207. token:start:separators = @specs, @eol
  208. token:end:separators = @specs, @eol
  209. txt:colorFG = 0xAA33BB
  210. txt:bold = 1
  211. lexClass:
  212. name = c_KeywordsInternal
  213. ParseOnScreen = 1
  214. parent:Dyn = c_PascalClass
  215. children = 0
  216. token:tag = 'abstract', 'asm', 'assembler', 'automated'
  217. token:tag = 'begin', 'break', 'case', 'cdecl', 'class', 'constructor', 'contains', 'continue'
  218. token:tag = 'deprecated', 'destructor', 'dispid', 'dispinterface', 'do', 'downto'
  219. token:tag = 'else', 'end', 'except', 'exit', 'experimental', 'export', 'exports', 'external'
  220. token:tag = 'far', 'finalization', 'finally', 'for', 'forward', 'function'
  221. token:tag = 'goto', 'if', 'implementation', 'inherited', 'initialization', 'inline', 'interface', 'interrupt'
  222. token:tag = 'label', 'library', 'near', 'object', 'on', 'operator', 'overload'
  223. token:tag = 'package', 'packed', 'pascal', 'platform', 'procedure', 'program'
  224. token:tag = 'raise', 'record', 'repeat', 'requires', 'resident', 'result', 'resourcestring'
  225. token:tag = 'safecall', 'set', 'self', 'stdcall', 'register'
  226. token:tag = 'then', 'to', 'try', 'type'
  227. token:tag = 'unit', 'until', 'uses', 'while', 'with'
  228. // .NET unsafe
  229. token:tag = 'absolute'
  230. //token:tag = '', '', '', '', '', '', ''
  231. token:start:separators = @specs, @eol
  232. token:end:separators = @specs, @eol
  233. txt:colorFG = 0xAA33BB
  234. txt:bold = 1