Annotation of 43BSD/contrib/B/src/bint/b3tra.c, revision 1.1

1.1     ! root        1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
        !             2: 
        !             3: /*
        !             4:   $Header: b3tra.c,v 1.4 85/08/22 16:59:43 timo Exp $
        !             5: */
        !             6: 
        !             7: /* Trace facility for interpreter */
        !             8: 
        !             9: #include "b.h"
        !            10: #include "b0fea.h"
        !            11: #include "b1obj.h"
        !            12: #include "b2nod.h"
        !            13: #include "b3err.h" /* For 'tracing' */
        !            14: #include "b3int.h"
        !            15: 
        !            16: #ifdef EXT_COMMAND
        !            17: 
        !            18: Visible Procedure tr_on() {
        !            19:        tracing= Yes;
        !            20: }
        !            21: 
        !            22: Visible Procedure tr_off() {
        !            23:        tracing= No;
        !            24: }
        !            25: 
        !            26: #endif EXT_COMMAND
        !            27: 
        !            28: Visible string opcodes[] = {
        !            29:        "HOW_TO",
        !            30:        "YIELD",
        !            31:        "TEST",
        !            32:        "REFINEMENT",
        !            33: 
        !            34: /* Commands */
        !            35: 
        !            36:        "SUITE",
        !            37:        "PUT",
        !            38:        "INSERT",
        !            39:        "REMOVE",
        !            40:        "CHOOSE",
        !            41:        "DRAW",
        !            42:        "SET_RANDOM",
        !            43:        "DELETE",
        !            44:        "CHECK",
        !            45:        "SHARE",
        !            46: 
        !            47:        "WRITE",
        !            48:        "READ",
        !            49:        "READ_RAW",
        !            50: 
        !            51:        "IF",
        !            52:        "WHILE",
        !            53:        "FOR",
        !            54: 
        !            55:        "SELECT",
        !            56:        "TEST_SUITE",
        !            57:        "ELSE",
        !            58: 
        !            59:        "QUIT",
        !            60:        "RETURN",
        !            61:        "REPORT",
        !            62:        "SUCCEED",
        !            63:        "FAIL",
        !            64: 
        !            65:        "USER_COMMAND",
        !            66:        "EXTENDED_COMMAND",
        !            67: 
        !            68: /* Expressions, targets, tests */
        !            69: 
        !            70:        "TAG",
        !            71:        "COMPOUND",
        !            72: 
        !            73: /* Expressions, targets */
        !            74: 
        !            75:        "COLLATERAL",
        !            76:        "SELECTION",
        !            77:        "BEHEAD",
        !            78:        "CURTAIL",
        !            79: 
        !            80: /* Expressions, tests */
        !            81: 
        !            82:        "UNPARSED",
        !            83: 
        !            84: /* Expressions */
        !            85: 
        !            86:        "MONF",
        !            87:        "DYAF",
        !            88:        "NUMBER",
        !            89:        "TEXT_DIS",
        !            90:        "TEXT_LIT",
        !            91:        "TEXT_CONV",
        !            92:        "ELT_DIS",
        !            93:        "LIST_DIS",
        !            94:        "RANGE_DIS",
        !            95:        "TAB_DIS",
        !            96: 
        !            97: /* Tests */
        !            98: 
        !            99:        "AND",
        !           100:        "OR",
        !           101:        "NOT",
        !           102:        "SOME_IN",
        !           103:        "EACH_IN",
        !           104:        "NO_IN",
        !           105:        "SOME_PARSING",
        !           106:        "EACH_PARSING",
        !           107:        "NO_PARSING",
        !           108:        "MONPRD",
        !           109:        "DYAPRD",
        !           110:        "LESS_THAN",
        !           111:        "AT_MOST",
        !           112:        "GREATER_THAN",
        !           113:        "AT_LEAST",
        !           114:        "EQUAL",
        !           115:        "UNEQUAL",
        !           116:        "Nonode",
        !           117: 
        !           118:        "TAGformal",
        !           119:        "TAGlocal",
        !           120:        "TAGglobal",
        !           121:        "TAGmystery",
        !           122:        "TAGrefinement",
        !           123:        "TAGzerfun",
        !           124:        "TAGzerprd",
        !           125: };
        !           126: 
        !           127: #define NOPCODES ((sizeof opcodes) / (sizeof opcodes[0]))
        !           128: 
        !           129: Visible Procedure tr_node(p) parsetree p; {
        !           130:        int n;
        !           131:        fprintf(stderr, "*** %8x ", p);
        !           132:        if (p == Halt)
        !           133:                fprintf(stderr, "Halt\r\n");
        !           134:        else if (p == Stop)
        !           135:                fprintf(stderr, "Stop\r\n");
        !           136:        else if (!Is_parsetree(p)) {
        !           137:                if (IsSmallInt(p))
        !           138:                        fprintf(stderr, "Error %d\r\n", SmallIntVal(p));
        !           139:                else
        !           140:                        fprintf(stderr, "Trace bad node\r\n");
        !           141:        }
        !           142:        else {
        !           143:                n= Nodetype(p);
        !           144:                if (n < 0 || n >= NOPCODES)
        !           145:                        fprintf(stderr, "Opcode %d", n);
        !           146:                else
        !           147:                        fprintf(stderr, "%s", opcodes[n]);
        !           148:                if (Thread2(p))
        !           149:                        fprintf(stderr, " [*]");
        !           150:                fprintf(stderr, "\r\n");
        !           151:        }
        !           152: }
        !           153: 
        !           154: Visible Procedure tr_jump() {
        !           155:        fprintf(stderr, "*** Jump\r\n");
        !           156: }
        !           157: 
        !           158: Visible Procedure tr_call() {
        !           159:        fprintf(stderr, "*** Call\r\n");
        !           160: }
        !           161: 
        !           162: Visible Procedure tr_ret() {
        !           163:        fprintf(stderr, "*** Return\r\n");
        !           164: }

unix.superglobalmegacorp.com

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