/** Automic Engine Syntax Highlighting Original author: Joel Wiesmann Update for v12.1: Michael A. Lowry, 2017.12.11 Functions: What Automic calls 'Script functions' https://docs.automic.com/documentation/webhelp/english/ALL/components/DOCU/LATEST/AWA%20Guides/help.htm#AE_AWA_Source/Script/ucaaee.htm#02 Keywords: What Automic calls 'Script statements' https://docs.automic.com/documentation/webhelp/english/ALL/components/DOCU/LATEST/AWA%20Guides/help.htm#AE_AWA_Source/Script/ucaaee.htm#01 Constants: What Automic calls 'Attributes', e.g., https://docs.automic.com/documentation/webhelp/english/ALL/components/DOCU/LATEST/AWA%20Guides/help.htm#AWA/Objects/obj_job_Attributes_All.htm Also, predefined variables like &$SYSTEM# https://docs.automic.com/documentation/webhelp/english/ALL/components/DOCU/LATEST/AWA%20Guides/help.htm#AWA/Objects/varaPredefinedList.htm Variables: Any variable of the form &VARIABLE#. */ SyntaxHighlighter.brushes.Custom = function() { /* Functions having a return value */ var funcs = 'CREATE_OBJECT EXPORT IMPORT MODIFY_OBJECT MOVE_OBJECT REMOVE_OBJECT ACTIVATE_UC_OBJECT AUTOFORECAST CANCEL_UC_OBJECT ' + 'DEACTIVATE_UC_OBJECT FORECAST_OBJECT FORECAST_TASK RERUN_UC_OBJECT RESTART_UC_OBJECT ROLLBACK_UC_OBJECT SYS_STATE_ACTIVE ' + 'SYS_ACTIVE_COUNT SYS_STATE_JOB_ACTIVE SYS_STATE_JOBS_IN_GROUP SYS_STATE_JP_ACTIVE TOGGLE_OBJECT_STATUS GET_ATT GET_ATT_PLAIN ' + 'GET_ATT_SUBSTR GET_CONDITION GET_CONNECTION GET_LOGIN GET_OBJECT_TYPE GET_OH_IDNR GET_PUBLISHED_VALUE GET_STATISTIC_DETAIL ' + 'GET_SYNC GET_VAR MODIFY_TASK MODIFY_UC_OBJECT SET_SYNC XML_BEAUTIFY XML_GET_ATTRIBUTE XML_GET_CHILD_COUNT XML_GET_FIRST_CHILD ' + 'XML_GET_LAST_CHILD XML_GET_NEXTSIBLING XML_GET_NODE_NAME XML_GET_NODE_TEXT XML_OPEN XML_PRINTINTOFILE XML_SELECT_NODE FIND ' + 'GET_SCRIPT_VAR LENGTH GET_MSG_TXT GET_MSG_TYPE SEND_MAIL SYS_LAST_ERR_INS SYS_LAST_ERR_NR SYS_LAST_ERR_SYSTXT GET_PARENT_NAME ' + 'GET_PARENT_NR GET_PARENT_TYPE GET_UC_OBJECT_STATUS GET_UC_OBJECT_NR SYS_ACT_HOST SYS_ACT_JP SYS_ACT_ME_NAME SYS_ACT_ME_NR ' + 'SYS_ACT_ME_TYPE SYS_ACT_PARENT_NAME SYS_ACT_PARENT_NR SYS_ACT_PARENT_TYPE SYS_ACT_PREV_NAME SYS_ACT_PREV_NR SYS_ACT_PTTYP ' + 'SYS_ACT_RESTART SYS_ACT_RESTART_COUNT SYS_ACT_RESTART_ME_NR SYS_ACT_TOP_NAME SYS_ACT_TOP_NR SYS_ACT_USERID SYS_LAST_RESTART_POINT ' + 'SYS_LAST_RESTART_TEXT SYS_RESTART_POINT IS_GROUP_MEMBER SYS_ACT_CLIENT SYS_ACT_CLIENT_TEXT SYS_USER_ALIVE SYS_USER_DEP SYS_USER_LNAME ' + 'SYS_USER_NAME CREATE_PROCESS GET_PROCESS_INFO GET_PROCESS_LINE LOAD_PROCESS PREP_PROCESS PREP_PROCESS_AGENTGROUP PREP_PROCESS_COMMENTS ' + 'PREP_PROCESS_DOCU PREP_PROCESS_FILE PREP_PROCESS_FILENAME PREP_PROCESS_PROMPTSET PREP_PROCESS_REPORT PREP_PROCESS_REPORTLIST ' + 'PREP_PROCESS_VAR PUT_PROCESS_LINE SAVE_PROCESS WRITE_PROCESS GET_CONSOLE GET_FILESYSTEM GET_WIN_EVENT CHANGE_LOGGING GET_UC_SERVER_NAME ' + 'GET_UC_SETTING GET_UC_SYSTEM_NAME ILM MODIFY_SYSTEM SYS_BUSY_01 SYS_BUSY_10 SYS_BUSY_60 SYS_HOST_ALIVE SYS_INFO SYS_SERVER_ALIVE ' + 'SYS_SNMP_ACTIVE SYS_USER_LANGUAGE TOGGLE_SYSTEM_STATUS ADD_DAYS ADD_PERIOD ADD_TIME ADD_TIMESTAMP CALE_LOOK_AHEAD CONV_DATE CONV_TIMESTAMP ' + 'DAY_OF_YEAR DIFF_DATE DIFF_TIME FIRST_OF_PERIOD LAST_OF_PERIOD SUB_DAYS SUB_PERIOD SUB_TIME SUB_TIMESTAMP SYS_DATE SYS_DATE_PHYSICAL SYS_LDATE ' + 'SYS_TIME SYS_TIME_PHYSICAL SYS_TIMESTAMP_PHYSICAL VALID_CALE VALID_DATE VALID_TIME WEEK_NR WEEKDAY_NR WEEKDAY_XX YEAR_9999 ADD DIV GET_BIT MOD ' + 'MULT RANDOM SUB ARRAY_2_STRING ALPHA2RUNNR CONVERT FORMAT HEX ISNUMERIC RUNNR2ALPHA STR_CAT STR_CUT STR_ENDS_WITH STR_FIND STR_FIND_REVERSE ' + 'STR_ISLOWER STR_ISUPPER STR_LC STR_LENGTH STR_LTRIM STR_MATCH STR_PAD STR_REVERSE STR_RTRIM STR_SPLIT STR_STARTS_WITH STR_SUBSTITUTE ' + 'STR_SUBSTITUTE_VAR STR_TRIM STR_UC UC_CRLF ' + /* Updated for v12.1 -- 2017.12.11 MAL */ 'CINT CONV_LC CONV_UC CSTR DELETE_FORECAST DS_DEEP_RENAME DUPLICATE_OBJECT GET_APPLICATION_NR GET_CAU_AGENT_VERSIONS GET_CAU_STORE_PREFIX GET_EVENT_INFO ' + 'GENERATE_SCRIPT_VARS GET_DATATYPE GET_PARENT_TYP GET_ZDU_STEP MID PREP_PROCESS_HOSTGROUP PREP_PROCESS_VAR_XML RESOLVE_VAR STR_FIND_REV STR_LNG STR_SUB ' + 'STR_SUB_VAR SYS_LAST_ARRAY_INDEX SYS_USER_CLIENT SYS_ACT_MANDANT SYS_USER_MANDANT SYS_ACT_JOBNAME SYS_ACT_JOBNR SYS_ACT_JPNAME SYS_ACT_JPNR '+ 'SYS_ACT_ME_LNR SYS_ACT_ME_TYP SYS_ACT_PARENT_TYP SYS_ACTIV_COUNT SUBSTR TOGGLE_SYTEM_STATUS UC4_BUILD_DATE XML_ADD_COMMENT XML_APPEND_BEFORE ' + 'XML_APPEND_CHILD XML_APPEND_CLONE XML_APPEND_ELEMENT XML_CLONE_AND_RENAME XML_DELETE_NODE XML_DOM_TO_PROCESS XML_INSERT_BEFORE XML_PROCESS_TO_DOM ' + 'XML_REMOVE_CHILDREN XML_SET_ATTRIBUTE XML_SET_NODE_TEXT XML_TO_STRING'; /* Statements without a return value */ var keywords = 'ADD_ATT ADD_COMMENT ATTACH_SYNC BEGINREAD ENDREAD CLEAR CLOSE_PROCESS CONST DATA DEFINE DELETE_VAR DISCONNECT EXIT ' + 'EXT_REPORT_OFF EXT_REPORT_ON FILL GENERATE IF ELSE ENDIF INCLUDE INC_SCRIPT JCL_CONCAT_CHAR JCL_SUBSTITUTE MODIFY_STATE ' + 'ON_ERROR PRINT PROCESS TERM_PROCESS ENDPROCESS PSET PUBLISH PUT_ATT PUT_ATT_APPEND PUT_PROMPT_BUFFER PUT_READ_BUFFER ' + 'PUT_VAR PUT_VAR_COL READ REGISTER_OUTPUTFILE REMOVE_ATT REPLACE_STRUCTURE RESTART RSET SEND_MSG SEND_SNMP_TRAP SET SET_CALE ' + 'SET_CONDITION SET_LAST_ERR SET_SCRIPT_VAR SET_UC_SETTING SHUTDOWN STOP SWITCH CASE ENDSWITCH TERMINATE WAIT WHILE ENDWHILE XML_CLOSE ' + /* Updated for v12.1 -- 2017.12.11 MAL */ 'ATTACH_RES BEGIN_EXT_INT BEGIN_EXT_INTERPRETERS C CLEAR CLOSE_PROCESS CONSTANT D DOWNLOAD_RES END_EXT_INT END_EXT_INTERPRETERS ELSEVERS ENDVERS F ' + 'GEN IFVERS INC OTHER P PUB PUT PUT_PROMPT_BUF PUT_READ_BUF PUT_VAR_PROCESS REA REGISTER_VARIABLE REPLACE_JP_STRUCTURE RESOLVE S UPLOAD_RES'; /* Attributes for v12.1 -- 2017.12.11 MAL */ var constants = 'ACCOUNT ACTIVATOR ACTIVATOR_RUNID ACTIVATOR_TYPE ADDRESSTYPE AGENT AGENT_ID AGENTLOG ALIAS APPL_NAME APPLLOG ARCHIVE_KEY1 ' + 'ARCHIVE_KEY2 ATTACH_FILE ATTACH_REPORTS_RUNID ATTACH_REPORTS_SOURCE ATTR_DLG AUTO_CLOSE AUTO_DEACT AUTO_DEACT_DELAY ' + 'AUTO_DEACT_ERROR_FREE AUTOSTART_JOBS BLINDCOPY CALL_TEXT CATEGORY CHECK_METHOD1 CHECK_METHOD2 CHECK_WITHIN CHILD_QUEUE CLIENT ' + 'CLIENT_DESC CMD CO_EXECUTE CO_RISING_AUTO_DEACT CODE COMP_UNIT COMP_VALUE COMPLETEJOBOUT COMPRESS COMPRESSION CONSIDER_ALL COPY ' + 'CPU DATA_SOURCE DATABASE_NAME DATE_CREATED DATE_MODIFIED DEPARTMENT DETERMINE_RETCODE DIALOG_MODE DISPLAY DOMAIN DST_ACCOUNT ' + 'DST_AGENT DST_CLIENT DST_CODE DST_DOMAIN DST_FILE DST_FILE_ATTRIBUTES DST_GROUPNAME DST_LOGIN DST_LOGIN_INFO DST_SYSTEM DST_USERID ' + 'EMAIL ENCRYPTION ENTER_PARAMS ENTERPRISE_SERVER ERASE_SRC_FILE ESCAL_TIME ESCALATION EXISTING_DST_FILE EXPRESS FILE_FORMAT ' + 'FILE_PATH FILENAME_JOB FILENAME_SYSLST FILENAME_SYSOUT FIRST_EXEC FSC_AGENT FSC_LOGIN GATEWAY_SERVER GEN_AT_RUNTIME GET_MSGCLASSES ' + 'GR_EXEC_AUTO GR_EXEC_CMD GR_EXEC_CMD_JP GR_EXEC_CMD_MAN GROUP GROUPNAME HIPRI HOME_TERMINAL IDENT IN_PROCESSFLOW INCLUDE_SUB_DIR ' + 'INITIAL_CONTEXT_FACTORY INPUTPRIO INT_ACCOUNT JCL_SOURCE JCLJOB JOB_CLASS JOB_DEL_NOT_ON_ERROR JOB_DELETE JOB_NAME JOB_OBJECT ' + 'JOB_PARAMS JOB_PURGE JOB_TYPE JOBD JOBLOG JOBQ JOBREPORT_DB JOBREPORT_ERROR_ONLY JOBREPORT_FILE JP_TASK_NAME JSCH_PERIOD ' + 'JSCH_PERIOD_TA JSTATISTICS LANGUAGE LAST_DATE LAST_USER LDATE LOGIN LOGIN_INFO LOGON_AS_BATCH LOOP_COUNT LOOP_INDEX MAX_JCL_LINES ' + 'MAX_PAR_TASKS MAX_PARALLEL_ELSE MAX_PARALLEL_START MAX_PARALLEL_TASKS MAX_PARALLEL_TRANSFERS MAX_RET_CHILDREN MAX_RET_EXECUTE ' + 'MAX_RETCODE MODIFY_COUNT MPE_QUEUE MSG_CLASS MSG_LEVEL MSG_SEVERITY MSG_TYPE NAME NOFORWARD NOPRINT NOTIFY OBJECT_TITLE ' + 'OBJECT_TYPE OL OO OP1_AGENT OP1_DATABASE_NAME OP1_LOGIN OP1_MSACCESS_FILE OP1_QUERY OP1_SERVER_NAME OP1_SOURCE OP1_STATIC_VALUE ' + 'OP1_VARA_KEYWORD OP1_VARA_NAME OP2_AGENT OP2_DATABASE_NAME OP2_LOGIN OP2_MSACCESS_FILE OP2_QUERY OP2_SERVER_NAME OP2_SOURCE ' + 'OP2_STATIC_VALUE OP2_VARA_KEYWORD OP2_VARA_NAME OPERATOR_DB OPERATOR_FILE OTHER OTHER_TIME PARTNER_TYPE PHYS_DATE PHYS_TIME ' + 'PRIORITY PROCESSOR PROCESSOR_RUNID PROCESSOR_TYPE PROG_NAME QUEUE RECEIPT RECIPIENT RELMSGCLASS REPEAT RESOURCE_CONSUMPTION ' + 'RESP_NAME RESTART_COUNT RESTART_POINT RESTART_RUNID RESTARTED RETURNCODE ROUTEMSGCLASS RTGDTA RUNID RUNMODE SAP_CLIENT SERVER_NAME ' + 'SERVER_URL SHELL SHELL_OPTIONS SHOW_AT_DESKTOP SIEBEL_SERVERS SNMP SNMP_ACTIVE SNUMB SOURCE SPOOLDIR SRC_ACCOUNT SRC_AGENT ' + 'SRC_CLIENT SRC_CODE SRC_DOMAIN SRC_FILE SRC_FILE_ATTRIBUTES SRC_GROUPNAME SRC_LOGIN SRC_LOGIN_INFO SRC_USERID START_AFTER_SCH ' + 'STARTMODE STATISTICS STATUS STATUSBYMAIL STEPLIST SUB_TYPE SUBJECT SYS_LANGUAGE SYSLST_DB SYSLST_ERROR_ONLY SYSLST_FILE SYSOUT_DB ' + 'SYSOUT_ERROR_ONLY SYSOUT_FILE SYSTEM TASK_NAME TIME TIMEZONE TOP_PROCESSFLOW_NAME TOP_PROCESSFLOW_RUNID TYPE TYPE_MESSAGE_NUMBER ' + 'UC4_PRIORITY URGENCY USAGE_COUNT USER USER_CREATED USER_FL USER_MODIFIED USERID VMS_QUEUE WILDCARDS WIN_REPORT_BY_SCRIPT WORK_DIR'; this.regexList = [ { regex: /^\s*!.*/mg, css: 'comments' }, { regex: new RegExp('^\s*: *' + this.getKeywords(keywords), 'gmi'), css: 'keyword' }, { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, { regex: /&\w+#?/g, css: 'variable' }, /* Predefined variables -- 2017.12.11 MAL */ { regex: /&\$\w+#/g, css: 'constants' }, { regex: new RegExp(this.getKeywords(constants), 'gmi'), css: 'constants' }, { regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'functions' } // ,{ regex: new RegExp('[^:|^!]', 'gm'), css: 'bold' } // ,{ regex: /^\s*\b(?:[^:!]).*\b$/mg, css: 'bold' }, ]; }; SyntaxHighlighter.brushes.Custom.prototype = new SyntaxHighlighter.Highlighter(); SyntaxHighlighter.brushes.Custom.aliases = ['AEScript', 'aescript', 'UC4Script'];