Annotation of qemu/roms/openbios/forth/debugging/see.fs, revision 1.1

1.1     ! root        1: \ tag: Forth Decompiler 
        !             2: \ 
        !             3: \ this code implements IEEE 1275-1994 ch. 7.5.3.2
        !             4: \ 
        !             5: \ Copyright (C) 2003 Stefan Reinauer
        !             6: \ 
        !             7: \ See the file "COPYING" for further information about
        !             8: \ the copyright and warranty status of this work.
        !             9: \ 
        !            10: 
        !            11: 1 value (see-indent) 
        !            12: 
        !            13: : (see-cr)
        !            14:   cr (see-indent) spaces
        !            15:   ;
        !            16: 
        !            17: : indent+
        !            18:   (see-indent) 2+ to (see-indent)
        !            19:   ;
        !            20: 
        !            21: : indent-
        !            22:   (see-indent) 2- to (see-indent)
        !            23:   ;
        !            24:   
        !            25: : (see-colon)
        !            26:   dup ." : " cell - lfa2name type (see-cr)
        !            27:    begin
        !            28:    cell+ dup @ dup ['] (semis) <>
        !            29:    while
        !            30:     space
        !            31:     dup
        !            32:     case
        !            33: 
        !            34:       ['] do?branch of
        !            35:         ." if" (see-cr) indent+
        !            36:         drop cell+ 
        !            37:       endof
        !            38:       
        !            39:       ['] dobranch of
        !            40:        ." then" indent- (see-cr)
        !            41:        drop cell+ 
        !            42:       endof
        !            43:       
        !            44:       ['] (begin) of
        !            45:         ." begin" indent+ (see-cr) 
        !            46:        drop
        !            47:       endof
        !            48: 
        !            49:       ['] (again) of
        !            50:        ." again" (see-cr) 
        !            51:        drop
        !            52:       endof
        !            53: 
        !            54:       ['] (until) of
        !            55:         ." until" (see-cr)
        !            56:        drop
        !            57:       endof
        !            58: 
        !            59:       ['] (while) of
        !            60:         indent- (see-cr)
        !            61:        ."  while" 
        !            62:        indent+ (see-cr)
        !            63:        drop 2 cells +
        !            64:       endof
        !            65: 
        !            66:       ['] (repeat) of
        !            67:         indent- (see-cr) 
        !            68:         ."  repeat" 
        !            69:        (see-cr) 
        !            70:         drop 2 cells +
        !            71:       endof
        !            72: 
        !            73:       ['] (lit) of
        !            74:         ." ( lit ) h# " 
        !            75:        drop 1 cells +
        !            76:        dup @ u.
        !            77:       endof
        !            78: 
        !            79:       ['] (") of
        !            80:         22 emit space drop dup cell+ @ 
        !            81:        2dup swap 2 cells + swap type 
        !            82:        22 emit
        !            83:        + aligned cell+
        !            84:       endof
        !            85: 
        !            86:       cell - lfa2name type 
        !            87:     endcase
        !            88:    repeat
        !            89:   cr ."   ;"
        !            90:   2drop
        !            91:   ;
        !            92: 
        !            93: : (see) ( xt -- )
        !            94:   cr
        !            95:   dup @ case
        !            96:     1 of 
        !            97:       (see-colon)  
        !            98:     endof
        !            99:     3 of 
        !           100:       ." constant " dup cell - lfa2name type ."  =  " execute . 
        !           101:     endof
        !           102:     4 of 
        !           103:       ." variable " dup cell - lfa2name type ."  =  " execute @ . 
        !           104:     endof
        !           105:     5 of 
        !           106:       ." defer " dup  cell - lfa2name type cr 
        !           107:       ." is " cell+ @ cell - lfa2name type cr
        !           108:     endof
        !           109:     ." primword " swap cell - lfa2name type 
        !           110:   endcase
        !           111:   cr
        !           112:   ;
        !           113: 
        !           114: : see ' (see) ;

unix.superglobalmegacorp.com

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