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

对话框与窗口

开发平台:

Visual C++

  1. //=======================================================================
  2. //================ Lex class support ====================================
  3. //=======================================================================
  4. //  lexClass:
  5. // + name = c_CPPString
  6. // + parent:file = <*.h|*.cpp|*.c>
  7. // + parent = c_CPP
  8. // + parent:dyn = c_CPP
  9. //
  10. // + children = 0
  11. // + children = class1, class2, ...
  12. //
  13. // previous:class =
  14. // previous:tag =
  15. // previous:tag:separators =
  16. //
  17. // start:class = 
  18. // start:Tag = '"'
  19. //
  20. // skip:Tag = '"'
  21. //
  22. // end:class = //
  23. // end:class:Parent = this
  24. // end:Tag = '"'
  25. // end:separators = ' '
  26. //
  27. // Token:tag = 'if', 'for', 'while', 'do'
  28. // Token:start:separators = 
  29. // Token:end:separators = 
  30. //-----------------------------------------------------------------------
  31. //---------------- Attributes -------------------------------------------
  32. //-----------------------------------------------------------------------
  33. // txt:colorFG = 0xffc0c0 // color value in hex format. default: black
  34. // txt:colorBK = 0xffc0c0 // color value in hex format. default: white
  35. //
  36. // txt:colorSelFG = 0xffc0c0 // color value in hex format. default: white
  37. // txt:colorSelBK = 0xffc0c0 // color value in hex format. default: black
  38. //
  39. // txt:Bold = 1 // {1,0} default: 0
  40. // txt:Italic = 1 // {1,0} default: 0
  41. // txt:Underline = 1 // {1,0} default: 0
  42. //
  43. // caseSensitive = 1 // {1,0} default: 0
  44. //
  45. // Collapsable = 1 // {1,0} default: 0
  46. // CollapsedText = '/*...*/' // quoted string value. default: '[..]'
  47. //
  48. // ParseOnScreen = 1 // {1,0} default: 0
  49. /////////////////////////////////////////////////////////////////////////
  50. //=======================================================================
  51. //================ Variables support ====================================
  52. //=======================================================================
  53. // NON operation - example:   @alpha:not
  54. //
  55. // @alpha = a-z, A-Z
  56. // @digit = 0-9
  57. // @HexDdigit = 0-9, a-f, A-F
  58. // @specs = "~`!@#$%^&*()_-+=\|{}[];:'",.<>/?"
  59. // @EOL = End Of Line
  60. //---------------------------------------------
  61. // special tags:  't', 'r', 'n'
  62. /////////////////////////////////////////////////////////////////////////
  63. lexClass:
  64.   name = c_LEX_CLASS
  65. parent:file = <*.schclass>
  66. caseSensitive = 0
  67. //txt:colorBK = 0xfff7ff
  68. //:lexClass
  69. lexClass:
  70. name = c_LexCommentSL
  71. parent:dyn = c_LEX_CLASS
  72. children = 0
  73. start:tag ='//'
  74. end:tag = @eol
  75. txt:colorFG = 0x00A000
  76. //:lexClass
  77. lexClass:
  78. name = c_LexClass_section_header
  79. parent = c_LEX_CLASS, c_LexClass_section
  80. children = 0
  81. Token:tag = 'lexClass:'
  82. Token:start:separators = @eol, ' ', 't'
  83. Token:end:separators = @eol, ' ', 't'
  84. txt:colorFG = 0x0000FF
  85. txt:colorBK = 0xAAAAAA
  86. txt:Bold = 1
  87. //:lexClass
  88. lexClass:         
  89. name = c_LexClass_section
  90. parent = c_LEX_CLASS, c_LexClass_section
  91. start:class = c_LexClass_section_header
  92. //end:separators = 'lexClass:'
  93. end:class =  c_LexClass_section_end
  94. txt:colorFG = 0xFF0000
  95. Collapsable = 1
  96. //:lexClass
  97. lexClass:
  98. name = c_LexClass_section_end
  99. parent = c_LexClass_section
  100. previous:tag = @eol
  101. previous:tag:separators = ' ', 't'
  102. start:tag = '//:lexClass'
  103. end:tag = @EOL
  104. txt:colorFG = 0x00A000
  105. txt:colorBK = 0xE0E0E0
  106. //txt:bold = 1
  107. //:lexClass
  108. lexClass:
  109. name = c_LexClass_CommaSeparator
  110. ParseOnScreen = 0
  111. parent:dyn = c_LexClass_section
  112. children = 0
  113. token:tag = ','
  114. txt:colorFG = 0x808080
  115. txt:Bold = 0
  116. //:lexClass
  117. lexClass:
  118. name = c_LexClass_Tag_str
  119. ParseOnScreen = 0
  120. parent:dyn = c_LexClass_section
  121. children = c_LexClass_Tag_str_specs
  122. start:tag = '''
  123. end:tag = ''', @eol 
  124. txt:colorFG = 0xA00000
  125. //:lexClass
  126. lexClass:
  127. name = c_LexClass_Tag_str_specs
  128. ParseOnScreen = 0
  129. parent = c_LexClass_Tag_str
  130. children = 0
  131. Token:tag = '\\'
  132. Token:tag = '\t', '\n', '\r', '\a', '\b', '\v', '\f', '\'' 
  133. txt:colorFG = 0xC00000
  134. txt:bold = 1
  135. //:lexClass
  136. lexClass:
  137. name = c_LexClass_Tag_var
  138. ParseOnScreen = 0
  139. parent:dyn = c_LexClass_section
  140. children = 0
  141. token:tag = '@alpha:not', '@digit:not', '@HexDigit:not', '@specs:not', '@EOL:not'
  142. token:tag = '@alpha', '@digit', '@HexDdigit', '@specs', '@EOL'
  143. Token:start:separators = '=', ' ', 't', ','
  144. Token:end:separators = ' ', 't', ',', @EOL
  145. txt:colorFG = 0x00A000
  146. txt:Bold = 1
  147. //:lexClass
  148. lexClass:
  149. name = c_LexClass_color
  150. ParseOnScreen = 0
  151. parent:dyn = c_LexClass_section
  152. children = 0
  153. start:tag = '0x'
  154. end:tag = @HexDigit:not
  155. txt:colorFG = 0x8000FF
  156. //:lexClass
  157. lexClass:
  158. name = c_LexClass_number
  159. ParseOnScreen = 0
  160. parent:dyn = c_LexClass_section
  161. children = 0
  162. start:tag = @digit
  163. end:tag = @digit:not
  164. txt:colorFG = 0x000080
  165. //:lexClass
  166. //-- NAME -------------------------------------------------
  167. lexClass:
  168. name = c_LexClass_Prop_Name_name_part
  169. ParseOnScreen = 0
  170. parent = c_LexClass_section
  171. children = 0
  172. token:tag = 'name'
  173. txt:colorFG = 0x505050
  174. txt:colorBK = 0xEEEEEE
  175. txt:Bold = 1
  176. //:lexClass
  177. lexClass:
  178. name = c_LexClass_Prop_Name
  179. ParseOnScreen = 0
  180. parent = c_LexClass_section
  181. children = c_LexClass_Prop_EQ, c_LexClass_Prop_Name_value_part 
  182. children = c_LexCommentSL
  183. start:class = c_LexClass_Prop_Name_name_part
  184. end:tag = @eol
  185. txt:colorBK = 0xEEEEEE
  186. //:lexClass
  187. lexClass:
  188. name = c_LexClass_Prop_Name_value_part
  189. ParseOnScreen = 0
  190. parent = c_LexClass_Prop_Name
  191. children = c_LexClass_ClassName
  192. start:class = c_LexClass_Prop_EQ
  193. end:class = c_LexClass_ClassName
  194. txt:bold = 1
  195. //:lexClass
  196. //-- PARENT:file -------------------------------------------------
  197. lexClass:
  198. name = c_LexClass_Prop_ParentFile_name_part
  199. ParseOnScreen = 0
  200. parent = c_LexClass_section
  201. children = 0 
  202. token:tag = 'parent:file' 
  203. txt:colorFG = 0x505050
  204. txt:colorBK = 0xDDDDDD
  205. txt:Underline = 1
  206. txt:Bold = 1
  207. //:lexClass
  208. lexClass:
  209. name = c_LexClass_Prop_Parent_file
  210. ParseOnScreen = 0
  211. parent = c_LexClass_section
  212. children = c_LexClass_Prop_EQ 
  213. children = c_LexClass_Prop_Parent2_value_part 
  214. start:class = c_LexClass_Prop_ParentFile_name_part
  215. end:tag = @eol
  216. //:lexClass
  217. lexClass:
  218. name = c_LexClass_Prop_Parent2_value_part
  219. ParseOnScreen = 0
  220. parent = c_LexClass_Prop_Parent_file
  221. children = c_LexClass_file_ext_list
  222. children = c_LexCommentSL
  223. start:class = c_LexClass_Prop_EQ
  224. end:separators = @eol
  225. //:lexClass
  226. lexClass:
  227. name = c_LexClass_file_ext_list
  228. ParseOnScreen = 0
  229. parent = c_LexClass_Prop_Parent2_value_part
  230. children = c_LexClass_file_ext1, c_LexClass_file_ext2
  231. previous:tag = '='
  232. previous:tag:separators = ' ', 't'
  233. start:tag = '<'
  234. end:tag = '>'
  235. txt:colorFG = 0x0000F0
  236. //:lexClass
  237. lexClass:
  238. name = c_LexClass_file_ext1
  239. ParseOnScreen = 0
  240. parent = c_LexClass_file_ext_list
  241. children = 0
  242. previous:tag = '<'
  243. previous:tag:separators = ' ', 't'
  244. start:tag = '*.'
  245. end:separators = '|', '>', ' ', 't'
  246. txt:colorFG = 0x800040
  247. //:lexClass
  248. lexClass:
  249. name = c_LexClass_file_ext2
  250. ParseOnScreen = 0
  251. parent = c_LexClass_file_ext_list
  252. children = 0
  253. previous:tag = '|'
  254. previous:tag:separators = ' ', 't'
  255. start:tag = '*.'
  256. end:separators = '|', '>', ' ', 't'
  257. txt:colorFG = 0x800040
  258. //:lexClass
  259. //-- PARENT (+dyn) -------------------------------------------------
  260. lexClass:
  261. name = c_LexClass_Prop_Parent_name_part
  262. ParseOnScreen = 0
  263. parent = c_LexClass_section
  264. children = 0 
  265. token:tag = 'parent:dyn', 'parent'
  266. txt:colorFG = 0x505050
  267. txt:Underline = 1
  268. //:lexClass
  269. lexClass:
  270. name = c_LexClass_Prop_Parent
  271. ParseOnScreen = 0
  272. parent = c_LexClass_section
  273. children = c_LexClass_Prop_EQ 
  274. children = c_LexClass_ClassName_List
  275. start:class = c_LexClass_Prop_Parent_name_part
  276. end:tag = @eol
  277. //:lexClass
  278. //-- CHILDREN -------------------------------------------------
  279. lexClass:
  280. name = c_LexClass_Prop_Children_name_part
  281. ParseOnScreen = 0
  282. parent = c_LexClass_section
  283. children = 0 
  284. token:tag = 'children' 
  285. txt:colorFG = 0x505050
  286. //:lexClass
  287. lexClass:
  288. name = c_LexClass_Prop_Children
  289. ParseOnScreen = 0
  290. parent = c_LexClass_section
  291. children = c_LexClass_Prop_EQ 
  292. children = c_LexClass_Prop_Children_value1_part
  293. children = c_LexClass_ClassName_List
  294. start:class = c_LexClass_Prop_Children_name_part
  295. end:separators = @eol
  296. //:lexClass
  297. lexClass:
  298. name = c_LexClass_Prop_Children_value1_part
  299. ParseOnScreen = 0
  300. parent = c_LexClass_Prop_Children
  301. children = c_LexClass_Prop_Children_value1_error 
  302. //children = c_LexCommentSL
  303. previous:tag = '='
  304. previous:tag:separators = ' ', 't'
  305. start:tag = '0'
  306. end:separators = @eol
  307. txt:colorFG = 0x000090
  308. txt:bold = 1
  309. //:lexClass
  310. lexClass:
  311. name = c_LexClass_Prop_Children_value1_error
  312. ParseOnScreen = 0
  313. parent = c_LexClass_Prop_Children_value1_part
  314. children = c_LexCommentSL
  315. previous:class = c_LexClass_Prop_Children_value1_part
  316. end:separators = @eol
  317. txt:colorFG = 0xFF0000
  318. txt:bold = 0
  319. //:lexClass
  320. //////////////////////////////////////////////////////////////////////////////
  321. lexClass:
  322. name = c_LexClass_Prop_EQ
  323. ParseOnScreen = 0
  324. parent:dyn = c_LexClass_section
  325. children = 0
  326. token:tag = '='
  327. txt:colorFG = 0x0000B0
  328. txt:Bold = 0
  329. //:lexClass
  330. lexClass:
  331. name = c_LexClass_ClassName
  332. ParseOnScreen = 0
  333. //parent:dyn = c_LexClass_section
  334. parent = c_LexClass_Prop_Name_value_part //, c_LexClass_ClassName_List, 
  335. children = 0
  336. previous:tag = '='
  337. previous:tag:separators = ' ', 't'
  338. start:tag = @alpha, '_'
  339. skip:Tag = @alpha, @digit, '_'
  340. end:separators = @alpha:not, @digit:not
  341. txt:colorFG = 0x0000EE
  342. //:lexClass
  343. lexClass: 
  344. name = c_LexClass_ClassName_List
  345. ParseOnScreen = 0
  346. parent:dyn = c_LexClass_section
  347. children = c_LexClass_ClassName_List1 
  348. children = c_LexClass_ClassName_List2
  349. children = c_LexClass_CommaSeparator
  350. children = c_LexCommentSL
  351. previous:tag = '='
  352. previous:tag:separators = ' ', 't'
  353. start:tag = @alpha, '_'
  354. end:separators = @eol
  355. //:lexClass
  356. lexClass: name = c_LexClass_ClassName_List1
  357. ParseOnScreen = 0
  358. parent = c_LexClass_ClassName_List
  359. children = 0 
  360. start:class = c_LexClass_ClassName_List
  361. //previous:class = c_LexClass_ClassName_List
  362. skip:Tag = @alpha, @digit, '_'
  363. end:separators = @alpha:not, @digit:not
  364. txt:colorFG = 0x5000EE
  365. //:lexClass
  366. lexClass: name = c_LexClass_ClassName_List2
  367. ParseOnScreen = 0
  368. parent = c_LexClass_ClassName_List
  369. children = 0 
  370. previous:tag = ','
  371. previous:tag:separators = ' ', 't'
  372. start:tag = @alpha, '_'
  373. skip:Tag = @alpha, @digit, '_'
  374. end:separators = @alpha:not, @digit:not
  375. txt:colorFG = 0x5000EE
  376. //:lexClass
  377. //////////////////////////////////////////////////////////////////////////////
  378. lexClass:
  379. name = c_LexClass_Prop_ParseOnScreen
  380. ParseOnScreen = 0
  381. parent = c_LexClass_section
  382. children = 0
  383. token:tag = 'ParseOnScreen'
  384. txt:colorFG = 0x60AF60
  385. txt:colorBK = 0xDFCFFF
  386. //txt:Bold = 1
  387. txt:Italic = 0 
  388. //:lexClass
  389. lexClass:
  390. name = c_LexClass_Prop_DisplayName
  391. ParseOnScreen = 0
  392. parent = c_LexClass_section
  393. children = 0
  394. token:tag = 'DisplayName'
  395. txt:colorFG = 0x202080
  396. txt:colorBK = 0xF0FFFF
  397. //txt:Bold = 1
  398. txt:Italic = 0 
  399. //:lexClass
  400. lexClass:
  401. name = c_LexClass_AttributeName
  402. ParseOnScreen = 0
  403. parent = c_LexClass_section
  404. children = 0
  405. token:tag = 'previous:class', 'previous:tag:separators', 'previous:tag'
  406. token:tag = 'start:class', 'start:Tag'
  407. token:tag = 'skip:Tag'  
  408. token:tag = 'end:class', 'end:class:parent', 'end:Tag', 'end:separators'
  409. token:tag = 'Token:tag', 'Token:start:separators', 'Token:end:separators'
  410. token:tag = 'caseSensitive', 'Collapsable', 'CollapsedText', 'ParseOnScreen'
  411. token:tag = 'RecurrenceDepth'
  412. token:tag = 'txt:colorFG', 'txt:colorBK', 'txt:colorSelFG', 'txt:colorSelBK'
  413. token:tag = 'txt:Bold', 'txt:Italic', 'txt:Underline'
  414. txt:colorFG = 0x505050
  415. //txt:Bold = 1
  416. txt:Italic = 1 
  417. //:lexClass
  418. lexClass:
  419. name = c_LexClass_GlobalAttributeName
  420. ParseOnScreen = 0
  421. parent = c_LexClass_section
  422. children = 0
  423. txt:Bold = 1
  424. txt:colorFG = 0x0091E0
  425. token:tag = 'global:FirstParseInSeparateThread'
  426. token:tag = 'global:EditReparceInSeparateThread'
  427. token:tag = 'global:EditReparceTimeout_ms'
  428. token:tag = 'global:MaxBackParseOffset'
  429. token:tag = 'global:OnScreenSchCacheLifeTime_sec'
  430. token:tag = 'global:ParserThreadIdleLifeTime_sec'
  431. //:lexClass