| 0 Value cur-class |
0 Value cur-class |
| : charclass ( -- ) Create here dup to cur-class $100 dup allot erase ; |
: charclass ( -- ) Create here dup to cur-class $100 dup allot erase ; |
| : +char ( char -- ) cur-class swap +bit ; |
: +char ( char -- ) cur-class swap +bit ; |
| : +ichar ( char -- ) dup toupper +char +char ; |
|
| : -char ( char -- ) cur-class swap -bit ; |
: -char ( char -- ) cur-class swap -bit ; |
| : -ichar ( char -- ) dup toupper -char -char ; |
|
| : ..char ( start end -- ) 1+ swap ?DO I +char LOOP ; |
: ..char ( start end -- ) 1+ swap ?DO I +char LOOP ; |
| : or! ( n addr -- ) dup @ rot or swap ! ; |
: or! ( n addr -- ) dup @ rot or swap ! ; |
| : and! ( n addr -- ) dup @ rot and swap ! ; |
: and! ( n addr -- ) dup @ rot and swap ! ; |
| : ,=" ( addr u -- ) tuck ]] dup SLiteral $= ?LEAVE Literal + noop [[ ; |
: ,=" ( addr u -- ) tuck ]] dup SLiteral $= ?LEAVE Literal + noop [[ ; |
| : =" ( <string>" -- ) '" parse ,=" ; immediate |
: =" ( <string>" -- ) '" parse ,=" ; immediate |
| |
|
| [IFDEF] capscompare |
|
| : $i= ( addr1 addr2 u -- f ) tuck capscompare ; |
|
| : ,i=" ( addr u -- ) tuck ]] dup SLiteral $i= ?LEAVE Literal + noop [[ ; |
|
| : i=" ( <string>" -- ) '" parse ,i=" ; immediate |
|
| [ELSE] |
|
| : i=" ( -- ) '" parse bounds ?DO |
|
| ]] count toupper [[ I c@ toupper ]] Literal <> ?LEAVE [[ |
|
| LOOP ; immediate |
|
| [THEN] |
|
| |
|
| \ loop stack |
\ loop stack |
| |
|
| Variable loops $40 3 * cells allot |
Variable loops $40 3 * cells allot |