Home
       cstd-c89.h - scc - simple c99 compiler
  HTML git clone git://git.simple-cc.org/scc
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR 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