<?php

$language_data = array(

    'LANG_NAME'      => 'IOS',
    'COMMENT_SINGLE' => array(1 => '!'),
    'CASE_KEYWORDS'  => GESHI_CAPS_LOWER,
    'OOLANG'         => false,
    'NUMBERS'        => GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX,
    'KEYWORDS'       => array(
        1 => array(
            'no',
            'shutdown',
        ),
        // 2 => array(
        // 'router', 'interface', 'service', 'config-register', 'upgrade', 'version', 'hostname', 'boot-start-marker', 'boot', 'boot-end-marker', 'enable', 'aaa', 'clock', 'ip',
        // 'logging', 'access-list', 'route-map', 'snmp-server', 'mpls', 'speed', 'media-type', 'negotiation', 'timestamps', 'prefix-list', 'network', 'mask', 'unsuppress-map',
        // 'neighbor', 'remote-as', 'ebgp-multihop', 'update-source', 'description', 'peer-group', 'policy-map', 'class-map', 'class', 'match', 'access-group', 'bandwidth', 'username',
        // 'password', 'send-community', 'next-hop-self', 'route-reflector-client', 'ldp', 'discovery', 'advertise-labels', 'label', 'protocol', 'login', 'debug', 'log', 'duplex', 'router-id',
        // 'authentication', 'mode', 'maximum-paths', 'address-family', 'set', 'local-preference', 'community', 'trap-source', 'location', 'host', 'tacacs-server', 'session-id',
        // 'flow-export', 'destination', 'source', 'in', 'out', 'permit', 'deny', 'control-plane', 'line', 'con' ,'aux', 'vty', 'access-class', 'ntp', 'server', 'end', 'source-interface',
        // 'key', 'chain', 'key-string', 'redundancy', 'match-any', 'queue-limit', 'encapsulation', 'pvc', 'vbr-nrt', 'address', 'bundle-enable', 'atm', 'sonet', 'clns', 'route-cache',
        // 'default-information', 'redistribute', 'log-adjacency-changes', 'metric', 'spf-interval', 'prc-interval', 'lsp-refresh-interval', 'max-lsp-lifetime', 'set-overload-bit',
        // 'on-startup', 'wait-for-bgp', 'system', 'flash', 'timezone', 'subnet-zero', 'cef', 'flow-cache', 'timeout', 'active', 'domain', 'lookup', 'dhcp', 'use', 'vrf', 'hello', 'interval',
        // 'priority', 'ilmi-keepalive', 'buffered', 'debugging', 'fpd', 'secret', 'accounting', 'exec', 'group', 'local', 'recurring', 'source-route', 'call', 'rsvp-sync', 'scripting',
        // 'mtu', 'passive-interface', 'area' , 'distribute-list', 'metric-style', 'is-type', 'originate', 'activate', 'both', 'auto-summary', 'synchronization', 'aggregate-address', 'le', 'ge',
        // 'bgp-community', 'route', 'exit-address-family', 'standard', 'file', 'verify', 'domain-name', 'domain-lookup', 'route-target', 'export', 'import', 'map', 'rd', 'mfib', 'vtp', 'mls',
        // 'hardware-switching', 'replication-mode', 'ingress', 'flow', 'error', 'action', 'slb', 'purge', 'share-global', 'routing', 'traffic-eng', 'tunnels', 'propagate-ttl', 'switchport', 'vlan',
        // 'portfast', 'counters', 'max', 'age', 'ethernet', 'evc', 'uni', 'count', 'oam', 'lmi', 'gmt', 'netflow', 'pseudowire-class', 'spanning-tree', 'name', 'circuit-type'
        // ),
        // 3 => array(
        // 'isis', 'ospf', 'eigrp', 'rip', 'igrp', 'bgp', 'ipv4', 'unicast', 'multicast', 'ipv6', 'connected', 'static', 'subnets', 'tcl'
        // ),
        // 4 => array(
        // 'point-to-point', 'aal5snap', 'rj45', 'auto', 'full', 'half', 'precedence', 'percent', 'datetime', 'msec', 'locatime', 'summer-time', 'md5', 'wait-for-bgp', 'wide',
        // 'level-1', 'level-2', 'log-neighbor-changes', 'directed-request', 'password-encryption', 'common', 'origin-as', 'bgp-nexthop', 'random-detect', 'localtime', 'sso', 'stm-1',
        // 'dot1q', 'isl', 'new-model', 'always', 'summary-only', 'freeze', 'global', 'forwarded', 'access', 'trunk', 'edge', 'transparent'
        // ),
    ),

    'REGEXPS' => array(
        1  => array(
            GESHI_SEARCH  => '(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})',
            GESHI_REPLACE => '\\1',
            GESHI_BEFORE  => '',
        ),
        2  => array(
            GESHI_SEARCH  => '(255\.\d{1,3}\.\d{1,3}\.\d{1,3})',
            GESHI_REPLACE => '\\1',
            GESHI_BEFORE  => '',
        ),
        3  => array(
            GESHI_SEARCH  => '(source|interface|update-source|router-id) ([A-Za-z0-9\/\:\-\.]+)',
            GESHI_REPLACE => '\\2',
            GESHI_BEFORE  => '\\1 ',
        ),
        4  => array(
            GESHI_SEARCH  => '(neighbor) ([\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}]+|[a-zA-Z0-9\-\_]+)',
            GESHI_REPLACE => '\\2',
            GESHI_BEFORE  => '\\1 ',
        ),
        5  => array(
            GESHI_SEARCH  => '(distribute-map|access-group|policy-map|class-map\ match-any|ip\ access-list\ extended|match\ community|community-list\ standard|community-list\ expanded|ip\ access-list\ standard|router\ bgp|remote-as|key\ chain|service-policy\ input|service-policy\ output|class|login\ authentication|authentication\ key-chain|username|import\ map|export\ map|domain-name|hostname|route-map|access-class|ip\ vrf\ forwarding|ip\ vrf|vtp\ domain|name|pseudowire-class|pw-class|prefix-list|vrf) ([A-Za-z0-9\-\_\.]+)',
            GESHI_REPLACE => '\\2',
            GESHI_BEFORE  => '\\1 ',
        ),
        6  => array(
            GESHI_SEARCH  => '(password|key-string|key) ([0-9]) (.+)',
            GESHI_REPLACE => '\\2 \\3',
            GESHI_BEFORE  => '\\1 ',
        ),
        7  => array(
            GESHI_SEARCH  => '(enable) ([a-z]+) ([0-9]) (.+)',
            GESHI_REPLACE => '\\3 \\4',
            GESHI_BEFORE  => '\\1 \\2 ',
        ),
        8  => array(
            GESHI_SEARCH  => '(description|location|contact|remark) (.+)',
            GESHI_REPLACE => '\\2',
            GESHI_BEFORE  => '\\1 ',
        ),
        9  => array(
            GESHI_SEARCH  => '([0-9\.\_\*]+\:[0-9\.\_\*]+)',
            GESHI_REPLACE => '\\1',
        ),
        10 => array(
            GESHI_SEARCH  => '(boot) ([a-z]+) (.+)',
            GESHI_REPLACE => '\\3',
            GESHI_BEFORE  => '\\1 \\2 ',
        ),
        11 => array(
            GESHI_SEARCH  => '(net) ([0-9a-z\.]+)',
            GESHI_REPLACE => '\\2',
            GESHI_BEFORE  => '\\1 ',
        ),
        12 => array(
            GESHI_SEARCH  => '(access-list|RO|RW) ([0-9]+)',
            GESHI_REPLACE => '\\2',
            GESHI_BEFORE  => '\\1 ',
        ),
        13 => array(
            GESHI_SEARCH  => '(vlan) ([0-9]+)',
            GESHI_REPLACE => '\\2',
            GESHI_BEFORE  => '\\1 ',
        ),
        14 => array(
            GESHI_SEARCH  => '(encapsulation|speed|duplex|mtu|metric|media-type|negotiation|transport\ input|bgp-community|set\ as-path\ prepend|maximum-prefix|version|local-preference|continue|redistribute|cluster-id|vtp\ mode|label\ protocol|spanning-tree\ mode) (.+)',
            GESHI_REPLACE => '\\2',
            GESHI_BEFORE  => '\\1 ',
        ),

    ),

    'STYLES' => array(
        'REGEXPS' => array(
            0  => 'color: #ff0000;',
            1  => 'color: #0000cc;',
            // x.x.x.x
            2  => 'color: #000099; font-style: italic',
            // 255.x.x.x
            3  => 'color: #000000; font-weight: bold; font-style: italic;',
            // interface xxx
            4  => 'color: #ff0000;',
            // neighbor x.x.x.x
            5  => 'color: #000099;',
            // variable names
            6  => 'color: #cc0000;',
            7  => 'color: #cc0000;',
            // passwords
            8  => 'color: #555555;',
            // description
            9  => 'color: #990099;',
            // communities
            10 => 'color: #cc0000; font-style: italic;',
            // no/shut
            11 => 'color: #000099;',
            // net numbers
            12 => 'color: #000099;',
            // acls
            13 => 'color: #000099;',
            // acls
            14 => 'color: #990099;',
            // warnings
        ),
        'KEYWORDS' => array(
            1 => 'color: #cc0000; font-weight: bold;',
            // no/shut
            2 => 'color: #000000;',
            // commands
            3 => 'color: #000000; font-weight: bold;',
            // proto/service
            4 => 'color: #000000;',
            // options
            5 => 'color: #ff0000;',
        ),
        'COMMENTS'    => array(1 => 'color: #808080; font-style: italic;'),
        'ESCAPE_CHAR' => array(0 => 'color: #000099; font-weight: bold;'),
        'BRACKETS'    => array(0 => 'color: #66cc66;'),
        'STRINGS'     => array(0 => 'color: #ff0000;'),
        'NUMBERS'     => array(0 => 'color: #cc0000;'),
        'METHODS'     => array(0 => 'color: #006600;'),
        'SYMBOLS'     => array(0 => 'color: #66cc66;'),
        'SCRIPT'      => array(
            0 => '',
            1 => '',
            2 => '',
            3 => '',
        ),

    ),


);
