<?php


/**
 * C and C++ keywords/functions
 * Some Qt things here as well.
 */


global $luminous_c_funcs;
global $luminous_c_types;
global $luminous_c_keywords;

$luminous_c_keywords = array(
  'asm', 'auto', 'break', 'case', 'catch', 'class', 'continue', 'const',
  'const_cast', 'connect', 'default', 'delete', 'do', 'dynamic_cast',
  'else', 'explicit', 'extern', 'for', 'for_each', 'friend', 'goto',
  'if', 'inline', 'mutable', 'namespace', 'new', 'operator', 'private',
  'protected', 'public', 'register', 'reinterpret_cast', 'return',
  'static', 'static_cast', 'switch', 'sizeof', 'signed', 
  'template', 'this',
  'throw', 'try', 'typedef', 'typeid', 'typename', 'using', 'unsigned',
  'while',
  'NULL', 'SIGNAL', 'SLOT', 'TRUE', 'FALSE', 'true', 'false');

$luminous_c_types = array(
  'bool', 'char', 'clock_t', 'double', 'div_t', 'enum', 'float', 'fpos_t',
  'int', 'int8', 'int16', 'int32', 'int64', 'int8_t', 'int16_t', 'int32_t',
  'int64_t', 'long', 'ldiv_t', 'short', 'struct', 'size_t', 'ptrdiff_t',
  'time_t', 'union', 'uint', 'uint8', 'uint16', 'uint32', 'uint64', 'uint8_t',
  'uint16_t', 'uint32_t', 'uint64_t', 'void', 'va_list', 'wchar_t',
  // C++ std stuff
  'pair', 'list', 'deque', 'queue', 'priority_queue', 'set', 'stack', 'string',
  'map', 'multiset', 'multimap', 'hash_set', 'hash_multiset', 'hash_map',
  'hash_multimap', 'bitset', 'vector', 'valarray', 'iterator'
  );

// http://en.wikipedia.org/wiki/List_of_C_functions
// inb4 deletionists
$luminous_c_funcs = array(
'assert',
'cabs',
'cacos',
'cacosh',
'carg',
'casin',
'casinh',
'catan',
'catanh',
'ccos',
'ccosh',
'cexp',
'cimag',
'cis',
'clog',
'conj',
'cpow',
'cproj',
'creal',
'csin',
'csinh',
'csqrt',
'ctan',
'ctanh',
'digittoint',
'isalnum',
'isalpha',
'isascii',
'isblank',
'iscntrl',
'isdigit',
'isgraph',
'islower',
'isprint',
'ispunct',
'isspace',
'isupper',
'isxdigit',
'toascii',
'tolower',
'toupper',
'imaxabs',
'imaxdiv',
'strtoimax',
'strtoumax',
'wcstoimax',
'wcstoumax',
'localeconv',
'setlocale',
'acos',
'asin',
'atan',
'atan2',
'atof',
'ceil',
'cos',
'cosh',
'exp',
'fabs',
'floor',
'frexp',
'ldexp',
'log',
'log10',
'modf',
'pow',
'sin',
'sinh',
'sqrt',
'tan',
'tanh',
'longjmp',
'setjmp',
'raise',
'va_arg',
'va_copy',
'va_end',
'va_start',
'offsetof',
'clearerr',
'fclose',
'feof',
'ferror',
'fflush',
'fgetc',
'fgetpos',
'fgets',
'fopen',
'freopen',
'fdopen',
'fprintf',
'fputc',
'fputs',
'fread',
'fscanf',
'fseek',
'fsetpos',
'ftell',
'fwrite',
'getc',
'getchar',
'gets',
'perror',
'printf',
'fprintf',
'sprintf',
'snprintf',
'putc',
'putchar',
'fputchar',
'puts',
'remove',
'rename',
'rewind',
'scanf',
'fscanf',
'sscanf',
'vfscanf',
'vscanf',
'vsscanf',
'setbuf',
'setvbuf',
'tmpfile',
'tmpnam',
'ungetc',
'vprintf',
'vfprintf',
'vsprintf',
'abort',
'abs',
'labs',
'atexit',
'atof',
'atoi',
'atol',
'bsearch',
'div',
'ldiv',
'exit',
'free',
'itoa',
'getenv',
'ldiv',
'ltoa',
'malloc',
'alloc',
'realloc',
'qsort',
'rand',
'srand',
'strtod',
'strtol',
'strtoul',
'system',
'memchr',
'memcmp',
'memcpy',
'memmove',
'memset',
'strcat',
'strncat',
'strchr',
'strcmp',
'strncmp',
'strcoll',
'strcpy',
'strncpy',
'strcspn',
'strerror',
'strlen',
'strpbrk',
'strrchr',
'strspn',
'strstr',
'strtok',
'strxfrm',
'asctime',
'clock',
'ctime',
'difftime',
'gmtime',
'localtime',
'mktime',
'strftime',
'time',
'btowc',
'fgetwc',
'fgetws',
'fputwc',
'fputws',
'fwide',
'fwprintf',
'fwscanf',
'getwc',
'getwchar',
'mbrlen',
'mbrtowc',
'mbsinit',
'mbsrtowcs',
'putwc',
'putwchar',
'swprintf',
'swscanf',
'ungetwc',
'vfwprintf',
'vswprintf',
'vwprintf',
'wcrtomb',
'wcscat',
'wcschr',
'wcscmp',
'wcscoll',
'wcscpy',
'wcscspn',
'wcsftime',
'wcslen',
'wcsncat',
'wcsncmp',
'wcsncpy',
'wcspbrk',
'wcsrchr',
'wcsrtombs',
'wcsspn',
'wcsstr',
'wcstod',
'wcstok',
'wcstol',
'wcstoul',
'wcsxfrm',
'wctob',
'wmemchr',
'wmemcmp',
'wmemcpy',
'wmemmove',
'wmemset',
'wprintf',
'wscanf',
'iswalnum',
'iswalpha',
'iswcntrl',
'iswctype',
'iswdigit',
'iswgraph',
'iswlower',
'iswprint',
'iswpunct',
'iswspace',
'iswupper',
'iswxdigit',
'towctrans',
'towlower',
'towupper',
'wctrans',
'wctype',
'farmalloc',
'getch',
'getche',
'gotoxy',
'getaddrinfo',
'getnameinfo',
);
