1 <?php 2 /************************************************************************************* 3 * fortran.php 4 * ----------- 5 * Author: Cedric Arrabie (cedric.arrabie (at) univ-pau.fr) 6 * Copyright: (C) 2006 Cetric Arrabie 7 * Release Version: 1.0.8.3 8 * Date Started: 2006/04/22 9 * 10 * Fortran language file for GeSHi. 11 * 12 * CHANGES 13 * ------- 14 * 2008/05/23 (1.0.7.22) 15 * - Added description of extra language features (SF#1970248) 16 * 2006/04/20 (1.0.0) 17 * - First Release 18 * 19 * TODO 20 * ------------------------- 21 * - Get a list of inbuilt functions to add (and explore fortran more 22 * to complete this rather bare language file) 23 * 24 ************************************************************************************* 25 * 26 * This file is part of GeSHi. 27 * 28 * GeSHi is free software; you can redistribute it and/or modify 29 * it under the terms of the GNU General Public License as published by 30 * the Free Software Foundation; either version 2 of the License, or 31 * (at your option) any later version. 32 * 33 * GeSHi is distributed in the hope that it will be useful, 34 * but WITHOUT ANY WARRANTY; without even the implied warranty of 35 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 36 * GNU General Public License for more details. 37 * 38 * You should have received a copy of the GNU General Public License 39 * along with GeSHi; if not, write to the Free Software 40 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 41 * 42 ************************************************************************************/ 43 44 $language_data = array ( 45 'LANG_NAME'=>'Fortran', 46 'COMMENT_SINGLE'=> array(1 =>'!',2=>'Cf2py'), 47 'COMMENT_MULTI'=> array(), 48 //Fortran Comments 49 'COMMENT_REGEXP' => array(1 => '/^C.*?$/mi'), 50 'CASE_KEYWORDS'=> GESHI_CAPS_NO_CHANGE, 51 'QUOTEMARKS'=> array("'",'"'), 52 'ESCAPE_CHAR'=>'\\', 53 'KEYWORDS'=> array( 54 1 => array( 55 'allocate','block','call','case','contains','continue','cycle','deallocate', 56 'default','do','else','elseif','elsewhere','end','enddo','endif','endwhere', 57 'entry','exit','function','go','goto','if','interface','module','nullify','only', 58 'operator','procedure','program','recursive','return','select','stop', 59 'subroutine','then','to','where','while', 60 'access','action','advance','blank','blocksize','carriagecontrol', 61 'delim','direct','eor','err','exist','file','flen','fmt','form','formatted', 62 'iostat','name','named','nextrec','nml','number','opened','pad','position', 63 'readwrite','recl','sequential','status','unformatted','unit' 64 ), 65 2 => array( 66 '.AND.','.EQ.','.EQV.','.GE.','.GT.','.LE.','.LT.','.NE.','.NEQV.','.NOT.', 67 '.OR.','.TRUE.','.FALSE.' 68 ), 69 3 => array( 70 'allocatable','character','common','complex','data','dimension','double', 71 'equivalence','external','implicit','in','inout','integer','intent','intrinsic', 72 'kind','logical','namelist','none','optional','out','parameter','pointer', 73 'private','public','real','result','save','sequence','target','type','use' 74 ), 75 4 => array( 76 'abs','achar','acos','adjustl','adjustr','aimag','aint','all','allocated', 77 'anint','any','asin','atan','atan2','bit_size','break','btest','carg', 78 'ceiling','char','cmplx','conjg','cos','cosh','cpu_time','count','cshift', 79 'date_and_time','dble','digits','dim','dot_product','dprod dvchk', 80 'eoshift','epsilon','error','exp','exponent','floor','flush','fraction', 81 'getcl','huge','iachar','iand','ibclr','ibits','ibset','ichar','ieor','index', 82 'int','intrup','invalop','ior','iostat_msg','ishft','ishftc','lbound', 83 'len','len_trim','lge','lgt','lle','llt','log','log10','matmul','max','maxexponent', 84 'maxloc','maxval','merge','min','minexponent','minloc','minval','mod','modulo', 85 'mvbits','nbreak','ndperr','ndpexc','nearest','nint','not','offset','ovefl', 86 'pack','precfill','precision','present','product','prompt','radix', 87 'random_number','random_seed','range','repeat','reshape','rrspacing', 88 'scale','scan','segment','selected_int_kind','selected_real_kind', 89 'set_exponent','shape','sign','sin','sinh','size','spacing','spread','sqrt', 90 'sum system','system_clock','tan','tanh','timer','tiny','transfer','transpose', 91 'trim','ubound','undfl','unpack','val','verify' 92 ), 93 ), 94 'SYMBOLS'=> array( 95 '(',')','{','}','[',']','=','+','-','*','/','!','%','^','&',':' 96 ), 97 'CASE_SENSITIVE'=> array( 98 GESHI_COMMENTS => true, 99 1 => false, 100 2 => false, 101 3 => false, 102 4 => false, 103 ), 104 'STYLES'=> array( 105 'KEYWORDS'=> array( 106 1 =>'color: #b1b100;', 107 2 =>'color: #000000; font-weight: bold;', 108 3 =>'color: #000066;', 109 4 =>'color: #993333;' 110 ), 111 'COMMENTS'=> array( 112 1 =>'color: #666666; font-style: italic;', 113 2 =>'color: #339933;', 114 'MULTI'=>'color: #808080; font-style: italic;' 115 ), 116 'ESCAPE_CHAR'=> array( 117 0 =>'color: #000099; font-weight: bold;' 118 ), 119 'BRACKETS'=> array( 120 0 =>'color: #009900;' 121 ), 122 'STRINGS'=> array( 123 0 =>'color: #ff0000;' 124 ), 125 'NUMBERS'=> array( 126 0 =>'color: #cc66cc;' 127 ), 128 'METHODS'=> array( 129 1 =>'color: #202020;', 130 2 =>'color: #202020;' 131 ), 132 'SYMBOLS'=> array( 133 0 =>'color: #339933;' 134 ), 135 'REGEXPS'=> array( 136 ), 137 'SCRIPT'=> array( 138 ) 139 ), 140 'URLS'=> array( 141 1 =>'', 142 2 =>'', 143 3 =>'', 144 4 =>'' 145 ), 146 'OOLANG'=> true, 147 'OBJECT_SPLITTERS'=> array( 148 1 =>'.', 149 2 =>'::' 150 ), 151 'REGEXPS'=> array( 152 ), 153 'STRICT_MODE_APPLIES'=> GESHI_NEVER, 154 'SCRIPT_DELIMITERS'=> array( 155 ), 156 'HIGHLIGHT_STRICT_BLOCK'=> array( 157 ) 158 ); 159 160 ?> 161