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

2 years ago
//=======================================================================
//================ 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