[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/vendor/geshi/geshi/src/geshi/ -> erlang.php (source)

   1  <?php
   2  /*************************************************************************************
   3   * erlang.php
   4   * --------
   5   * Author: Benny Baumann (BenBE@geshi.org)
   6   * Contributions:
   7   * - Uwe Dauernheim (uwe@dauernheim.net)
   8   * - Dan Forest-Barbier (dan@twisted.in)
   9   * Copyright: (c) 2008 Uwe Dauernheim (http://www.kreisquadratur.de/)
  10   * Release Version: 1.0.9.1
  11   * Date Started: 2008-09-27
  12   *
  13   * Erlang language file for GeSHi.
  14   *
  15   * CHANGES
  16   * -------
  17   * 2009/05/02 (1.0.8.3)
  18   *  -  Now using 'PARSER_CONTROL' instead of huge rexgexps, better and cleaner
  19   *
  20   * 2009/04/26 (1.0.8.3)
  21   *  -  Only link to existing docs / Fixes
  22   *
  23   * 2008-09-28 (1.0.0.1)
  24   *   [!] Bug fixed with keyword module.
  25   *   [+] Added more function names
  26   *
  27   * 2008-09-27 (1.0.0)
  28   *   [ ] First Release
  29   *
  30   * TODO (updated 2008-09-27)
  31   * -------------------------
  32   *   [!] Stop ';' from being transformed to '<SEMI>'
  33   *
  34   *************************************************************************************
  35   *
  36   *     This file is part of GeSHi.
  37   *
  38   *   GeSHi is free software; you can redistribute it and/or modify
  39   *   it under the terms of the GNU General Public License as published by
  40   *   the Free Software Foundation; either version 2 of the License, or
  41   *   (at your option) any later version.
  42   *
  43   *   GeSHi is distributed in the hope that it will be useful,
  44   *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  45   *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  46   *   GNU General Public License for more details.
  47   *
  48   *   You should have received a copy of the GNU General Public License
  49   *   along with GeSHi; if not, write to the Free Software
  50   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  51   *
  52   ************************************************************************************/
  53  
  54  $language_data = array(
  55      'LANG_NAME' => 'Erlang',
  56      'COMMENT_SINGLE' => array(1 => '%'),
  57      'COMMENT_MULTI' => array(),
  58      'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
  59      'QUOTEMARKS' => array('"'),
  60      'HARDQUOTE' => array("'", "'"),
  61      'HARDESCAPE' => array("'", "\\"),
  62      'HARDCHAR' => "\\",
  63      'ESCAPE_CHAR' => '\\',
  64      'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
  65      'KEYWORDS' => array(
  66          //Control flow keywrods
  67          1 => array(
  68              'after', 'andalso', 'begin', 'case', 'catch', 'end', 'fun', 'if',
  69              'of', 'orelse', 'receive', 'try', 'when', 'query'
  70              ),
  71          //Binary operators
  72          2 => array(
  73              'and', 'band', 'bnot', 'bor', 'bsl', 'bsr', 'bxor', 'div', 'not',
  74              'or', 'rem', 'xor'
  75              ),
  76          3 => array(
  77              'abs', 'alive', 'apply', 'atom_to_list', 'binary_to_list',
  78              'binary_to_term', 'concat_binary', 'date', 'disconnect_node',
  79              'element', 'erase', 'exit', 'float', 'float_to_list', 'get',
  80              'get_keys', 'group_leader', 'halt', 'hd', 'integer_to_list',
  81              'is_alive', 'length', 'link', 'list_to_atom', 'list_to_binary',
  82              'list_to_float', 'list_to_integer', 'list_to_pid', 'list_to_tuple',
  83              'load_module', 'make_ref', 'monitor_node', 'node', 'nodes', 'now',
  84              'open_port', 'pid_to_list', 'process_flag', 'process_info',
  85              'process', 'put', 'register', 'registered', 'round', 'self',
  86              'setelement', 'size', 'spawn', 'spawn_link', 'split_binary',
  87              'statistics', 'term_to_binary', 'throw', 'time', 'tl', 'trunc',
  88              'tuple_to_list', 'unlink', 'unregister', 'whereis'
  89              ),
  90          // Built-In Functions
  91          4 => array(
  92              'atom', 'binary', 'constant', 'function', 'integer', 'is_atom',
  93              'is_binary', 'is_constant', 'is_function', 'is_integer', 'is_list',
  94              'is_number', 'is_pid', 'is_reference', 'is_record', 'list',
  95              'number', 'pid', 'ports', 'port_close', 'port_info', 'reference'
  96              ),
  97          // Erlang/OTP internal modules (scary one)
  98          5 => array(
  99              'alarm_handler', 'any', 'app', 'application', 'appmon', 'appup',
 100              'array', 'asn1ct', 'asn1rt', 'auth', 'base64', 'beam_lib', 'c',
 101              'calendar', 'code', 'common_test_app', 'compile', 'config',
 102              'corba', 'corba_object', 'cosEventApp', 'CosEventChannelAdmin',
 103              'CosEventChannelAdmin_ConsumerAdmin',
 104              'CosEventChannelAdmin_EventChannel',
 105              'CosEventChannelAdmin_ProxyPullConsumer',
 106              'CosEventChannelAdmin_ProxyPullSupplier',
 107              'CosEventChannelAdmin_ProxyPushConsumer',
 108              'CosEventChannelAdmin_ProxyPushSupplier',
 109              'CosEventChannelAdmin_SupplierAdmin', 'CosEventDomainAdmin',
 110              'CosEventDomainAdmin_EventDomain',
 111              'CosEventDomainAdmin_EventDomainFactory',
 112              'cosEventDomainApp', 'CosFileTransfer_Directory',
 113              'CosFileTransfer_File', 'CosFileTransfer_FileIterator',
 114              'CosFileTransfer_FileTransferSession',
 115              'CosFileTransfer_VirtualFileSystem',
 116              'cosFileTransferApp', 'CosNaming', 'CosNaming_BindingIterator',
 117              'CosNaming_NamingContext', 'CosNaming_NamingContextExt',
 118              'CosNotification', 'CosNotification_AdminPropertiesAdmin',
 119              'CosNotification_QoSAdmin', 'cosNotificationApp',
 120              'CosNotifyChannelAdmin_ConsumerAdmin',
 121              'CosNotifyChannelAdmin_EventChannel',
 122              'CosNotifyChannelAdmin_EventChannelFactory',
 123              'CosNotifyChannelAdmin_ProxyConsumer',
 124              'CosNotifyChannelAdmin_ProxyPullConsumer',
 125              'CosNotifyChannelAdmin_ProxyPullSupplier',
 126              'CosNotifyChannelAdmin_ProxyPushConsumer',
 127              'CosNotifyChannelAdmin_ProxyPushSupplier',
 128              'CosNotifyChannelAdmin_ProxySupplier',
 129              'CosNotifyChannelAdmin_SequenceProxyPullConsumer',
 130              'CosNotifyChannelAdmin_SequenceProxyPullSupplier',
 131              'CosNotifyChannelAdmin_SequenceProxyPushConsumer',
 132              'CosNotifyChannelAdmin_SequenceProxyPushSupplier',
 133              'CosNotifyChannelAdmin_StructuredProxyPullConsumer',
 134              'CosNotifyChannelAdmin_StructuredProxyPullSupplier',
 135              'CosNotifyChannelAdmin_StructuredProxyPushConsumer',
 136              'CosNotifyChannelAdmin_StructuredProxyPushSupplier',
 137              'CosNotifyChannelAdmin_SupplierAdmin',
 138              'CosNotifyComm_NotifyPublish', 'CosNotifyComm_NotifySubscribe',
 139              'CosNotifyFilter_Filter', 'CosNotifyFilter_FilterAdmin',
 140              'CosNotifyFilter_FilterFactory', 'CosNotifyFilter_MappingFilter',
 141              'cosProperty', 'CosPropertyService_PropertiesIterator',
 142              'CosPropertyService_PropertyNamesIterator',
 143              'CosPropertyService_PropertySet',
 144              'CosPropertyService_PropertySetDef',
 145              'CosPropertyService_PropertySetDefFactory',
 146              'CosPropertyService_PropertySetFactory', 'cosTime',
 147              'CosTime_TimeService', 'CosTime_TIO', 'CosTime_UTO',
 148              'CosTimerEvent_TimerEventHandler',
 149              'CosTimerEvent_TimerEventService', 'cosTransactions',
 150              'CosTransactions_Control', 'CosTransactions_Coordinator',
 151              'CosTransactions_RecoveryCoordinator', 'CosTransactions_Resource',
 152              'CosTransactions_SubtransactionAwareResource',
 153              'CosTransactions_Terminator', 'CosTransactions_TransactionFactory',
 154              'cover', 'cprof', 'cpu_sup', 'crashdump', 'crypto', 'crypto_app',
 155              'ct', 'ct_cover', 'ct_ftp', 'ct_master', 'ct_rpc', 'ct_snmp',
 156              'ct_ssh', 'ct_telnet', 'dbg', 'debugger', 'dets', 'dialyzer',
 157              'dict', 'digraph', 'digraph_utils', 'disk_log', 'disksup',
 158              'docb_gen', 'docb_transform', 'docb_xml_check', 'docbuilder_app',
 159              'driver_entry', 'edoc', 'edoc_doclet', 'edoc_extract',
 160              'edoc_layout', 'edoc_lib', 'edoc_run', 'egd', 'ei', 'ei_connect',
 161              'epmd', 'epp', 'epp_dodger', 'eprof', 'erl', 'erl_boot_server',
 162              'erl_call', 'erl_comment_scan', 'erl_connect', 'erl_ddll',
 163              'erl_driver', 'erl_error', 'erl_eterm', 'erl_eval',
 164              'erl_expand_records', 'erl_format', 'erl_global', 'erl_id_trans',
 165              'erl_internal', 'erl_lint', 'erl_malloc', 'erl_marshal',
 166              'erl_parse', 'erl_pp', 'erl_prettypr', 'erl_prim_loader',
 167              'erl_prim_loader_stub', 'erl_recomment', 'erl_scan',
 168              'erl_set_memory_block', 'erl_syntax', 'erl_syntax_lib', 'erl_tar',
 169              'erl_tidy', 'erlang', 'erlang_mode', 'erlang_stub', 'erlc',
 170              'erlsrv', 'error_handler', 'error_logger', 'erts_alloc',
 171              'erts_alloc_config', 'escript', 'et', 'et_collector',
 172              'et_selector', 'et_viewer', 'etop', 'ets', 'eunit', 'file',
 173              'file_sorter', 'filelib', 'filename', 'fixed', 'fprof', 'ftp',
 174              'gb_sets', 'gb_trees', 'gen_event', 'gen_fsm', 'gen_sctp',
 175              'gen_server', 'gen_tcp', 'gen_udp', 'gl', 'global', 'global_group',
 176              'glu', 'gs', 'heart', 'http', 'httpd', 'httpd_conf',
 177              'httpd_socket', 'httpd_util', 'i', 'ic', 'ic_c_protocol',
 178              'ic_clib', 'igor', 'inet', 'inets', 'init', 'init_stub',
 179              'instrument', 'int', 'interceptors', 'inviso', 'inviso_as_lib',
 180              'inviso_lfm', 'inviso_lfm_tpfreader', 'inviso_rt',
 181              'inviso_rt_meta', 'io', 'io_lib', 'kernel_app', 'lib', 'lists',
 182              'lname', 'lname_component', 'log_mf_h', 'make', 'math', 'megaco',
 183              'megaco_codec_meas', 'megaco_codec_transform',
 184              'megaco_edist_compress', 'megaco_encoder', 'megaco_flex_scanner',
 185              'megaco_tcp', 'megaco_transport', 'megaco_udp', 'megaco_user',
 186              'memsup', 'mnesia', 'mnesia_frag_hash', 'mnesia_registry',
 187              'mod_alias', 'mod_auth', 'mod_esi', 'mod_security',
 188              'Module_Interface', 'ms_transform', 'net_adm', 'net_kernel',
 189              'new_ssl', 'nteventlog', 'observer_app', 'odbc', 'orber',
 190              'orber_acl', 'orber_diagnostics', 'orber_ifr', 'orber_tc',
 191              'orddict', 'ordsets', 'os', 'os_mon', 'os_mon_mib', 'os_sup',
 192              'otp_mib', 'overload', 'packages', 'percept', 'percept_profile',
 193              'pg', 'pg2', 'pman', 'pool', 'prettypr', 'proc_lib', 'proplists',
 194              'public_key', 'qlc', 'queue', 'random', 'rb', 're', 'regexp',
 195              'registry', 'rel', 'release_handler', 'reltool', 'relup', 'rpc',
 196              'run_erl', 'run_test', 'runtime_tools_app', 'sasl_app', 'script',
 197              'seq_trace', 'sets', 'shell', 'shell_default', 'slave', 'snmp',
 198              'snmp_app', 'snmp_community_mib', 'snmp_framework_mib',
 199              'snmp_generic', 'snmp_index', 'snmp_notification_mib', 'snmp_pdus',
 200              'snmp_standard_mib', 'snmp_target_mib', 'snmp_user_based_sm_mib',
 201              'snmp_view_based_acm_mib', 'snmpa', 'snmpa_conf', 'snmpa_error',
 202              'snmpa_error_io', 'snmpa_error_logger', 'snmpa_error_report',
 203              'snmpa_local_db', 'snmpa_mpd', 'snmpa_network_interface',
 204              'snmpa_network_interface_filter',
 205              'snmpa_notification_delivery_info_receiver',
 206              'snmpa_notification_filter', 'snmpa_supervisor', 'snmpc', 'snmpm',
 207              'snmpm_conf', 'snmpm_mpd', 'snmpm_network_interface', 'snmpm_user',
 208              'sofs', 'ssh', 'ssh_channel', 'ssh_connection', 'ssh_sftp',
 209              'ssh_sftpd', 'ssl', 'ssl_app', 'ssl_pkix', 'start', 'start_erl',
 210              'start_webtool', 'stdlib_app', 'string', 'supervisor',
 211              'supervisor_bridge', 'sys', 'systools', 'tags', 'test_server',
 212              'test_server_app', 'test_server_ctrl', 'tftp', 'timer', 'toolbar',
 213              'ttb', 'tv', 'unicode', 'unix_telnet', 'user', 'webtool', 'werl',
 214              'win32reg', 'wrap_log_reader', 'wx', 'wx_misc', 'wx_object',
 215              'wxAcceleratorEntry', 'wxAcceleratorTable', 'wxArtProvider',
 216              'wxAuiDockArt', 'wxAuiManager', 'wxAuiNotebook', 'wxAuiPaneInfo',
 217              'wxAuiTabArt', 'wxBitmap', 'wxBitmapButton', 'wxBitmapDataObject',
 218              'wxBoxSizer', 'wxBrush', 'wxBufferedDC', 'wxBufferedPaintDC',
 219              'wxButton', 'wxCalendarCtrl', 'wxCalendarDateAttr',
 220              'wxCalendarEvent', 'wxCaret', 'wxCheckBox', 'wxCheckListBox',
 221              'wxChildFocusEvent', 'wxChoice', 'wxClientDC', 'wxClipboard',
 222              'wxCloseEvent', 'wxColourData', 'wxColourDialog',
 223              'wxColourPickerCtrl', 'wxColourPickerEvent', 'wxComboBox',
 224              'wxCommandEvent', 'wxContextMenuEvent', 'wxControl',
 225              'wxControlWithItems', 'wxCursor', 'wxDataObject', 'wxDateEvent',
 226              'wxDatePickerCtrl', 'wxDC', 'wxDialog', 'wxDirDialog',
 227              'wxDirPickerCtrl', 'wxDisplayChangedEvent', 'wxEraseEvent',
 228              'wxEvent', 'wxEvtHandler', 'wxFileDataObject', 'wxFileDialog',
 229              'wxFileDirPickerEvent', 'wxFilePickerCtrl', 'wxFindReplaceData',
 230              'wxFindReplaceDialog', 'wxFlexGridSizer', 'wxFocusEvent', 'wxFont',
 231              'wxFontData', 'wxFontDialog', 'wxFontPickerCtrl',
 232              'wxFontPickerEvent', 'wxFrame', 'wxGauge', 'wxGBSizerItem',
 233              'wxGenericDirCtrl', 'wxGLCanvas', 'wxGraphicsBrush',
 234              'wxGraphicsContext', 'wxGraphicsFont', 'wxGraphicsMatrix',
 235              'wxGraphicsObject', 'wxGraphicsPath', 'wxGraphicsPen',
 236              'wxGraphicsRenderer', 'wxGrid', 'wxGridBagSizer', 'wxGridCellAttr',
 237              'wxGridCellEditor', 'wxGridCellRenderer', 'wxGridEvent',
 238              'wxGridSizer', 'wxHelpEvent', 'wxHtmlEasyPrinting', 'wxIcon',
 239              'wxIconBundle', 'wxIconizeEvent', 'wxIdleEvent', 'wxImage',
 240              'wxImageList', 'wxJoystickEvent', 'wxKeyEvent',
 241              'wxLayoutAlgorithm', 'wxListBox', 'wxListCtrl', 'wxListEvent',
 242              'wxListItem', 'wxListView', 'wxMask', 'wxMaximizeEvent',
 243              'wxMDIChildFrame', 'wxMDIClientWindow', 'wxMDIParentFrame',
 244              'wxMemoryDC', 'wxMenu', 'wxMenuBar', 'wxMenuEvent', 'wxMenuItem',
 245              'wxMessageDialog', 'wxMiniFrame', 'wxMirrorDC',
 246              'wxMouseCaptureChangedEvent', 'wxMouseEvent', 'wxMoveEvent',
 247              'wxMultiChoiceDialog', 'wxNavigationKeyEvent', 'wxNcPaintEvent',
 248              'wxNotebook', 'wxNotebookEvent', 'wxNotifyEvent',
 249              'wxPageSetupDialog', 'wxPageSetupDialogData', 'wxPaintDC',
 250              'wxPaintEvent', 'wxPalette', 'wxPaletteChangedEvent', 'wxPanel',
 251              'wxPasswordEntryDialog', 'wxPen', 'wxPickerBase', 'wxPostScriptDC',
 252              'wxPreviewCanvas', 'wxPreviewControlBar', 'wxPreviewFrame',
 253              'wxPrintData', 'wxPrintDialog', 'wxPrintDialogData', 'wxPrinter',
 254              'wxPrintout', 'wxPrintPreview', 'wxProgressDialog',
 255              'wxQueryNewPaletteEvent', 'wxRadioBox', 'wxRadioButton',
 256              'wxRegion', 'wxSashEvent', 'wxSashLayoutWindow', 'wxSashWindow',
 257              'wxScreenDC', 'wxScrollBar', 'wxScrolledWindow', 'wxScrollEvent',
 258              'wxScrollWinEvent', 'wxSetCursorEvent', 'wxShowEvent',
 259              'wxSingleChoiceDialog', 'wxSizeEvent', 'wxSizer', 'wxSizerFlags',
 260              'wxSizerItem', 'wxSlider', 'wxSpinButton', 'wxSpinCtrl',
 261              'wxSpinEvent', 'wxSplashScreen', 'wxSplitterEvent',
 262              'wxSplitterWindow', 'wxStaticBitmap', 'wxStaticBox',
 263              'wxStaticBoxSizer', 'wxStaticLine', 'wxStaticText', 'wxStatusBar',
 264              'wxStdDialogButtonSizer', 'wxStyledTextCtrl', 'wxStyledTextEvent',
 265              'wxSysColourChangedEvent', 'wxTextAttr', 'wxTextCtrl',
 266              'wxTextDataObject', 'wxTextEntryDialog', 'wxToggleButton',
 267              'wxToolBar', 'wxToolTip', 'wxTopLevelWindow', 'wxTreeCtrl',
 268              'wxTreeEvent', 'wxUpdateUIEvent', 'wxWindow', 'wxWindowCreateEvent',
 269              'wxWindowDC', 'wxWindowDestroyEvent', 'wxXmlResource', 'xmerl',
 270              'xmerl_eventp', 'xmerl_scan', 'xmerl_xpath', 'xmerl_xs',
 271              'xmerl_xsd', 'xref', 'yecc', 'zip', 'zlib', 'zlib_stub'
 272              ),
 273          // Binary modifiers
 274          6 => array(
 275              'big', 'binary', 'float', 'integer', 'little', 'signed', 'unit', 'unsigned'
 276              )
 277          ),
 278      'SYMBOLS' => array(
 279          0 => array('(', ')', '[', ']', '{', '}'),
 280          1 => array('->', ',', ';', '.'),
 281          2 => array('<<', '>>'),
 282          3 => array('=', '||', '-', '+', '*', '/', '++', '--', '!', '<', '>', '>=',
 283                      '=<', '==', '/=', '=:=', '=/=')
 284          ),
 285      'CASE_SENSITIVE' => array(
 286          GESHI_COMMENTS => false,
 287          1 => true,
 288          2 => true,
 289          3 => true,
 290          4 => true,
 291          5 => true,
 292          6 => true
 293          ),
 294      'STYLES' => array(
 295          'KEYWORDS' => array(
 296              1 => 'color: #186895;',
 297              2 => 'color: #014ea4;',
 298              3 => 'color: #fa6fff;',
 299              4 => 'color: #fa6fff;',
 300              5 => 'color: #ff4e18;',
 301              6 => 'color: #9d4f37;'
 302              ),
 303          'COMMENTS' => array(
 304              1 => 'color: #666666; font-style: italic;',
 305              'MULTI' => 'color: #666666; font-style: italic;'
 306              ),
 307          'ESCAPE_CHAR' => array(
 308              0 => 'color: #000099; font-weight: bold;',
 309              'HARD' => 'color: #000099; font-weight: bold;'
 310              ),
 311          'BRACKETS' => array(
 312              0 => 'color: #109ab8;'
 313              ),
 314          'STRINGS' => array(
 315              0 => 'color: #ff7800;'
 316              ),
 317          'NUMBERS' => array(
 318              0 => 'color: #ff9600;'
 319              ),
 320          'METHODS' => array(
 321              1 => 'color: #006600;',
 322              2 => 'color: #006600;'
 323              ),
 324          'SYMBOLS' => array(
 325              0 => 'color: #004866;',
 326              1 => 'color: #6bb810;',
 327              2 => 'color: #ee3800;',
 328              3 => 'color: #014ea4;'
 329              ),
 330          'REGEXPS' => array(
 331              0 => 'color: #6941fd;',
 332              1 => 'color: #d400ed;',
 333              2 => 'color: #5400b3;',
 334              3 => 'color: #ff3c00;',
 335              4 => 'color: #6941fd;',
 336              5 => 'color: #45b3e6;',
 337              6 => 'color: #ff9600;',
 338              7 => 'color: #d400ed;',
 339              8 => 'color: #ff9600;'
 340              ),
 341          'SCRIPT' => array(
 342              )
 343          ),
 344      'URLS' => array(
 345          1 => '',
 346          2 => '',
 347          3 => '',
 348          4 => '',
 349          5 => 'http://erlang.org/doc/man/{FNAME}.html',
 350          6 => ''
 351          ),
 352      'OOLANG' => true,
 353      'OBJECT_SPLITTERS' => array(
 354          1 => '-&gt;',
 355          2 => ':'
 356          ),
 357      'REGEXPS' => array(
 358          //�Macro definitions
 359          0 => array(
 360              GESHI_SEARCH => '(-define\s*\()([a-zA-Z0-9_]+)(\(|,)',
 361              GESHI_REPLACE => '\2',
 362              GESHI_MODIFIERS => '',
 363              GESHI_BEFORE => '\1',
 364              GESHI_AFTER => '\3'
 365              ),
 366          // Record definitions
 367          1 => array(
 368              GESHI_SEARCH => '(-record\s*\()([a-zA-Z0-9_]+)(,)',
 369              GESHI_REPLACE => '\2',
 370              GESHI_MODIFIERS => '',
 371              GESHI_BEFORE => '\1',
 372              GESHI_AFTER => '\3'
 373              ),
 374          // Precompiler directives
 375          2 => array(
 376              GESHI_SEARCH => '(-)([a-z][a-zA-Z0-9_]*)(\()',
 377              GESHI_REPLACE => '\2',
 378              GESHI_MODIFIERS => '',
 379              GESHI_BEFORE => '\1',
 380              GESHI_AFTER => '\3'
 381              ),
 382          // Functions
 383          3 => array(
 384              GESHI_SEARCH => '([a-z]\w*|\'\w*\')(\s*\()',
 385              GESHI_REPLACE => '\1',
 386              GESHI_MODIFIERS => '',
 387              GESHI_BEFORE => '',
 388              GESHI_AFTER => '\2'
 389              ),
 390          // Macros
 391          4 => array(
 392              GESHI_SEARCH => '(\?)([a-zA-Z0-9_]+)',
 393              GESHI_REPLACE => '\2',
 394              GESHI_MODIFIERS => '',
 395              GESHI_BEFORE => '\1',
 396              GESHI_AFTER => ''
 397              ),
 398          // Variables - With hack to avoid interfering wish GeSHi internals
 399          5 => array(
 400              GESHI_SEARCH => '([([{,<+*-\/=\s!]|&lt;)(?!(?:PIPE|SEMI|DOT|NUM|REG3XP\d*)\W)([A-Z_]\w*)(?!\w)',
 401              GESHI_REPLACE => '\2',
 402              GESHI_MODIFIERS => '',
 403              GESHI_BEFORE => '\1',
 404              GESHI_AFTER => ''
 405              ),
 406          // ASCII�codes
 407          6 => '(\$[a-zA-Z0-9_])',
 408          // Records
 409          7 => array(
 410              GESHI_SEARCH => '(#)([a-z][a-zA-Z0-9_]*)(\.|\{)',
 411              GESHI_REPLACE => '\2',
 412              GESHI_MODIFIERS => '',
 413              GESHI_BEFORE => '\1',
 414              GESHI_AFTER => '\3'
 415              ),
 416          // Numbers with a different radix
 417          8 => '(?<=>)(#[a-zA-Z0-9]*)'
 418          ),
 419      'STRICT_MODE_APPLIES' => GESHI_NEVER,
 420      'SCRIPT_DELIMITERS' => array(),
 421      'HIGHLIGHT_STRICT_BLOCK' => array(),
 422      'TAB_WIDTH' => 4,
 423      'PARSER_CONTROL' => array(
 424          'KEYWORDS' => array(
 425              3 => array(
 426                  'DISALLOWED_BEFORE' => '(?<![\w])',
 427                  'DISALLOWED_AFTER' => ''//'(?=\s*\()'
 428                  ),
 429              5 => array(
 430                  'DISALLOWED_BEFORE' => '(?<=\'|)',
 431                  'DISALLOWED_AFTER' => '(?=(\'|):)'
 432                  ),
 433              6 => array(
 434                  'DISALLOWED_BEFORE' => '(?<=\/|-)',
 435                  'DISALLOWED_AFTER' => ''
 436                  )
 437              )
 438          )
 439  );