1<?php 2/************************************************************************************* 3 * jcl.php 4 * ----------- 5 * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com) 6 * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in) 7 * Release Version: 1.0.9.1 8 * Date Started: 2011/09/16 9 * 10 * JCL (MVS), DFSORT, IDCAMS language file for GeSHi. 11 * 12 * CHANGES 13 * ------- 14 * 2011/09/16 (1.0.0) 15 * - Internal Release (for own blog/testing) 16 * 2012/09/22 (1.0.1) 17 * - Released with support for DFSORT, ICETOOL, IDCAMS 18 * - Added support for Symbolic variables in JCL 19 * - Added support for TWS OPC variables 20 * 21 ************************************************************************************* 22 * 23 * This file is part of GeSHi. 24 * 25 * GeSHi is free software; you can redistribute it and/or modify 26 * it under the terms of the GNU General Public License as published by 27 * the Free Software Foundation; either version 2 of the License, or 28 * (at your option) any later version. 29 * 30 * GeSHi is distributed in the hope that it will be useful, 31 * but WITHOUT ANY WARRANTY; without even the implied warranty of 32 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 * GNU General Public License for more details. 34 * 35 * You should have received a copy of the GNU General Public License 36 * along with GeSHi; if not, write to the Free Software 37 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 38 * 39 ************************************************************************************/ 40 41$language_data = array ( 42 'LANG_NAME' => 'JCL', 43 'COMMENT_SINGLE' => array(), 44 'COMMENT_MULTI' => array(), 45 'COMMENT_REGEXP' => array( 46 // Comments identified using REGEX 47 // Comments start with //* but should not be followed by % (TWS) or + (some JES3 stmts) 48 3 => "\/\/\*[^%](.*?)(\n)" 49 ), 50 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, 51 'QUOTEMARKS' => array("'", '"'), 52 'ESCAPE_CHAR' => '', 53 'KEYWORDS' => array( 54 1 => array( 55 'COMMAND', 'CNTL', 'DD', 'ENDCNTL', 'EXEC', 'IF', 'THEN', 'ELSE', 56 'ENDIF', 'JCLLIB', 'JOB', 'OUTPUT', 'PEND', 57 'PROC', 'SET', 'XMIT' 58 ), 59 2 => array ( 60 'PGM','CLASS','NOTIFY','MSGCLASS','DSN','KEYLEN','LABEL','LIKE', 61 'RECFM','LRECL','DCB','DSORG','BLKSIZE','SPACE','STORCLAS', 62 'DUMMY','DYNAM','AVGREC','BURST','DISP','UNIT','VOLUME', 63 'MSGLEVEL','REGION' 64 ), 65 // Keywords set 3: DFSORT, ICETOOL 66 3 => array ( 67 'ALTSEQ','DEBUG','END','INCLUDE','INREC','MERGE','MODS','OMIT', 68 'OPTION','OUTFIL','OUTREC','RECORD','SORT','SUM', 69 'COPY','COUNT','DEFAULTS','DISPLAY','MODE','OCCUR','RANGE', 70 'SELECT','STATS','UNIQUE','VERIFY' 71 ), 72 // Keywords set 4: IDCAMS 73 4 => array ( 74 'ALTER','BLDINDEX','CNVTCAT','DEFINE','ALIAS','ALTERNATEINDEX', 75 'CLUSTER','GENERATIONDATAGROUP','GDG','NONVSAM','PAGESPACE','PATH', 76 /* 'SPACE',*/'USERCATALOG','DELETE','EXAMINE','EXPORT','DISCONNECT', 77 'EXPORTRA','IMPORT','CONNECT','IMPORTRA','LISTCAT','LISTCRA', 78 'PRINT','REPRO','RESETCAT'//,'VERIFY' 79 ) 80 ), 81 'SYMBOLS' => array( 82 '(',')','=',',','>','<' 83 ), 84 'CASE_SENSITIVE' => array( 85 GESHI_COMMENTS => false, 86 1 => false, 87 2 => false, 88 3 => false, 89 4 => false 90 ), 91 'STYLES' => array( 92 'KEYWORDS' => array( 93 1 => 'color: #FF0000;', 94 2 => 'color: #21A502;', 95 3 => 'color: #FF00FF;', 96 4 => 'color: #876C00;' 97 ), 98 'COMMENTS' => array( 99 0 => 'color: #0000FF;', 100 //1 => 'color: #0000FF;', 101 //2 => 'color: #0000FF;', 102 3 => 'color: #0000FF;' 103 ), 104 'ESCAPE_CHAR' => array( 105 0 => '' 106 ), 107 'BRACKETS' => array( 108 0 => 'color: #FF7400;' 109 ), 110 'STRINGS' => array( 111 0 => 'color: #66CC66;' 112 ), 113 'NUMBERS' => array( 114 0 => 'color: #336633;' 115 ), 116 'METHODS' => array( 117 1 => '', 118 2 => '' 119 ), 120 'SYMBOLS' => array( 121 0 => 'color: #FF7400;' 122 ), 123 'REGEXPS' => array( 124 0 => 'color: #6B1F6B;', 125 1 => 'color: #6B1F6B;', 126 2 => 'color: #6B1F6B;' 127 ), 128 'SCRIPT' => array( 129 0 => '' 130 ) 131 ), 132 'URLS' => array( 133 1 => '', 134 // JCL book at IBM Bookshelf is http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/handheld/Connected/BOOKS/IEA2B680/CONTENTS?SHELF=&DT=20080604022956#3.1 135 2 => '', 136 3 => '', 137 4 => '' 138 ), 139 'OOLANG' => false, 140 'OBJECT_SPLITTERS' => array(), 141 'REGEXPS' => array( 142 // The following regular expressions solves three purposes 143 // - Identify Temp Variables in JCL (e.g. &&TEMP) 144 // - Symbolic variables in JCL (e.g. &SYSUID) 145 // - TWS OPC Variables (e.g. %OPC) 146 // Thanks to Simon for pointing me to this 147 0 => '&&[a-zA-Z]{1,8}[0-9]{0,}', 148 1 => '&[a-zA-Z]{1,8}[0-9]{0,}', 149 2 => '&|\?|%[a-zA-Z]{1,8}[0-9]{0,}' 150 ), 151 'STRICT_MODE_APPLIES' => GESHI_NEVER, 152 'SCRIPT_DELIMITERS' => array( 153 ), 154 'HIGHLIGHT_STRICT_BLOCK' => array() 155); 156