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

对话框与窗口

开发平台:

Visual C++

  1. //=======================================================================
  2. //================ Lex class support ====================================
  3. //=======================================================================
  4. //  lexClass:
  5. // name = c_CPPString
  6. // + parent = c_CPP
  7. // + parent:dyn = c_CPP
  8. // + children = 0
  9. // + children = class1, class2, ...
  10. // + previous:class =
  11. // + previous:tag =
  12. // + previous:tag:separators =
  13. // + start:class = 
  14. // + start:Tag = '"'
  15. // + skip:Tag = '"'
  16. // + end:class = //
  17. // + end:Tag = '"'
  18. // + end:separators = ' '
  19. // + Token:tag = 'if', 'for', 'while', 'do'
  20. // + Token:start:separators = 
  21. // + Token:end:separators = 
  22. /////////////////////////////////////////////////////////////////////////
  23. //=======================================================================
  24. //================ Variables support ====================================
  25. //=======================================================================
  26. // NON operation - example:   @alpha:not
  27. //
  28. // @alpha = a-z, A-Z
  29. // @digit = 0-9
  30. // @HexDdigit = 0-9, a-f, A-F
  31. // @specs = "~`!@#$%^&*()_-+=\|{}[];:'",.<>/?"
  32. // @EOL = End Of Line
  33. /////////////////////////////////////////////////////////////////////////
  34. /// Nullsoft Installer configuration file ///
  35. lexClass:
  36. parent:file = <*.nsi>
  37. name = c_NSI
  38. //caseSensitive = 1
  39. txt:colorFG = 0x000000
  40. lexClass:
  41. name = c_NSICommentSL
  42. parent:dyn = c_NSI, c_NSIFunctionBlock, c_NSISectionBlock
  43. children = c_URL
  44. start:tag =';'
  45. skip:Tag = '\rn', '\nr', '\n', '\r'
  46. end:tag = @eol
  47. txt:colorFG = 0x00A000
  48. lexClass: 
  49. name = c_String
  50. parent:dyn = c_NSI
  51. children = c_NSIVars
  52. start:Tag = '"'
  53. skip:Tag = '\"', '\rn', '\nr', '\n', '\r'
  54. end:Tag = '"', @eol
  55. txt:colorFG = 0xE00000
  56. lexClass:
  57. name = c_NSIFunctionBlock_Start
  58. parent = c_NSI
  59. children = c_String
  60. start:Tag = 'Function'
  61. end:Separators = @eol
  62. txt:colorFG = 0x0000FF
  63. lexClass:
  64. name = c_NSIFunctionBlock_End
  65. parent = c_NSI, c_NSIFunctionBlock
  66. children = 0
  67. start:Tag = 'FunctionEnd'
  68. end:Separators = @eol
  69. txt:colorFG = 0x0000FF
  70. lexClass:
  71. name = c_NSIFunctionBlock
  72. parent = c_NSI
  73. children = c_NSIFunctionBlock_End
  74. start:CLASS = c_NSIFunctionBlock_Start
  75. end:CLASS = c_NSIFunctionBlock_End
  76. Collapsable = 1 
  77. txt:colorFG = 0x909090
  78. lexClass:
  79. name = c_NSISectionBlock_Start
  80. parent = c_NSI
  81. children = c_String
  82. start:Tag = 'Section'
  83. end:Separators = @eol
  84. txt:colorFG = 0x0000FF
  85. lexClass:
  86. name = c_NSISectionBlock_End
  87. parent = c_NSI, c_NSISectionBlock
  88. children = 0
  89. start:Tag = 'SectionEnd'
  90. end:Separators = @eol
  91. txt:colorFG = 0x0000FF
  92. lexClass:
  93. name = c_NSISectionBlock
  94. parent:dyn = c_NSI
  95. start:CLASS = c_NSISectionBlock_Start
  96. end:CLASS = c_NSISectionBlock_End
  97. Collapsable = 1 
  98. txt:colorFG = 0x909090
  99. lexClass:
  100. name = c_NSIAttributes
  101. ParseOnScreen = 1
  102. parent:Dyn = c_NSI, c_NSISectionBlock, c_NSIFunctionBlock
  103. children = 0
  104.     // General installer configuration
  105. token:tag = 'OutFile', 'Name', 'Caption', 'SubCaption', 'BrandingText' 
  106. token:tag = 'Icon', 'WindowIcon', 'BGGradient', 'SilentInstall', 'SilentUnInstall'
  107. token:tag = 'CRCCheck', 'MiscButtonText', 'InstallButtonText', 'FileErrorText'
  108. token:tag = 'SetCompressor', 'LoadLanguageFile'
  109.     // Install directory configuration
  110. token:tag = 'InstallDirRegKey', 'InstallDir'
  111.     // License page configuration
  112. token:tag = 'LicenseText', 'LicenseData'
  113.     // Component page configuration
  114. token:tag = 'ComponentText', 'InstType', 'EnabledBitmap', 'DisabledBitmap', 'SpaceTexts'
  115.     // Directory page configuration
  116. token:tag = 'DirShow', 'DirText', 'AllowRootDirInstall'
  117.     // Install page configuration
  118. token:tag = 'InstallColors', 'InstProgressFlags', 'AutoCloseWindow'
  119.     token:tag = 'ShowInstDetails', 'DetailsButtonText', 'CompletedText'
  120.     // Uninstall configuration
  121. token:tag = 'UninstallText', 'UninstallIcon', 'UninstallCaption'
  122. token:tag = 'UninstallSubCaption', 'ShowUninstDetails', 'UninstallButtonText'
  123. token:start:separators = ' ', 't', @eol
  124. token:end:separators = ' ', 't', @eol
  125. txt:colorFG = 0x0000FF
  126. txt:bold = 1
  127. lexClass:
  128. name = c_NSIInstructions
  129. ParseOnScreen = 1
  130. parent:Dyn = c_NSI, c_NSISectionBlock, c_NSIFunctionBlock
  131. children = 0
  132.     // General purpose, basic instructions
  133. token:tag = 'SetOutPath', 'File', 'Exec', 'ExecWait', 'ExecShell' 
  134. token:tag = 'Rename', 'Delete', 'RMDir'
  135.     // Registry, INI file reading/writing/deleting instructions
  136. token:tag = 'WriteRegStr', 'WriteRegExpandStr', 'WriteRegDWORD', 'WriteRegBin', 'WriteINIStr' 
  137. token:tag = 'ReadRegStr', 'ReadRegDWORD', 'ReadINIStr', 'ReadEnvStr'
  138. token:tag = 'ExpandEnvStrings'
  139.     token:tag = 'DeleteRegValue', 'DeleteRegKey', 'DeleteINISec', 'DeleteINIStr'
  140. token:tag = 'EnumRegKey', 'EnumRegValue'
  141.     // General purpose, advanced instructions
  142. token:tag = 'CreateDirectory', 'CopyFiles', 'SetFileAttributes' 
  143. token:tag = 'CreateShortCut', 'GetTempFileName'
  144. token:tag = 'CallInstDLL', 'RegDLL', 'UnRegDLL'
  145. token:tag = 'GetFullPathName', 'SearchPath'
  146. token:tag = 'GetDLLVersion', 'GetDLLVersionLocal'
  147. token:tag = 'GetFileTime', 'GetFileTimeLocal', 'Nop'
  148.     // Branching, flow control, error checking, user interaction, etc instructions
  149. token:tag = 'Goto', 'Call', 'Return', 'IfErrors', 'ClearErrors' 
  150. token:tag = 'SetErrors', 'FindWindow', 'SendMessage', 'IsWindow'
  151. token:tag = 'IfFileExists', 'MessageBox'
  152. token:tag = 'StrCmp', 'IntCmp', 'IntCmpU'
  153. token:tag = 'Abort', 'Quit'
  154. token:tag = 'GetFunctionAddress', 'GetLabelAddress', 'GetCurrentAddress'
  155.     // File and directory i/o instructions
  156. token:tag = 'FindFirst', 'FindNext', 'FindClose'
  157. token:tag = 'FileOpen', 'FileClose', 'FileRead', 'FileWrite', 'FileSeek'
  158. token:tag = 'FileReadByte', 'FileWriteByte'
  159.     // Uninstaller instructions
  160. token:tag = 'WriteUninstaller'
  161.     // Misc instructions
  162. token:tag = 'SetDetailsView', 'SetDetailsPrint', 'SetAutoClose'
  163. token:tag = 'DetailPrint', 'SetShellVarContext', 'Sleep'
  164. token:tag = 'BringToFront', 'HideWindow'
  165. token:tag = 'StrCpy', 'StrLen', 'Push', 'Pop', 'Exch', 'IntOp', 'IntFmt'
  166.     // Rebooting support
  167. token:tag = 'Reboot', 'IfRebootFlag', 'SetRebootFlag'
  168.     // Install Logging Instructions
  169. token:tag = 'LogSet', 'LogText'
  170.     // Section Management
  171. token:tag = 'SectionSetFlags', 'SectionGetFlags'
  172. token:tag = 'SectionSetText', 'SectionGetText'
  173. token:start:separators = ' ', 't', @eol
  174. token:end:separators = ' ', 't', @eol
  175. txt:colorFG = 0x0022FF
  176. lexClass:
  177. name = c_NSIFunctionKeywords
  178. ParseOnScreen = 1
  179. parent     = c_NSIFunctionBlock, c_NSISectionBlock
  180. children = 0
  181. token:tag = 'Section', 'SectionIn', 'SectionDivider', 'AddSize' 
  182.     token:start:separators = ' ', 't', @eol
  183. token:end:separators = ' ', 't', @eol
  184. txt:colorFG = 0x0022FF
  185. lexClass: 
  186. name = c_NSIVars
  187. parent:dyn = c_NSI, c_NSIFunctionBlock, c_NSISectionBlock
  188. start:Tag = '$'
  189. end:separators = @specs, ' ', 't', @eol
  190. txt:colorFG = 0xCCAA00