Annotation of researchv10no/cmd/lcc/ph/b2.h, revision 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.