+;;; build the regexp strings using regexp-opt
+(defvar installshield-statement-keyword-list
+ (list
+ "abort"
+ "begin"
+ "call"
+ "case"
+ "declare"
+ "default"
+ "downto"
+ "elseif"
+ "else"
+ "endfor"
+ "endif"
+ "endswitch"
+ "endwhile"
+ "end"
+ "exit"
+ "external"
+ "for"
+ "function"
+ ;; "goto" -- handled elsewhere
+ "if"
+ "program"
+ "prototype"
+ "repeat"
+ "return"
+ "step"
+ "switch"
+ "then"
+ "to"
+ "typedef"
+ "until"
+ "void"
+ "while"
+ )
+ "Statement keywords used in InstallShield 3 and 5.")
+
+(defvar installshield-system-functions-list
+ (list
+ "AddFolderIcon"
+ "AddProfString"
+ "AddressString"
+ "AppCommand"
+ "AskDestPath"
+ "AskOptions"
+ "AskPath"
+ "AskText"
+ "AskYesNo"
+ "BatchDeleteEx"
+ "BatchFileLoad"
+ "BatchFileSave"
+ "BatchFind"
+ "BatchGetFileName"
+ "BatchMoveEx"
+ "BatchSetFileName"
+ "CloseFile"
+ "CmdGetHwndDlg"
+ "ComponentAddItem" ; differs between IS3 and IS5
+ "ComponentCompareSizeRequired" ; IS5 only
+ "ComponentDialog"
+ "ComponentError" ; IS5 only
+ "ComponentFileEnum" ; IS5 only
+ "ComponentFileInfo" ; IS5 only
+ "ComponentFilterLanguage" ; IS5 only
+ "ComponentFilterOS" ; IS5 only
+ "ComponentGetData" ; IS5 only
+ "ComponentGetItemInfo" ; IS3 only
+ "ComponentGetItemSize" ; differs between IS3 and IS5
+ "ComponentIsItemSelected" ; differs between IS3 and IS5
+ "ComponentListItems"
+ "ComponentMoveData" ; IS5 only
+ "ComponentSelectItem" ; differs between IS3 and IS5
+ "ComponentSetData" ; IS5 only
+ "ComponentSetItemInfo" ; IS3 only
+ "ComponentSetTarget" ; IS5 only
+ "ComponentSetupTypeEnum" ; IS5 only
+ "ComponentSetupTypeGetData" ; IS5 only
+ "ComponentSetupTypeSet" ; IS5 only
+ "ComponentTotalSize"
+ "ComponentValidate" ; IS5 only
+ "CompressAdd" ; IS3 only
+ "CompressDel" ; IS3 only
+ "CompressEnum" ; IS3 only
+ "CompressGet" ; IS3 only
+ "CompressInfo" ; IS3 only
+ "CopyFile"
+ "CreateDir"
+ "CreateFile"
+ "CreateProgramFolder"
+ "DeinstallSetReference" ; IS5 only
+ "DeinstallStart"
+ "Delay"
+ "DeleteDir"
+ "DeleteFile"
+ "DialogSetInfo"
+ "Disable"
+ "DoInstall"
+ "Do"
+ "Enable"
+ "EnterDisk"
+ "ExistsDir"
+ "ExistsDisk"
+ "ExitProgMan"
+ "EzBatchAddPath"
+ "EzBatchAddString"
+ "EzBatchReplace"
+ "EzConfigAddDriver"
+ "EzConfigAddString"
+ "EzConfigGetValue"
+ "EzConfigSetValue"
+ "EzDefineDialog"
+ "FileCompare"
+ "FileDeleteLine"
+ "FileGrep"
+ "FileInsertLine"
+ "FileSetBeginDefine" ; IS3 only
+ "FileSetEndDefine" ; IS3 only
+ "FileSetPerformEz" ; IS3 only
+ "FileSetPerform" ; IS3 only
+ "FileSetReset" ; IS3 only
+ "FileSetRoot" ; IS3 only
+ "FindAllDirs"
+ "FindAllFiles"
+ "FindFile"
+ "FindWindow"
+ "GetDiskSpace"
+ "GetDisk"
+ "GetEnvVar"
+ "GetExtents"
+ "GetFileInfo"
+ "GetLine"
+ "GetProfString"
+ "GetSystemInfo"
+ "GetValidDrivesList"
+ "GetVersion"
+ "GetWindowHandle"
+ "InstallationInfo"
+ "Is"
+ "LaunchApp"
+ "ListAddItem"
+ "ListAddString"
+ "ListCount"
+ "ListCreate"
+ "ListDestroy"
+ "ListFindItem"
+ "ListFindString"
+ "ListGetFirstItem"
+ "ListGetFirstString"
+ "ListGetNextItem"
+ "ListGetNextString"
+ "ListReadFromFile"
+ "ListSetNextItem"
+ "ListSetNextString"
+ "ListSetIndex"
+ "ListWriteToFile"
+ "LongPathToQuote"
+ "LongPathToShortPath"
+ "MessageBox"
+ "NumToStr"
+ "OpenFileMode"
+ "OpenFile"
+ "ParsePath"
+ "PathAdd"
+ "PathDelete"
+ "PathFind"
+ "PathGet"
+ "PathMove"
+ "PathSet"
+ "Path"
+ "PlaceBitmap"
+ "PlaceWindow"
+ "PlayMMedia" ; IS5 only
+ "ProgDefGroupType"
+ "RegDBCreateKeyEx"
+ "RegDbDeleteValue"
+ "RegDBGetItem"
+ "RegDBKeyExist"
+ "RegDBSetItem"
+ "RegDBGetKeyValueEx"
+ "RegDBSetKeyValueEx"
+ "RegDBSetDefaultRoot"
+ "RenameFile"
+ "ReplaceFolderIcon"
+ "ReplaceProfString"
+ "SdAskDestPath"
+ "SdAskOptions"
+ "SdAskOptionsList"
+ "SdBitmap"
+ "SdCloseDlg"
+ "SdComponentAdvCheckSpace"
+ "SdComponentAdvInit"
+ "SdComponentAdvUpdateSpace"
+ "SdComponentDialog"
+ "SdComponentDialog2"
+ "SdComponentDialogAdv"
+ "SdComponentDialogEx"
+ "SdComponentDlgCheckSpace"
+ "SdComponentMult"
+ "SdConfirmNewDir"
+ "SdConfirmRegistration"
+ "SdDiskSpace"
+ "SdDisplayTopics"
+ "SdDoStdButton"
+ "SdEnablement"
+ "SdError"
+ "SdFinish"
+ "SdFinishInit32"
+ "SdFinishReboot"
+ "SdGeneralInit"
+ "SdGetItemName"
+ "SdGetTextExtent"
+ "SdGetUserCompanyInfo"
+ "SdInit"
+ "SdIsShellExplorer"
+ "SdIsStdButton"
+ "SdLicense"
+ "SdMakeName"
+ "SdOptionInit"
+ "SdOptionSetState"
+ "SdOptionsButtons"
+ "SdOptionsButtonsInit"
+ "SdPlugInProductName"
+ "SdProductName"
+ "SdRegEnableButton"
+ "SdRegExEnableButton"
+ "SdRegisterUser"
+ "SdRegisterUserEx"
+ "SdRemoveEndSpace"
+ "SdSelectFolder"
+ "SdSetSequentialItems"
+ "SdSetStatic"
+ "SdSetupTypeEx" ; IS5 only
+ "SdSetupType"
+ "SdShowAnyDialog"
+ "SdShowDlgEdit1"
+ "SdShowDlgEdit2"
+ "SdShowDlgEdit3"
+ "SdShowFileMods"
+ "SdShowInfoList"
+ "SdShowMsg"
+ "SdStartCopy"
+ "SdUnInit"
+ "SdUpdateComponentSelection"
+ "SdWelcome"
+ "SendMessage"
+ "SetColor"
+ "SetFont"
+ "SetDialogTitle"
+ "SetDisplayEffect" ; IS5 only
+ "SetFileInfo"
+ "SetForegroundWindow"
+ "SetStatusWindow"
+ "SetTitle"
+ "SetupType"
+ "ShowProgramFolder"
+ "Split" ; IS3 only
+ "SprintfBox"
+ "Sprintf"
+ "StatusUpdate"
+ "StrCompare"
+ "StrFind"
+ "StrGetTokens"
+ "StrLength"
+ "StrRemoveLastSlash"
+ "StrToLower"
+ "StrToUpper"
+ "StrSub"
+ "VarRestore"
+ "VarSave"
+ "VerCompare"
+ "VerGetFileVersion"
+ "WaitOnDialog"
+ "Welcome"
+ "WriteLine"
+ "WriteProfString"
+ "XCopyFile"
+ )
+ "System functions defined in InstallShield 3 and 5.")
+
+(defvar installshield-system-variables-list
+ (list
+ "CMDLINE"
+ "CORECOMPONENTHANDLING"
+ "ERRORFILENAME"
+ "INFOFILENAME"
+ "ISRES"
+ "ISUSER"
+ "ISVERSION"
+ "MODE"
+ "SRCDIR"
+ "SRCDISK"
+ "SUPPORTDIR"
+ "TARGETDIR"
+ "TARGETDISK"
+ "WINDIR"
+ "WINDISK"
+ "WINMAJOR"
+ "WINSYSDIR"
+ "WINSYSDISK"
+ )
+ "System variables used in InstallShield 3 and 5.")
+
+(defvar installshield-types-list
+ (list
+ "BOOL"
+ "BYREF"
+ "CHAR"
+ "HIWORD"
+ "HWND"
+ "INT"
+ "LIST"
+ "LONG"
+ "LOWORD"
+ "NUMBER"
+ "POINTER"
+ "QUAD"
+ "RGB"
+ "SHORT"
+ "STRINGLIST"
+ "STRING"
+ )
+ "Type keywords used in InstallShield 3 and 5.")
+
+;;; some might want to skip highlighting these to improve performance
+(defvar installshield-funarg-constants-list
+ (list
+ "AFTER"
+ "APPEND"
+ "ALLCONTENTS"
+ "BACKBUTTON"
+ "BACKGROUNDCAPTION"
+ "BACKGROUND"
+ "BACK"
+ "BASEMEMORY"
+ "BEFORE"
+ "BIOS"
+ "BITMAPICON"
+ "BK_BLUE"
+ "BK_GREEN"
+ "BK_RED"
+ "BLUE"
+ "BOOTUPDRIVE"
+ "CANCEL"
+ "CDROM_DRIVE"
+ "CDROM"
+ "CHECKBOX95"
+ "CHECKBOX"
+ "CHECKLINE"
+ "CHECKMARK"
+ "COLORS"
+ "COMMANDEX"
+ "COMMAND"
+ "COMP_NORMAL"
+ "COMP_UPDATE_DATE"
+ "COMP_UPDATE_SAME"
+ "COMP_UPDATE_VERSION"
+ "COMPACT"
+ "CONTINUE"
+ "CPU"
+ "CUSTOM"
+ "DATE"
+ "DEFWINDOWMODE"
+ "DIR_WRITEABLE"
+ "DIRECTORY"
+ "DISABLE"
+ "DISK_TOTALSPACE"
+ "DISK"
+ "DLG_OPTIONS"
+ "DLG_PATH"
+ "DLG_TEXT"
+ "DLG_ASK_YESNO"
+ "DLG_ENTER_DISK"
+ "DLG_ERR"
+ "DLG_INFO_ALTIMAGE"
+ "DLG_INFO_CHECKSELECTION"
+ "DLG_INFO_KUNITS"
+ "DLG_INFO_USEDECIMAL"
+ "DLG_MSG_INFORMATION"
+ "DLG_MSG_SEVERE"
+ "DLG_MSG_WARNING"
+ "DLG_STATUS"
+ "DLG_WARNING"
+ "DLG_USER_CAPTION"
+ "DRIVE"
+ "ENABLE"
+ "END_OF_FILE"
+ "END_OF_LIST"
+ "ENVSPACE"
+ "EQUALS"
+ "EXCLUDE_SUBDIR"
+ "EXCLUSIVE"
+ "EXISTS"
+ "EXIT"
+ "EXTENDED_MEMORY"
+ "EXTENSION_ONLY"
+ "FAILIFEXISTS"
+ "FALSE"
+ "FEEDBACK_FULL"
+ "FILE_ATTR_ARCHIVED"
+ "FILE_ATTR_DIRECTORY"
+ "FILE_ATTR_HIDDEN"
+ "FILE_ATTR_NORMAL"
+ "FILE_ATTR_READONLY"
+ "FILE_ATTR_SYSTEM"
+ "FILE_ATTRIBUTE"
+ "FILE_DATE"
+ "FILE_LINE_LENGTH"
+ "FILE_MODE_APPEND"
+ "FILE_MODE_BINARYREADONLY"
+ "FILE_MODE_BINARY"
+ "FILE_MODE_NORMAL"
+ "FILE_NO_VERSION"
+ "FILE_NOT_FOUND"
+ "FILE_SIZE"
+ "FILE_TIME"
+ "FILENAME_ONLY"
+ "FILENAME"
+ "FIXED_DRIVE"
+ "FOLDER_DESKTOP"
+ "FOLDER_STARTMENU"
+ "FOLDER_STARTUP"
+ "FREEENVSPACE"
+ "FULLWINDOWMODE"
+ "FULL"
+ "FONT_TITLE"
+ "GREATER_THAN"
+ "GREEN"
+ "HOURGLASS"
+ "INCLUDE_SUBDIR"
+ "INDVFILESTATUS"
+ "INFORMATION"
+ "IS_WINDOWSNT"
+ "IS_WINDOWS95"
+ "IS_WINDOWS"
+ "IS_WIN32S"
+ "ISTYPE"
+ "LANGUAGE_DRV"
+ "LANGUAGE"
+ "LESS_THAN"
+ "LIST_NULL"
+ "LISTFIRST"
+ "LISTNEXT"
+ "LOCKEDFILE"
+ "LOGGING"
+ "LOWER_LEFT"
+ "LOWER_RIGHT"
+ "MAGENTA"
+ "MOUSE_DRV"
+ "MOUSE"
+ "NETWORK_DRV"
+ "NETWORK"
+ "NEXT"
+ "NONEXCLUSIVE"
+ "NORMALMODE"
+ "NOSET"
+ "NOTEXISTS"
+ "NOWAIT"
+ "NO"
+ "OFF"
+ "ONLYDIR"
+ "ON"
+ "OSMAJOR"
+ "OSMINOR"
+ "OS"
+ "OTHER_FAILURE"
+ "PARALLEL"
+ "PARTIAL"
+ "PATH_EXISTS"
+ "PATH"
+ "RED"
+ "REGDB_APPPATH_DEFAULT"
+ "REGDB_APPPATH"
+ "REGDB_BINARY"
+ "REGDB_ERR_CONNECTIONEXISTS"
+ "REGDB_ERR_CORRUPTEDREGSITRY"
+ "REGDB_ERR_INITIALIZATION"
+ "REGDB_ERR_INVALIDHANDLE"
+ "REGDB_ERR_INVALIDNAME"
+ "REGDB_NUMBER"
+ "REGDB_STRING_EXPAND"
+ "REGDB_STRING_MULTI"
+ "REGDB_STRING"
+ "REGDB_UNINSTALL_NAME"
+ "REMOTE_DRIVE"
+ "REMOVALE_DRIVE"
+ "REPLACE_ITEM"
+ "REPLACE"
+ "RESET"
+ "RESTART"
+ "ROOT"
+ "SELFREGISTER"
+ "SERIAL"
+ "SET"
+ "SEVERE"
+ "SHAREDFILE"
+ "SHARE"
+ "SILENTMODE"
+ "SRCTARGETDIR"
+ "STATUSBAR"
+ "STATUSDLG"
+ "STATUSOLD"
+ "STATUS"
+ "STYLE_NORMAL"
+ "SW_MAXIMIZE"
+ "SW_MINIMIZE"
+ "SW_RESTORE"
+ "SW_SHOW"
+ "TIME"
+ "TRUE"
+ "TYPICAL"
+ "UPPER_LEFT"
+ "UPPER_RIGHT"
+ "VALID_PATH"
+ "VERSION"
+ "VIDEO"
+ "VOLUMELABEL"
+ "YELLOW"
+ "YES"
+ "WAIT"
+ "WARNING"
+ "WINMAJOR"
+ "WINMINOR"
+ "WIN32SINSTALLED"
+ "WIN32SMAJOR"
+ "WIN32SMINOR"
+ )
+ "Function argument constants used in InstallShield 3 and 5.")