Blame test-t/trad.t

Packit Service 8bf002
/* trad.t
Packit Service 8bf002
 *  Samples for a very old "Reiser" model preprocessor.
Packit Service 8bf002
 */
Packit Service 8bf002
Packit Service 8bf002
#define glue(a, b)  a/**/b
Packit Service 8bf002
#define xglue(a, b) glue(a,b)
Packit Service 8bf002
#define ctrl( c)    'c' & 0x1f
Packit Service 8bf002
Packit Service 8bf002
#define debug(n1,n2)    printf("n1= %d, n2= %s", x/**/n1, x/**/n2)
Packit Service 8bf002
Packit Service 8bf002
/* ISO C preprocessor expands to    :a b c;
Packit Service 8bf002
 * very old preprocessor does to    :abc;
Packit Service 8bf002
 */
Packit Service 8bf002
    glue( glue( a,b),c);
Packit Service 8bf002
Packit Service 8bf002
/* ISO C        :a b c;
Packit Service 8bf002
 * very old     :abc;
Packit Service 8bf002
 */
Packit Service 8bf002
    xglue( xglue( a,b),c);
Packit Service 8bf002
Packit Service 8bf002
#define abc ABC
Packit Service 8bf002
Packit Service 8bf002
/* ISO C preprocessor expands to    :a b c;
Packit Service 8bf002
 * very old preprocessor does to    :ABC;
Packit Service 8bf002
 */
Packit Service 8bf002
    glue( glue( a,b),c);
Packit Service 8bf002
Packit Service 8bf002
/* ISO C        :'c' & 0x1f;
Packit Service 8bf002
 * very old     :'A' & 0x1f;
Packit Service 8bf002
 */
Packit Service 8bf002
    ctrl( A);
Packit Service 8bf002
Packit Service 8bf002
/* ISO C        :printf("n1= %d, n2= %s", x 1, x 2);
Packit Service 8bf002
 * very old     :printf("1= %d, 2= %s", x1, x2);
Packit Service 8bf002
 */
Packit Service 8bf002
    debug(1,2);
Packit Service 8bf002
Packit Service 8bf002
/* ISO C        :text other than comment after #else, #endif line is error
Packit Service 8bf002
 * very old     :the text is skipped quietly
Packit Service 8bf002
 */
Packit Service 8bf002
#define OLD_PREPROCESSOR    1
Packit Service 8bf002
#if     OLD_PREPROCESSOR
Packit Service 8bf002
#else   OLD_PREPROCESSOR
Packit Service 8bf002
#endif  OLD_PREPROCESSOR
Packit Service 8bf002
Packit Service 8bf002
/* ISO C     :Token error
Packit Service 8bf002
 * very old  :Implicit closing quote at end of line
Packit Service 8bf002
 */
Packit Service 8bf002
asm("
Packit Service 8bf002
    .text
Packit Service 8bf002
_probeintr:
Packit Service 8bf002
    ss
Packit Service 8bf002
    incl    _npx_intrs_while_probing
Packit Service 8bf002
    pushl   %eax
Packit Service 8bf002
    movb    $0x20,%al
Packit Service 8bf002
#ifdef PC98
Packit Service 8bf002
    outb    %al,$0x08
Packit Service 8bf002
    outb    %al,$0x0
Packit Service 8bf002
#else
Packit Service 8bf002
    outb    %al,$0xa0
Packit Service 8bf002
    outb    %al,$0x20
Packit Service 8bf002
#endif
Packit Service 8bf002
");
Packit Service 8bf002