Annotation of researchv10no/cmd/lcc/ph/b2.h, revision 1.1.1.1

1.1       root        1: /* The Plum Hall Validation Suite for C
                      2:  * Unpublished copyright (c) 1986-1991, Chiron Systems Inc and Plum Hall Inc.
                      3:  * VERSION: 4
                      4:  * DATE: 1993-01-01
                      5:  * The "ANSI" mode of this suite corresponds to official ANSI C, X3.159-1989.
                      6:  * As per your license agreement, your distribution is not to be moved or copied outside the Designated Site
                      7:  * without specific permission from Plum Hall Inc.
                      8:  */
                      9: 
                     10: /*
                     11:  * 2.1.1.2 Translation Phases
                     12:  *     This module tests the translation phases by making sure that
                     13:  *  they are processed in the right order.
                     14:  */
                     15: 
                     16: 
                     17: /* #define NOTDEFINED 1 */
                     18: 
                     19: ??=include<stddef.h>
                     20: #include/* SPACE */"defs.h"
                     21: #\
                     22: i\
                     23: f\
                     24: !\
                     25: d\
                     26: e\
                     27: f\
                     28: i\
                     29: n\
                     30: e\
                     31: d\
                     32: (\
                     33: N\
                     34: O\
                     35: T\
                     36: D\
                     37: E\
                     38: F\
                     39: I\
                     40: N\
                     41: E\
                     42: D\
                     43: )
                     44: #\
                     45: d\
                     46: e\
                     47: f\
                     48: i\
                     49: n\
                     50: e\
                     51:  \
                     52: U\
                     53: I\
                     54:  \
                     55: u\
                     56: n\
                     57: s\
                     58: i\
                     59: g\
                     60: n\
                     61: e\
                     62: d\
                     63:  \
                     64: i\
                     65: n??/
                     66: t
                     67: 
                     68: #define/* SPACE */PCHAR(/*SPACE*/x/*SPACE*/)/* SPACE */char x/*SPACE*/??(??)
                     69: 
                     70: #endif
                     71: UI/* SPACE */Ui/* SPACE */=/* SPACE */'\
                     72: \n' ;
                     73: PCHAR(Pc) = "string1??/
                     74: #\
                     75: "\
                     76: "string2" ;
                     77: 
                     78: #ifndef FREESTANDING
                     79: /* hosted environment assumes an invocation as "env 1" */
                     80: int main(
                     81:        int argc,
                     82:        char **argv)
                     83: #else
                     84: int main()
                     85: #endif
                     86:        ??<
                     87:        extern int Debug;
                     88: 
                     89:        Filename = "b2.h";
                     90: #ifndef FREESTANDING
                     91:        if (argc > 2)
                     92:                Debug = TRUE;
                     93: #endif
                     94:        /* 2.1.1.2 - Phases of translation are tested throughout this module.  */
                     95:        {
                     96:                /* separate tokens remain separate unless catenated with ## */
                     97:                #define M -
                     98:        int a=10, b=5, c;
                     99:            c = a M-- b;
                    100:                iequals(__LINE__, a, 10);
                    101:                iequals(__LINE__, b, 4);
                    102:                iequals(__LINE__, c, 6);
                    103:        }
                    104:        checkthat(__LINE__, Ui??'Ui == 0);
                    105:        checkthat(__LINE__, Ui??!Ui == Ui);
                    106:        checkthat(__LINE__, ??-Ui == ~'\n');
                    107: 
                    108:        /* 2.1.2.2 - Hosted Environment */
                    109: #ifndef FREESTANDING
                    110:        checkthat(__LINE__, argc > 0);
                    111:        if (argc < 2)
                    112:                complain(__LINE__);
                    113:        else
                    114:                {
                    115:                stequals(- __LINE__, argv[1], "1");
                    116:                argv[1] = "string1??=string2";
                    117:                aequals(__LINE__, argv[argc], NULL);
                    118:                stequals(__LINE__, Pc, argv[1]);
                    119:                }
                    120: #endif
                    121: 
                    122:        /* 2.2.1 - Character sets */
                    123:        iequals(__LINE__, '0'+1, '1');
                    124:        iequals(__LINE__, '1'+1, '2');
                    125:        iequals(__LINE__, '2'+1, '3');
                    126:        iequals(__LINE__, '3'+1, '4');
                    127:        iequals(__LINE__, '4'+1, '5');
                    128:        iequals(__LINE__, '5'+1, '6');
                    129:        iequals(__LINE__, '6'+1, '7');
                    130:        iequals(__LINE__, '7'+1, '8');
                    131:        iequals(__LINE__, '8'+1, '9');
                    132:        iequals(__LINE__, sizeof('\n'), sizeof(int));
                    133: #ifndef FREESTANDING  /* 92/05/04 see upda3a.01 #515 */
                    134:        iequals(__LINE__, sizeof(**argv), 1);
                    135: #endif /* FREESTANDING */
                    136:        return report("ENVIRON");
                    137:        ??>

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.