<?php
/***************************************************************
* c.php
* -----
* Author: User:Quuxplusone
* Copyright: Public domain
* Date Started: 2007/05/24
*
* C language file for GeSHi.
*/
$language_data = array (
'LANG_NAME' => 'C',
'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
'COMMENT_MULTI' => array('/*' => '*/'),
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
'QUOTEMARKS' => array(1 => "'", 2 => '"'),
'ESCAPE_CHAR' => '\\',
'KEYWORDS' => array(
/* From clause 6.4.1#1 of the Standard. */
1 => array( /* Control structures. */
'if', 'else', 'while', 'do', 'for', 'continue', 'break',
'switch', 'case', 'goto', 'return'
),
2 => array( /* Types and type modifiers. */
'void', 'int', 'short', 'long', 'char',
'float', 'double', 'unsigned', 'signed',
'auto', 'register', 'static', 'volatile', 'const',
'extern', 'restrict', 'inline',
'_Bool', '_Complex', '_Imaginary',
),
3 => array( /* "types" actually defined in standard headers */
'wchar_t', 'size_t', 'ptrdiff_t',
'bool', 'complex', 'imaginary'
),
4 => array( /* Type-constructors, sort of. */
'struct', 'union', 'enum'
),
5 => array( /* Unary operators. */
'sizeof', '_Pragma'
),
6 => array( /* typedef: type modifier, or keyword? You decide! */
'typedef'
),
7 => array( /* Unary "operator" macro defined in <stddef.h> */
'offsetof'
),
8 => array( /* NULL */
'NULL'
),
9 => array( /* Standard library names: <stdio.h> */
'FILE', 'fpos_t', '_IOFBF', '_IOLBF', '_IONBF',
'BUFSIZ', 'EOF', 'FOPEN_MAX', 'FILENAME_MAX',
'L_tmpnam', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET',
'TMP_MAX', 'stderr', 'stdin', 'stdout',
'remove', 'rename', 'tmpfile', 'tmpnam',
'fclose', 'fflush', 'fopen', 'freopen',
'setbuf', 'setvbuf', 'fprintf', 'fscanf',
'printf', 'scanf', 'snprintf', 'sprintf',
'sscanf', 'vfprintf', 'vfscanf', 'vprintf',
'vscanf', 'vsnprintf', 'vsprintf', 'vsscanf',
'fgetc', 'fgets', 'fputc', 'getc', 'getchar',
'gets', 'putc', 'putchar', 'puts', 'ungetc',
'fread', 'fwrite', 'fgetpos', 'fseek', 'fsetpos',
'ftell', 'rewind', 'clearerr', 'feof', 'ferror',
'perror'
),
10 => array( /* Standard library names: <stdlib.h> */
'div_t', 'ldiv_t', 'lldiv_t', 'size_t', 'wchar_t',
'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX',
'MB_CUR_MAX', 'atof', 'atol', 'atoi', 'atoll',
'strtod', 'strtof', 'strtold', 'strtol', 'strtoll',
'strtoul', 'strtoull', 'rand', 'srand', 'calloc',
'free', 'malloc', 'realloc', 'abort', 'atexit',
'exit', 'getenv', 'system', 'bsearch', 'qsort',
'abs', 'labs', 'llabs', 'div', 'ldiv', 'lldiv',
'mblen', 'mbtowc', 'wctomb', 'mbstowcs', 'wcstombs'
),
11 => array( /* Standard library names: <string.h> */
'memcpy', 'memmove', 'strcpy', 'strncpy', 'strcat',
'strncat', 'memcmp', 'strcmp', 'strcoll', 'strncmp',
'strxfrm', 'memchr', 'strchr', 'strcspn', 'strpbrk',
'strrchr', 'strspn', 'strstr', 'strtok', 'memset',
'strerror', 'strlen'
),
/* Skipped macros in <tgmath.h> */
12 => array( /* Standard library names: <time.h> */
'CLOCKS_PER_SEC', 'clock_t', 'time_t', 'tm',
'clock', 'difftime', 'mktime', 'time', 'asctime',
'ctime', 'gmtime', 'localtime', 'strftime'
),
13 => array( /* Standard library names: <wchar.h> */
'mbstate_t', 'wint_t', 'WCHAR_MAX', 'WCHAR_MIN',
'WEOF', 'fwprintf', 'fwscanf', 'swprintf',
'swscanf', 'vfwprintf', 'vfwscanf', 'vswprintf',
'vswscanf', 'vwprintf', 'vwscanf', 'wprintf',
'wscanf', 'fgetwc', 'fgetws', 'fputwc', 'fputws',
'fwide', 'getwc', 'getwchar', 'putwc', 'putwchar',
'ungetwc', 'wcstod', 'wcstof', 'wcstold', 'wcstol',
'wcstoll', 'wcstoul', 'wcstoull', 'wcscpy', 'wcsncpy',
'wcscat', 'wcsncat', 'wcscmp', 'wcscoll', 'wcsncmp',
'wcsxfrm', 'wcschr', 'wcscspn', 'wcslen', 'wcspbrk',
'wcsrchr', 'wcsspn', 'wcsstr', 'wcstok', 'wmemchr',
'wmemcmp', 'wmemcpy', 'wmemmove', 'wmemset', 'wcsftime',
'btowc', 'wctob', 'mbsinit', 'mbrlen', 'mbrtowc',
'wcrtomb', 'mbsrtowcs', 'wcsrtombs'
),
14 => array( /* Standard library names: <wctype.h> */
'wctrans_t', 'wctype_t', 'iswalnum', 'iswalpha',
'iswcntrl', 'iswdigit', 'iswgraph', 'iswlower',
'iswprint', 'iswpunct', 'iswspace', 'iswupper',
'iswxdigit', 'iswctype', 'wctype', 'towlower',
'towupper', 'towctrans', 'wctrans'
),
15 => array( /* Standard library names: <ctype.h> */
'isalnum', 'isalpha',
'iscntrl', 'isdigit', 'isgraph', 'islower',
'isprint', 'ispunct', 'isspace', 'isupper',
'isxdigit', 'tolower', 'toupper'
),
16 => array( /* __LINE__, a decimal constant */
'__LINE__', '__STDC__', '__STDC_VERSION__'
'__STDC_ISO_10646__', '__STDC_IEC_559__',
'__STDC_IEC_559_COMPLEX__'
),
17 => array( /* __FILE__, a string constant */
'__FILE__', '__DATE__', '__TIME__'
),
18 => array( /* Standard library names: <assert.h> */
'NDEBUG', 'assert'
),
19 => array( /* <stdbool.h> */
'true', 'false' /* 'bool' defined above */
),
20 => array( /* <complex.h> */
'I' /* 'complex' and 'imaginary' defined above */
),
21 => array( /* Standard library names: <complex.h> */
'CX_LIMITED_RANGE', 'cacos', 'cacosf', 'cacosl',
'casin', 'casinf', 'casinl', 'catan', 'catanf', 'catanl',
'ccos', 'ccosf', 'ccosl', 'csin', 'csinf', 'csinl',
'ctan', 'ctanf', 'ctanl', 'cacosh', 'cacoshf', 'cacoshl',
'casinh', 'casinhf', 'casinhl', 'catanh', 'catanhf',
'catanhl', 'ccosh', 'ccoshf', 'ccoshl', 'csinh',
'csinhf', 'csinhl', 'ctanh', 'ctanhf', 'ctanhl',
'cexp', 'cexpf', 'cexpl', 'clog', 'clogf', 'clogl',
'cabs', 'cabsf', 'cabsl', 'cpow', 'cpowf', 'cpowl',
'csqrt', 'csqrtf', 'csqrtl', 'carg', 'cargf', 'cargl',
'cimag', 'cimagf', 'cimagl', 'conj', 'conjf', 'conjl',
'cproj', 'cprojf', 'cprojl', 'creal', 'crealf', 'creall'
),
22 => array( /* Standard library names: <errno.h> */
'EDOM', 'EILSEQ', 'ERANGE', 'errno'
),
23 => array( /* Standard library names: <fenv.h> */
'fenv_t', 'fexcept_t', 'FE_DIVBYZERO', 'FE_INEXACT',
'FE_INVALID', 'FE_OVERFLOW', 'FE_UNDERFLOW',
'FE_ALLEXCEPT', 'FE_DOWNWARD', 'FE_TONEAREST',
'FE_TOWARDZERO', 'FE_UPWARD', 'FE_DFL_ENV',
'FENV_ACCESS', 'feclearexcept', 'fegetexceptflag',
'feraiseexcept', 'fesetexceptflag', 'fetestexcept',
'fegetround', 'fesetround', 'fegetenv', 'feholdexcept',
'fesetenv', 'feupdateenv'
),
/* Skipped <float.h>, PRI* macros from <inttypes.h> */
24 => array( /* Standard library names: <inttypes.h> */
'strtoimax', 'strtoumax', 'wcstoimax', 'wcstoumax',
'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t'
),
25 => array( /* Alternative spellings: <iso646.h> */
'and', 'and_eq', 'bitand', 'bitor', 'compl', 'not',
'not_eq', 'or', 'or_eq', 'xor', 'xor_eq'
),
/* Skipped <limits.h> */
26 => array( /* Standard library names: <locale.h> */
'lconv', 'LC_ALL', 'LC_COLLATE', 'LC_CTYPE',
'LC_MONETARY', 'LC_NUMERIC', 'LC_TIME',
'setlocale', 'localeconv'
),
27 => array( /* Standard library names: <math.h> */
'float_t', 'double_t', 'HUGE_VAL', 'HUGE_VALF',
'HUGE_VALL', 'INFINITY', 'NAN', 'FP_INFINITE',
'FP_NAN', 'FP_NORMAL', 'FP_SUBNORMAL', 'FP_ZERO',
'FP_FAST_FMA', 'FP_FAST_FMAF', 'FP_FAST_FMAL',
'FP_ILOGB0', 'FP_ILOGBNAN', 'FP_CONTRACT', 'fpclassify',
'isfinite', 'isinf', 'isnan', 'isnormal', 'signbit',
'acos', 'acosf', 'acosl', 'asin', 'asinf', 'asinl',
'atan', 'atanf', 'atanl', 'atan2', 'atan2f', 'atan2l',
'cos', 'cosf', 'cosl', 'sin', 'sinf', 'sinl',
'tan', 'tanf', 'tanl', 'acosh', 'acoshf', 'acoshl',
'asinh', 'asinhf', 'asinhl', 'atanh', 'atanhf', 'atanhl',
'cosh', 'coshf', 'coshl', 'sinh', 'sinhf', 'sinhl',
'tanh', 'tanhf', 'tanhl', 'exp', 'expf', 'expl',
'exp2', 'exp2f', 'exp2l', 'expm1', 'expm1f', 'expm1l',
'frexp', 'frexpf', 'frexpl', 'ilogb', 'ilogbf', 'ilogbl',
'ldexp', 'ldexpf', 'ldexpl', 'log', 'logf', 'logl',
'log10', 'log10f', 'log10l', 'log1p', 'log1pf', 'log1pl',
'log2', 'log2f', 'log2l', 'logb', 'logbf', 'logbl',
'modf', 'modff', 'modfl', 'scalbn', 'scalbnf', 'scalbnl',
'scalbln', 'scalblnf', 'scalblnl', 'cbrt', 'cbrtf', 'cbrtl',
'fabs', 'fabsf', 'fabsl', 'hypot', 'hypotf', 'hypotl',
'pow', 'powf', 'powl', 'sqrt', 'sqrtf', 'sqrtl',
'erf', 'erff', 'erfl', 'erfc', 'erfcf', 'erfcl',
'lgamma', 'lgammaf', 'lgammal', 'tgamma', 'tgammaf',
'tgammal', 'ceil', 'ceilf', 'ceill', 'floor', 'floorf',
'floorl', 'nearbyint', 'nearbyintf', 'nearbyintl',
'rint', 'rintf', 'rintl', 'lrint', 'lrintf', 'lrintl',
'llrint', 'llrintf', 'llrintl', 'lround', 'lroundf',
'lroundl', 'llround', 'llroundf', 'llroundl', 'trunc',
'truncf', 'truncl', 'fmod', 'fmodf', 'fmodl', 'remainder',
'remainderf', 'remainderl', 'remquo', 'remquof', 'remquol',
'copysign', 'copysignf', 'copysignl', 'nan', 'nanf', 'nanl',
'nextafter', 'nextafterf', 'nextafterl', 'nexttoward',
'nexttowardf', 'nexttowardl', 'fdim', 'fdimf', 'fdiml',
'fmax', 'fmaxf', 'fmaxl', 'fmin', 'fminf', 'fminl',
'fma', 'fmaf', 'fmal', 'isgreater', 'isgreaterequal',
'isless', 'islessequal', 'islessgreater', 'isunordered'
),
28 => array( /* Standard library names: <setjmp.h> */
'jmp_buf', 'setjmp', 'longjmp'
),
29 => array( /* Standard library names: <signal.h> */
'sig_atomic_t', 'SIG_DFL', 'SIG_ERR', 'SIG_IGN',
'SIGABRT', 'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV',
'SIGTERM', 'signal', 'raise'
),
30 => array( /* Standard library names: <stdarg.h> */
'va_list', 'va_arg', 'va_copy', 'va_end', 'va_start'
)
/* Skipped <stdint.h> */
),
'SYMBOLS' => array(
'(', ')', '{', '}', '[', ']',
'==', '!=', '<=', '>=',
'+=', '-=', '*=', '/=', '%=', '&=', '|=', '^=', '<<=', '>>=',
'+', '-', '*', '/', '%', '&', '|', '^', '<<', '>>',
'<', '>', '=', '!', '?', ':'
),
'CASE_SENSITIVE' => array_fill(0, 31/*==KEYWORDS+1*/, true),
'STYLES' => array(
'KEYWORDS' => array_fill(1,30,),
'COMMENTS' => array(
1 => 'color: #008000;', /* // comments */
2 => 'color: #006699;', /* preprocessor directives */
'MULTI' => 'color: #008000;'),
'ESCAPE_CHAR' => array(
0 =>
),
'STRINGS' => array(
0 => 'color: #660099;'
1 => 'color: #AA0000;'
),
'NUMBERS' => array(
0 => 'color: #AA0000;'
),
'SYMBOLS' => array(
0 =>
)
),
'STRICT_MODE_APPLIES' => GESHI_NEVER,
'SCRIPT_DELIMITERS' => array(
),
'HIGHLIGHT_STRICT_BLOCK' => array(
)
);
?>