3 * c.php |
3 * c.php |
4 * ----- |
4 * ----- |
5 * Author: Nigel McNie (nigel@geshi.org) |
5 * Author: Nigel McNie (nigel@geshi.org) |
6 * Contributors: |
6 * Contributors: |
7 * - Jack Lloyd (lloyd@randombit.net) |
7 * - Jack Lloyd (lloyd@randombit.net) |
|
8 * - Michael Mol (mikemol@gmail.com) |
8 * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) |
9 * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) |
9 * Release Version: 1.0.8.2 |
10 * Release Version: 1.0.8.4 |
10 * Date Started: 2004/06/04 |
11 * Date Started: 2004/06/04 |
11 * |
12 * |
12 * C language file for GeSHi. |
13 * C language file for GeSHi. |
13 * |
14 * |
14 * CHANGES |
15 * CHANGES |
15 * ------- |
16 * ------- |
|
17 * 2009/01/22 (1.0.8.3) |
|
18 * - Made keywords case-sensitive. |
16 * 2008/05/23 (1.0.7.22) |
19 * 2008/05/23 (1.0.7.22) |
17 * - Added description of extra language features (SF#1970248) |
20 * - Added description of extra language features (SF#1970248) |
18 * 2004/XX/XX (1.0.4) |
21 * 2004/XX/XX (1.0.4) |
19 * - Added a couple of new keywords (Jack Lloyd) |
22 * - Added a couple of new keywords (Jack Lloyd) |
20 * 2004/11/27 (1.0.3) |
23 * 2004/11/27 (1.0.3) |
24 * 2004/08/05 (1.0.1) |
27 * 2004/08/05 (1.0.1) |
25 * - Added support for symbols |
28 * - Added support for symbols |
26 * 2004/07/14 (1.0.0) |
29 * 2004/07/14 (1.0.0) |
27 * - First Release |
30 * - First Release |
28 * |
31 * |
29 * TODO (updated 2004/11/27) |
32 * TODO (updated 2009/02/08) |
30 * ------------------------- |
33 * ------------------------- |
31 * - Get a list of inbuilt functions to add (and explore C more |
34 * - Get a list of inbuilt functions to add (and explore C more |
32 * to complete this rather bare language file |
35 * to complete this rather bare language file |
33 * |
36 * |
34 ************************************************************************************* |
37 ************************************************************************************* |
51 * |
54 * |
52 ************************************************************************************/ |
55 ************************************************************************************/ |
53 |
56 |
54 $language_data = array ( |
57 $language_data = array ( |
55 'LANG_NAME' => 'C', |
58 'LANG_NAME' => 'C', |
56 'COMMENT_SINGLE' => array(2 => '#'), |
59 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), |
57 'COMMENT_MULTI' => array('/*' => '*/'), |
60 'COMMENT_MULTI' => array('/*' => '*/'), |
58 //Multiline-continued single-line comments |
61 'COMMENT_REGEXP' => array( |
59 'COMMENT_REGEXP' => array(1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m'), |
62 //Multiline-continued single-line comments |
|
63 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', |
|
64 //Multiline-continued preprocessor define |
|
65 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m' |
|
66 ), |
60 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, |
67 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, |
61 'QUOTEMARKS' => array("'", '"'), |
68 'QUOTEMARKS' => array("'", '"'), |
62 'ESCAPE_CHAR' => '', |
69 'ESCAPE_CHAR' => '', |
63 'ESCAPE_REGEXP' => array( |
70 'ESCAPE_REGEXP' => array( |
64 //Simple Single Char Escapes |
71 //Simple Single Char Escapes |
65 1 => "#\\\\[abfnrtv\\'\"?\n]#i", |
72 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i", |
66 //Hexadecimal Char Specs |
73 //Hexadecimal Char Specs |
67 2 => "#\\\\x[\da-fA-F]{2}#", |
74 2 => "#\\\\x[\da-fA-F]{2}#", |
68 //Hexadecimal Char Specs |
75 //Hexadecimal Char Specs |
69 3 => "#\\\\u[\da-fA-F]{4}#", |
76 3 => "#\\\\u[\da-fA-F]{4}#", |
70 //Hexadecimal Char Specs |
77 //Hexadecimal Char Specs |
101 '?', ':', |
108 '?', ':', |
102 ';', ',' |
109 ';', ',' |
103 ), |
110 ), |
104 'CASE_SENSITIVE' => array( |
111 'CASE_SENSITIVE' => array( |
105 GESHI_COMMENTS => false, |
112 GESHI_COMMENTS => false, |
106 1 => false, |
113 1 => true, |
107 2 => false, |
114 2 => true, |
108 3 => false, |
115 3 => true, |
109 4 => false, |
116 4 => true, |
110 ), |
117 ), |
111 'STYLES' => array( |
118 'STYLES' => array( |
112 'KEYWORDS' => array( |
119 'KEYWORDS' => array( |
113 1 => 'color: #b1b100;', |
120 1 => 'color: #b1b100;', |
114 2 => 'color: #000000; font-weight: bold;', |
121 2 => 'color: #000000; font-weight: bold;', |