Annotation of gforth/locals-test.fs, revision 1.1

1.1     ! anton       1: include glocals.fs
        !             2: 
        !             3: : localsinfo \ !! only debugging
        !             4:  ." stack: " .s ." locals-size: " locals-size ? ." locals-list"
        !             5:  also locals words previous cr ;
        !             6: 
        !             7: ." before foo" cr
        !             8: : foo
        !             9: { c: a  b  c: c  d: d }
        !            10: a .
        !            11: b .
        !            12: d type
        !            13: c . cr
        !            14: ;
        !            15: 
        !            16: ." before" .s cr
        !            17: lp@ . cr
        !            18: 1 2 3 s" xxx" foo
        !            19: lp@ . cr
        !            20: ." after" .s cr
        !            21: 
        !            22: 
        !            23: ." xxx" cr
        !            24: .s cr
        !            25: depth . cr
        !            26: 
        !            27: 
        !            28: ." testing part 2" cr
        !            29: 
        !            30: : xxxx
        !            31: { f } f
        !            32: xif
        !            33:   { a b }
        !            34:   b a
        !            35: [ ." before else" .s cr ]
        !            36: xelse
        !            37: [ ." after else" .s cr ]
        !            38:   { c d }
        !            39:   c d
        !            40: xthen
        !            41: [ ." locals-size after then:" locals-size @ . cr ]
        !            42: f drop
        !            43: ;
        !            44: 
        !            45: 2 3 1 xxxx . . cr
        !            46: 2 3 0 xxxx . . cr
        !            47: cr cr cr
        !            48: 
        !            49: : xxx3
        !            50: xbegin
        !            51:   { a }
        !            52: xuntil
        !            53: a
        !            54: ;
        !            55: ." after xxx3" .s cr cr cr
        !            56: 
        !            57: : xxx2
        !            58: [ ." start of xxx2" .s cr ]
        !            59: xbegin
        !            60: [ ." after begin" .s cr ]
        !            61:   { a }
        !            62: [ ." after { a }" .s cr ]
        !            63: 1 xwhile
        !            64: [ ." after while" .s cr ]
        !            65:   { b }
        !            66:   a b
        !            67: [ ." after a" .s cr ]
        !            68: xrepeat
        !            69: [ ." after repeat" .s cr
        !            70:   also locals words previous cr
        !            71: ]
        !            72: a
        !            73: [ ." end of xxx2" .s cr ]
        !            74: ;
        !            75: 
        !            76: : xxx4
        !            77: [ ." before if" localsinfo ]
        !            78: xif
        !            79: [ ." after if" localsinfo ]
        !            80: { a }
        !            81: [ ." before begin" localsinfo ]
        !            82: xbegin
        !            83: [ ." after begin" localsinfo ]
        !            84: [ 1 cs-roll ]
        !            85: [ ." before then" localsinfo ]
        !            86: xthen
        !            87: { b }
        !            88: xuntil
        !            89: [ ." after until" localsinfo ]
        !            90: ;
        !            91: 
        !            92: : xxx5
        !            93: { a }
        !            94: xahead
        !            95: xbegin
        !            96: [ ." after begin" localsinfo ]
        !            97: [ 1 cs-roll ]
        !            98: xthen
        !            99: [ ." after then" localsinfo ]
        !           100: xuntil
        !           101: [ ." after until" localsinfo ]
        !           102: ;
        !           103: 
        !           104: : xxx6
        !           105: xif
        !           106: { x }
        !           107: xelse
        !           108: [ ." after else" localsinfo ]
        !           109: xahead
        !           110: xbegin
        !           111: [ ." after begin" localsinfo ]
        !           112: [ 2 CS-ROLL ] xthen
        !           113: [ ." after then" localsinfo ]
        !           114: xuntil
        !           115: ;
        !           116: 
        !           117: ." xxx7 coming up" cr
        !           118: : xxx7
        !           119: { b }
        !           120: xdo
        !           121: { a }
        !           122: [ ." before loop" localsinfo ]
        !           123: xloop
        !           124: [ ." after loop" localsinfo ]
        !           125: ;
        !           126: 
        !           127: ." xxx8 coming up" cr
        !           128: 
        !           129: : xxx8
        !           130: { b }
        !           131: x?do
        !           132: { a }
        !           133: [ ." before loop" localsinfo ]
        !           134: xloop
        !           135: [ ." after loop" localsinfo ]
        !           136: ;
        !           137: 
        !           138: ." xxx9 coming up" cr
        !           139: : xxx9
        !           140: { b }
        !           141: xdo
        !           142: { c }
        !           143: [ ." before ?leave" leave-sp ? leave-stack . cr ]
        !           144: x?leave
        !           145: [ ." after ?leave" leave-sp ? cr ]
        !           146: { a }
        !           147: [ ." before loop" localsinfo ]
        !           148: xloop
        !           149: [ ." after loop" localsinfo ]
        !           150: ;
        !           151: 
        !           152: ." strcmp coming up" cr
        !           153: : strcmp { addr1 u1 addr2 u2 -- n }
        !           154:  addr1 addr2 u1 u2 min 0 x?do
        !           155:    { s1 s2 }
        !           156:    s1 c@ s2 c@ - ?dup xif
        !           157:      unloop xexit
        !           158:    xthen
        !           159:    s1 char+ s2 char+
        !           160:  xloop
        !           161:  2drop
        !           162:  u1 u2 - ;
        !           163: 
        !           164: : teststrcmp
        !           165: ." lp@:" lp@ . cr
        !           166: s" xxx" s" yyy" strcmp . cr
        !           167: ." lp@:" lp@ . cr
        !           168: s" xxx" s" xxx" strcmp . cr
        !           169: ." lp@:" lp@ . cr
        !           170: s" xxx" s" xxxx" strcmp . cr
        !           171: ." lp@:" lp@ . cr
        !           172: s" xxx3" s" xxx2" strcmp . cr
        !           173: ." lp@:" lp@ . cr
        !           174: s" " s" " strcmp . cr
        !           175: ." lp@:" lp@ . cr
        !           176: ." lp@:" lp@ . cr
        !           177: ." stack:" .s cr
        !           178: ;
        !           179: 
        !           180: : findchar { c addr u -- i }
        !           181:  addr u 0 x?do
        !           182:    { p }
        !           183:    p c@ c = xif
        !           184:      p xleave
        !           185:    xthen
        !           186:    p char+
        !           187:  xloop
        !           188:  addr - ;
        !           189: 
        !           190: 
        !           191: : testfindchar
        !           192: ." findcahr " cr
        !           193: ." lp@:" lp@ . cr
        !           194: [char] a s" xxx" findchar . cr
        !           195: ." lp@:" lp@ . cr
        !           196: [char] a s" " findchar . cr
        !           197: ." lp@:" lp@ . cr
        !           198: [char] a s" wam" findchar . cr
        !           199: ." lp@:" lp@ . cr
        !           200: [char] a s" wma" findchar . cr
        !           201: ." lp@:" lp@ . cr
        !           202: [char] a s" awam" findchar . cr
        !           203: ." lp@:" lp@ . cr
        !           204: ." stack:" .s cr
        !           205: ;
        !           206: 
        !           207: 
        !           208: 
        !           209: ." stack:" .s cr
        !           210: teststrcmp
        !           211: testfindchar
        !           212: ." hey you" cr
        !           213: 
        !           214: : xxx10
        !           215: [ ." before if" localsinfo ]
        !           216: xif
        !           217: [ ." after if" localsinfo ]
        !           218: scope
        !           219: [ ." after scope" localsinfo ]
        !           220: { a }
        !           221: [ ." before endscope" localsinfo ]
        !           222: endscope
        !           223: [ ." before begin" localsinfo ]
        !           224: xbegin
        !           225: [ ." after begin" localsinfo ]
        !           226: [ 1 cs-roll ]
        !           227: [ ." before then" localsinfo ]
        !           228: xthen
        !           229: { b }
        !           230: xuntil
        !           231: [ ." after until" localsinfo ]
        !           232: ;
        !           233: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>