version 1.3, 2012/03/09 18:56:42
|
version 1.6, 2012/03/27 23:02:01
|
Line 1
|
Line 1
|
\ smart .s 09mar2012py |
\ smart .s 09mar2012py |
|
|
\ Copyright (C) 1995,1998,1999,2001,2003,2006,2007,2011 Free Software Foundation, Inc. |
\ Copyright (C) 2012 Free Software Foundation, Inc. |
|
|
\ This file is part of Gforth. |
\ This file is part of Gforth. |
|
|
Line 20
|
Line 20
|
\ idea: Gerald Wodni |
\ idea: Gerald Wodni |
|
|
: addr? ( addr -- flag ) |
: addr? ( addr -- flag ) |
TRY @ IFERROR 2drop false nothrow ELSE drop true THEN ENDTRY ; |
TRY c@ IFERROR 2drop false nothrow ELSE drop true THEN ENDTRY ; |
|
|
: string? ( addr u -- flag ) |
: string? ( addr u -- flag ) |
TRY bounds ?DO I c@ bl < IF -1 throw THEN LOOP |
TRY dup #80 u> throw bounds ?DO I c@ bl < IF -1 throw THEN LOOP |
IFERROR 2drop drop false nothrow ELSE true THEN ENDTRY ; |
IFERROR 2drop drop false nothrow ELSE true THEN ENDTRY ; |
|
|
: .string. ( addr u -- ) |
: .string. ( addr u -- ) |
Line 34 Variable smart.s-skip
|
Line 34 Variable smart.s-skip
|
|
|
: smart.s. ( n -- ) |
: smart.s. ( n -- ) |
smart.s-skip @ smart.s-skip off IF drop EXIT THEN |
smart.s-skip @ smart.s-skip off IF drop EXIT THEN |
over r> i swap >r - pick 2dup string? IF |
over r> i swap >r - |
|
dup 1 = IF false ELSE pick 2dup string? THEN IF |
.string. smart.s-skip on |
.string. smart.s-skip on |
ELSE drop dup addr? IF .addr. |
ELSE drop dup addr? IF .addr. |
ELSE . THEN |
ELSE . THEN |
THEN ; |
THEN ; |
|
|
' smart.s. IS .s. |
|
|
|
|
' smart.s. IS .s. |