PastonBin/includes/geshi/rust.php

236 lines
9.3 KiB
PHP

<?php
/*************************************************************************************
* rust.php
* --------
* Author: Edward Hart (edward.dan.hart@gmail.com)
* Copyright: (c) 2013 Edward Hart
* Release Version: 1.0.8.12
* Date Started: 2013/10/20
*
* Rust language file for GeSHi.
*
* CHANGES
* -------
* 2014/03/18
* - Added support for raw strings
* - Color symbols
* 2013/10/20
* - First Release
*
* TODO (updated 2013/10/20)
* -------------------------
*
*************************************************************************************
*
* This file is part of GeSHi.
*
* GeSHi is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* GeSHi is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GeSHi; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
************************************************************************************/
$language_data = array(
'LANG_NAME' => 'Rust',
'COMMENT_SINGLE' => array('//'),
'COMMENT_MULTI' => array('/*' => '*/'),
'COMMENT_REGEXP' => array(
// Raw strings
1 => '/\\br(\\#*)".*?"\\1/'
),
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
'QUOTEMARKS' => array("'", '"'),
'ESCAPE_CHAR' => '',
'ESCAPE_REGEXP' => array(
//Simple Single Char Escapes
1 => "#\\\\[\\\\nrt\'\"?\n]#i",
//Hexadecimal Char Specs
2 => "#\\\\x[\da-fA-F]{2}#",
//Hexadecimal Char Specs
3 => "#\\\\u[\da-fA-F]{4}#",
//Hexadecimal Char Specs
4 => "#\\\\U[\da-fA-F]{8}#",
//Octal Char Specs
5 => "#\\\\[0-7]{1,3}#"
),
'NUMBERS' =>
GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
'KEYWORDS' => array(
// Keywords
1 => array(
'alt', 'as', 'assert', 'break', 'const', 'continue', 'copy', 'do',
'else', 'enum', 'extern', 'fn', 'for', 'if',
'impl', 'in', 'let', 'log', 'loop', 'match', 'mod', 'mut', 'of',
'priv', 'pub', 'ref', 'return', 'self', 'static', 'struct', 'super',
'to', 'trait', 'type', 'unsafe', 'use', 'with', 'while'
),
// Boolean values
2 => array( 'true', 'false' ),
// Structs and built-in types
3 => array(
'u8', 'i8',
'u16', 'i16',
'u32', 'i32',
'u64', 'i64',
'f32', 'f64',
'int', 'uint',
'float',
'bool',
'str', 'char',
'Argument', 'AsyncWatcher', 'BorrowRecord', 'BufReader',
'BufWriter', 'BufferedReader', 'BufferedStream', 'BufferedWriter',
'ByRef', 'ByteIterator', 'CFile', 'CString', 'CStringIterator',
'Cell', 'Chain', 'Chan', 'ChanOne', 'CharIterator',
'CharOffsetIterator', 'CharRange', 'CharSplitIterator',
'CharSplitNIterator', 'ChunkIter', 'Condition', 'ConnectRequest',
'Coroutine', 'Counter', 'CrateMap', 'Cycle', 'DeflateWriter',
'Display', 'ElementSwaps', 'Enumerate', 'Exp', 'Exp1', 'FileDesc',
'FileReader', 'FileStat', 'FileStream', 'FileWriter', 'Filter',
'FilterMap', 'FlatMap', 'FormatSpec', 'Formatter', 'FsRequest',
'Fuse', 'GarbageCollector', 'GetAddrInfoRequest', 'Handle',
'HashMap', 'HashMapIterator', 'HashMapMoveIterator',
'HashMapMutIterator', 'HashSet', 'HashSetIterator',
'HashSetMoveIterator', 'Hint', 'IdleWatcher', 'InflateReader',
'Info', 'Inspect', 'Invert', 'IoError', 'Isaac64Rng', 'IsaacRng',
'LineBufferedWriter', 'Listener', 'LocalHeap', 'LocalStorage',
'Loop', 'Map', 'MatchesIndexIterator', 'MemReader', 'MemWriter',
'MemoryMap', 'ModEntry', 'MoveIterator', 'MovePtrAdaptor',
'MoveRevIterator', 'NoOpRunnable', 'NonCopyable', 'Normal',
'OSRng', 'OptionIterator', 'Parser', 'Path', 'Peekable',
'Permutations', 'Pipe', 'PipeStream', 'PluralArm', 'Port',
'PortOne', 'Process', 'ProcessConfig', 'ProcessOptions',
'ProcessOutput', 'RC', 'RSplitIterator', 'RandSample', 'Range',
'RangeInclusive', 'RangeStep', 'RangeStepInclusive', 'Rc', 'RcMut',
'ReaderRng', 'Repeat', 'ReprVisitor', 'RequestData',
'ReseedWithDefault', 'ReseedingRng', 'Scan', 'SchedOpts',
'SelectArm', 'SharedChan', 'SharedPort', 'SignalWatcher',
'SipState', 'Skip', 'SkipWhile', 'SocketAddr', 'SplitIterator',
'StackPool', 'StackSegment', 'StandardNormal', 'StdErrLogger',
'StdIn', 'StdOut', 'StdReader', 'StdRng', 'StdWriter',
'StrSplitIterator', 'StreamWatcher', 'TTY', 'Take', 'TakeWhile',
'Task', 'TaskBuilder', 'TaskOpts', 'TcpAcceptor', 'TcpListener',
'TcpStream', 'TcpWatcher', 'Timer', 'TimerWatcher', 'TrieMap',
'TrieMapIterator', 'TrieSet', 'TrieSetIterator', 'Tube',
'UdpSendRequest', 'UdpSocket', 'UdpStream', 'UdpWatcher', 'Unfold',
'UnixAcceptor', 'UnixListener', 'UnixStream', 'Unwinder',
'UvAddrInfo', 'UvError', 'UvEventLoop', 'UvFileStream',
'UvIoFactory', 'UvPausibleIdleCallback', 'UvPipeStream',
'UvProcess', 'UvRemoteCallback', 'UvSignal', 'UvTTY',
'UvTcpAcceptor', 'UvTcpListener', 'UvTcpStream', 'UvTimer',
'UvUdpSocket', 'UvUnboundPipe', 'UvUnixAcceptor', 'UvUnixListener',
'VecIterator', 'VecMutIterator', 'Weighted', 'WeightedChoice',
'WindowIter', 'WriteRequest', 'XorShiftRng', 'Zip', 'addrinfo',
'uv_buf_t', 'uv_err_data', 'uv_process_options_t', 'uv_stat_t',
'uv_stdio_container_t', 'uv_timespec_t'
),
// Enums
4 => array(
'Alignment', 'Count', 'Either', 'ExponentFormat', 'FPCategory',
'FileAccess', 'FileMode', 'Flag', 'IoErrorKind', 'IpAddr',
'KeyValue', 'MapError', 'MapOption', 'MemoryMapKind', 'Method',
'NullByteResolution', 'Option', 'Ordering', 'PathPrefix', 'Piece',
'PluralKeyword', 'Position', 'Protocol', 'Result', 'SchedHome',
'SchedMode', 'SeekStyle', 'SendStr', 'SignFormat',
'SignificantDigits', 'Signum', 'SocketType', 'StdioContainer',
'TaskResult', 'TaskType', 'UvSocketAddr', 'Void', 'uv_handle_type',
'uv_membership', 'uv_req_type'
)
),
'SYMBOLS' => array(
'(', ')', '{', '}', '[', ']',
'+', '-', '*', '/', '%',
'&', '|', '^', '!', '<', '>', '~', '@',
':',
';', ',',
'='
),
'CASE_SENSITIVE' => array(
GESHI_COMMENTS => false,
1 => true,
2 => true,
3 => true,
4 => true
),
'STYLES' => array(
'KEYWORDS' => array(
1 => 'color: #708;',
2 => 'color: #219;',
3 => 'color: #05a;',
4 => 'color: #800;'
),
'COMMENTS' => array(
0 => 'color: #a50; font-style: italic;',
1 => 'color: #a11;',
'MULTI' => 'color: #a50; font-style: italic;'
),
'ESCAPE_CHAR' => array(
0 => 'color: #000099; font-weight: bold;',
1 => 'color: #000099; font-weight: bold;',
2 => 'color: #660099; font-weight: bold;',
3 => 'color: #660099; font-weight: bold;',
4 => 'color: #660099; font-weight: bold;',
5 => 'color: #006699; font-weight: bold;',
'HARD' => ''
),
'STRINGS' => array(
0 => 'color: #a11;'
),
'NUMBERS' => array(
0 => 'color: #0000dd;',
GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
),
'BRACKETS' => array(''),
'METHODS' => array(
1 => 'color: #164;'
),
'SYMBOLS' => array(
0 => 'color: #339933;'
),
'REGEXPS' => array(
),
'SCRIPT' => array(
)
),
'URLS' => array(
1 => '',
2 => '',
3 => '',
4 => ''
),
'OOLANG' => true,
'OBJECT_SPLITTERS' => array(
1 => '::'
),
'REGEXPS' => array(
),
'STRICT_MODE_APPLIES' => GESHI_NEVER,
'SCRIPT_DELIMITERS' => array(
),
'HIGHLIGHT_STRICT_BLOCK' => array(
),
'TAB_WIDTH' => 4
);