scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | README | LICENSE

cstd-c89.h (2378B)


      1 #define STDC_VERSION    "199409L"
      2 
      3 /* Translation limits */
      4 /*
      5  * 15 nesting levels of compound statements, iteration control
      6  * structures, and selection control structures
      7  */
      8 #define NR_BLOCK        15
      9 /*
     10  * 8 nesting levels of conditional inclusion
     11  */
     12 #define NR_COND         8
     13 /*
     14  * 12 pointer, array, and function declarators (in any combinations)
     15  * modifying an arithmetic, a structure, a union, or an incomplete type
     16  * in a declaration
     17  */
     18 #define NR_DECLARATORS  12
     19 /*
     20  * 31 declarators nested by parentheses within a full declarator
     21  */
     22 #define NR_SUBTYPE      31
     23 /*
     24  * 32 expressions nested by parentheses within a full expression
     25  */
     26 #define NR_SUBEXPR      32
     27 /*
     28  * 31 significant initial characters in an internal identifier or a
     29  * macro name
     30  */
     31 #define INTIDENTSIZ     31
     32 /*
     33  * 6 significant initial characters in an external identifier
     34  */
     35 #define EXTIDENTSIZ     6
     36 /*
     37  * 511 external identifiers in one translation unit
     38  */
     39 #define NR_EXT_IDENT    511
     40 /*
     41  * 127 identifiers with block scope declared in one block
     42  */
     43 #define NR_INT_IDENT    127
     44 /*
     45  * 1024 macro identifiers simultaneously defined in one translation
     46  * unit
     47  */
     48 #define NR_MACROIDENT   1024
     49 /*
     50  * 31 parameters in one function definition
     51  */
     52 #define NR_FUNPARAM     31
     53 /*
     54  * 31 arguments in one function call
     55  */
     56 #define NR_FUNARG       31
     57 /*
     58  * 31 parameters in one macro definition
     59  */
     60 #define NR_MACROPARAM   31
     61 /*
     62  * 31 arguments in one macro invocation
     63  */
     64 #define NR_MACROARG     31
     65 /*
     66  * 509 characters in a logical source line
     67  */
     68 #define LINESIZ         509
     69 /*
     70  * 509 characters in a character string literal or wide string literal
     71  * (after concatenation)
     72  */
     73 #define STRINGSIZ       509
     74 /*
     75  * 32767 bytes in an object (in a hosted environment only)
     76  */
     77 #define OBJECTSIZ       32767
     78 /*
     79  * 8 nesting levels for #include'd files
     80  */
     81 #define NR_INCLUDE      8
     82 /*
     83  * 257 case labels for a switch statement (excluding those for any
     84  * nested switch statements)
     85  */
     86 #define NR_SWITCH       257
     87 /*
     88  * 127 members in a single structure or union
     89  */
     90 #define NR_FIELDS       127
     91 /*
     92  * 127 enumeration constants in a single enumeration
     93  */
     94 #define NR_ENUM_CTES    127
     95 /*
     96  * 15 levels of nested structure or union definitions in a single
     97  * struct-declaration-list
     98  */
     99 #define NR_STRUCT_LEVEL 15
    100 /*
    101  * number of defined structs/unions in one translation unit
    102  */
    103 #define NR_MAXSTRUCTS   127