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.
219 lines
6.8 KiB
Plaintext
219 lines
6.8 KiB
Plaintext
//=======================================================================
|
|
//================ Lex class support ====================================
|
|
//=======================================================================
|
|
// lexClass:
|
|
// name = c_CPPString
|
|
// + parent = c_CPP
|
|
// + parent:dyn = c_CPP
|
|
|
|
// + 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 =
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
//=======================================================================
|
|
//================ 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
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
/// Nullsoft Installer configuration file ///
|
|
lexClass:
|
|
parent:file = <*.nsi>
|
|
name = c_NSI
|
|
//caseSensitive = 1
|
|
txt:colorFG = 0x000000
|
|
|
|
lexClass:
|
|
name = c_NSICommentSL
|
|
parent:dyn = c_NSI, c_NSIFunctionBlock, c_NSISectionBlock
|
|
children = c_URL
|
|
start:tag =';'
|
|
skip:Tag = '\\\r\n', '\\\n\r', '\\\n', '\\\r'
|
|
end:tag = @eol
|
|
txt:colorFG = 0x00A000
|
|
|
|
lexClass:
|
|
name = c_String
|
|
parent:dyn = c_NSI
|
|
children = c_NSIVars
|
|
start:Tag = '"'
|
|
skip:Tag = '\\"', '\\\r\n', '\\\n\r', '\\\n', '\\\r'
|
|
end:Tag = '"', @eol
|
|
txt:colorFG = 0xE00000
|
|
|
|
lexClass:
|
|
name = c_NSIFunctionBlock_Start
|
|
parent = c_NSI
|
|
children = c_String
|
|
start:Tag = 'Function'
|
|
end:Separators = @eol
|
|
txt:colorFG = 0x0000FF
|
|
|
|
lexClass:
|
|
name = c_NSIFunctionBlock_End
|
|
parent = c_NSI, c_NSIFunctionBlock
|
|
children = 0
|
|
start:Tag = 'FunctionEnd'
|
|
end:Separators = @eol
|
|
txt:colorFG = 0x0000FF
|
|
|
|
lexClass:
|
|
name = c_NSIFunctionBlock
|
|
parent = c_NSI
|
|
children = c_NSIFunctionBlock_End
|
|
start:CLASS = c_NSIFunctionBlock_Start
|
|
end:CLASS = c_NSIFunctionBlock_End
|
|
Collapsable = 1
|
|
txt:colorFG = 0x909090
|
|
|
|
lexClass:
|
|
name = c_NSISectionBlock_Start
|
|
parent = c_NSI
|
|
children = c_String
|
|
start:Tag = 'Section'
|
|
end:Separators = @eol
|
|
txt:colorFG = 0x0000FF
|
|
|
|
lexClass:
|
|
name = c_NSISectionBlock_End
|
|
parent = c_NSI, c_NSISectionBlock
|
|
children = 0
|
|
start:Tag = 'SectionEnd'
|
|
end:Separators = @eol
|
|
txt:colorFG = 0x0000FF
|
|
|
|
lexClass:
|
|
name = c_NSISectionBlock
|
|
parent:dyn = c_NSI
|
|
start:CLASS = c_NSISectionBlock_Start
|
|
end:CLASS = c_NSISectionBlock_End
|
|
Collapsable = 1
|
|
txt:colorFG = 0x909090
|
|
|
|
lexClass:
|
|
name = c_NSIAttributes
|
|
ParseOnScreen = 1
|
|
parent:Dyn = c_NSI, c_NSISectionBlock, c_NSIFunctionBlock
|
|
children = 0
|
|
// General installer configuration
|
|
token:tag = 'OutFile', 'Name', 'Caption', 'SubCaption', 'BrandingText'
|
|
token:tag = 'Icon', 'WindowIcon', 'BGGradient', 'SilentInstall', 'SilentUnInstall'
|
|
token:tag = 'CRCCheck', 'MiscButtonText', 'InstallButtonText', 'FileErrorText'
|
|
token:tag = 'SetCompressor', 'LoadLanguageFile'
|
|
// Install directory configuration
|
|
token:tag = 'InstallDirRegKey', 'InstallDir'
|
|
// License page configuration
|
|
token:tag = 'LicenseText', 'LicenseData'
|
|
// Component page configuration
|
|
token:tag = 'ComponentText', 'InstType', 'EnabledBitmap', 'DisabledBitmap', 'SpaceTexts'
|
|
// Directory page configuration
|
|
token:tag = 'DirShow', 'DirText', 'AllowRootDirInstall'
|
|
// Install page configuration
|
|
token:tag = 'InstallColors', 'InstProgressFlags', 'AutoCloseWindow'
|
|
token:tag = 'ShowInstDetails', 'DetailsButtonText', 'CompletedText'
|
|
// Uninstall configuration
|
|
token:tag = 'UninstallText', 'UninstallIcon', 'UninstallCaption'
|
|
token:tag = 'UninstallSubCaption', 'ShowUninstDetails', 'UninstallButtonText'
|
|
|
|
token:start:separators = ' ', '\t', @eol
|
|
token:end:separators = ' ', '\t', @eol
|
|
|
|
txt:colorFG = 0x0000FF
|
|
txt:bold = 1
|
|
|
|
lexClass:
|
|
name = c_NSIInstructions
|
|
ParseOnScreen = 1
|
|
parent:Dyn = c_NSI, c_NSISectionBlock, c_NSIFunctionBlock
|
|
children = 0
|
|
// General purpose, basic instructions
|
|
token:tag = 'SetOutPath', 'File', 'Exec', 'ExecWait', 'ExecShell'
|
|
token:tag = 'Rename', 'Delete', 'RMDir'
|
|
// Registry, INI file reading/writing/deleting instructions
|
|
token:tag = 'WriteRegStr', 'WriteRegExpandStr', 'WriteRegDWORD', 'WriteRegBin', 'WriteINIStr'
|
|
token:tag = 'ReadRegStr', 'ReadRegDWORD', 'ReadINIStr', 'ReadEnvStr'
|
|
token:tag = 'ExpandEnvStrings'
|
|
token:tag = 'DeleteRegValue', 'DeleteRegKey', 'DeleteINISec', 'DeleteINIStr'
|
|
token:tag = 'EnumRegKey', 'EnumRegValue'
|
|
// General purpose, advanced instructions
|
|
token:tag = 'CreateDirectory', 'CopyFiles', 'SetFileAttributes'
|
|
token:tag = 'CreateShortCut', 'GetTempFileName'
|
|
token:tag = 'CallInstDLL', 'RegDLL', 'UnRegDLL'
|
|
token:tag = 'GetFullPathName', 'SearchPath'
|
|
token:tag = 'GetDLLVersion', 'GetDLLVersionLocal'
|
|
token:tag = 'GetFileTime', 'GetFileTimeLocal', 'Nop'
|
|
// Branching, flow control, error checking, user interaction, etc instructions
|
|
token:tag = 'Goto', 'Call', 'Return', 'IfErrors', 'ClearErrors'
|
|
token:tag = 'SetErrors', 'FindWindow', 'SendMessage', 'IsWindow'
|
|
token:tag = 'IfFileExists', 'MessageBox'
|
|
token:tag = 'StrCmp', 'IntCmp', 'IntCmpU'
|
|
token:tag = 'Abort', 'Quit'
|
|
token:tag = 'GetFunctionAddress', 'GetLabelAddress', 'GetCurrentAddress'
|
|
// File and directory i/o instructions
|
|
token:tag = 'FindFirst', 'FindNext', 'FindClose'
|
|
token:tag = 'FileOpen', 'FileClose', 'FileRead', 'FileWrite', 'FileSeek'
|
|
token:tag = 'FileReadByte', 'FileWriteByte'
|
|
// Uninstaller instructions
|
|
token:tag = 'WriteUninstaller'
|
|
// Misc instructions
|
|
token:tag = 'SetDetailsView', 'SetDetailsPrint', 'SetAutoClose'
|
|
token:tag = 'DetailPrint', 'SetShellVarContext', 'Sleep'
|
|
token:tag = 'BringToFront', 'HideWindow'
|
|
token:tag = 'StrCpy', 'StrLen', 'Push', 'Pop', 'Exch', 'IntOp', 'IntFmt'
|
|
// Rebooting support
|
|
token:tag = 'Reboot', 'IfRebootFlag', 'SetRebootFlag'
|
|
// Install Logging Instructions
|
|
token:tag = 'LogSet', 'LogText'
|
|
// Section Management
|
|
token:tag = 'SectionSetFlags', 'SectionGetFlags'
|
|
token:tag = 'SectionSetText', 'SectionGetText'
|
|
|
|
token:start:separators = ' ', '\t', @eol
|
|
token:end:separators = ' ', '\t', @eol
|
|
|
|
txt:colorFG = 0x0022FF
|
|
|
|
|
|
lexClass:
|
|
name = c_NSIFunctionKeywords
|
|
ParseOnScreen = 1
|
|
parent = c_NSIFunctionBlock, c_NSISectionBlock
|
|
children = 0
|
|
token:tag = 'Section', 'SectionIn', 'SectionDivider', 'AddSize'
|
|
|
|
token:start:separators = ' ', '\t', @eol
|
|
token:end:separators = ' ', '\t', @eol
|
|
|
|
txt:colorFG = 0x0022FF
|
|
|
|
lexClass:
|
|
name = c_NSIVars
|
|
parent:dyn = c_NSI, c_NSIFunctionBlock, c_NSISectionBlock
|
|
start:Tag = '$'
|
|
end:separators = @specs, ' ', '\t', @eol
|
|
txt:colorFG = 0xCCAA00
|
|
|