2013-01-19

vak: (Улыбка)
Угадайте, что за код. Эту функцию наверняка знают все без исключения современные программисты.
Полностью )
AND writef(format, a, b, c, d, e, f, g, h, i, j, k) BE
$(
    LET t = @a

    FOR p = 1 TO getbyte(format, 0) DO $(
        LET k = getbyte(format, p)

        TEST k='%' THEN $(
            LET f, q, n = 0, t!0, 0
            AND type = getbyte(format, p+1)
            p := p + 1
            SWITCHON type INTO $(
                DEFAULT: wrch(type); ENDCASE

                CASE 'S': f := writes;   GOTO L
                CASE 'C': f := wrch;     GOTO L
                CASE 'O': f := writeoct; GOTO M
                CASE 'X': f := writehex; GOTO M
                CASE 'I': f := writed;   GOTO M
                CASE 'N': f := writed;   GOTO L

                M: p := p + 1
                   n := getbyte(format, p)
                   n := '0'<=n<='9' -> n-'0', n-'A'+10

                L: f(q, n); t := t + 1
            $)
        $) OR
            wrch(k)
    $)
$)