PARSE-NAME
[ ] conforms to ANS Forth. MPE VFX Forth for Windows/DOS/Linux MPE Forth 6 cross compilers Gforth bigFORTH PFE (Guido Draheim) iForth (Marcel Hendrix) [ ] already implements the proposal in full since release [ ]: 4th 3.5a (Hans Bezemer) iForth 3.0 [ ] implements the proposal in full in a development version: Gforth bigFORTH PFE [ ] will implement the proposal in full in release [ ]. VFX Forth 3.8 for Windows/DOS/Linux Gforth 0.7 bigFORTH 2.1.1 PFE 33.67 [ ] will implement the proposal in full in some future release. MPE Forth 6 cross compilers (after 6.3) Quartus Forth There are no plans to implement the proposal in full in [ ]. [ ] will never implement the proposal in full:
[ ] I have used (parts of) this proposal in my programs: Ruvim Pinka Robert Epprecht Hans Bezemer [ ] I would use (parts of) this proposal in my programs if the systems I am interested in implemented it: Anton Ertl Bernd Paysan [ ] I would use (parts of) this proposal in my programs if this proposal was in the Forth standard: David N. Williams Stephen Pelc [ ] I would not use (parts of) this proposal in my programs.
' parse-word alias parse-name
PARSE does not skip leading delimiters, and you cannot specify that you want to parse for white space.
WORD skips leading delimiters, but you cannot specify parsing for white space, it creates a counted string (not the preferred representation), the length of the string is therefore limited, it requires a separate buffer (typically limitinmg the string size even more, and the copying to that buffer consumes time); WORD also requires passing a delimiter, although skipping leading delimiters only makes sense for white-space delimiters. ANS Forth does not specify the lifetime of the resulting string precisely.
PARSE-NAME ( "Skip leading white space and parse name delimited by a white space character.name " -- c-addr u ) CORE-EXT
c-addr is the address within the input buffer and u is the length of the selected string. If the parse area is empty or contains only white space, the resulting string has length zero.
PARSE-NAME some-name TYPE
Several systems have implemented a PARSE-WORD compatible with this specification, e.g., Gforth and Quartus.
However, several systems have implemented words called PARSE-WORD that are incompatible with this specification (e.g., MPE's Forths, MinForth, CHForth, F83, Jforth, 4th; Mops is also incompatible, but in a less problematic way), and Stephen Pelc indicated that MPE's Forth would never implement this word with the name PARSE-WORD.
Therefore, a new name is needed for this functionality, and a strawpoll indicated the most support for PARSE-NAME.
One other probably widely used and accepted white space character is TAB, but extending the definition of white space may be better left to another RfD.
Systems that support TAB: Gforth, VFX Forth and MPE v6+ embedded systems.
0 PARSE
would have given the same result.
.STATUS"
, which would have
accepted
.STATUS" """a string"and done the wrong thing for
.STATUS" " DUP
Note that you can be both a system implementor and a programmer, so you can submit both kinds of ballots.
[ ] conforms to ANS Forth. [ ] already implements the proposal in full since release [ ]. [ ] implements the proposal in full in a development version. [ ] will implement the proposal in full in release [ ]. [ ] will implement the proposal in full in some future release. There are no plans to implement the proposal in full in [ ]. [ ] will never implement the proposal in full.If you want to provide information on partial implementation, please do so informally, and I will aggregate this information in some way.
[ ] I have used (parts of) this proposal in my programs. [ ] I would use (parts of) this proposal in my programs if the systems I am interested in implemented it. [ ] I would use (parts of) this proposal in my programs if this proposal was in the Forth standard. [ ] I would not use (parts of) this proposal in my programs.If you feel that there is closely related functionality missing from the proposal (especially if you have used that in your programs), make an informal comment, and I will collect these, too. Note that the best time to voice such issues is the RfD stage.