1. strtok question
- Posted by Brian Broker <bkb at cnw.com> Mar 12, 2003
- 373 views
For Kat or any others familiar with the lib: Question: Is there an easy way to keep some separators while removing others? For example, if I was parsing a BASIC-like language and I wanted to keep comparison and math operators while stripping white space? example: if x=y then --> {"if","x","=","y","then"} I was hoping to do a single pass because I figured I could always first replace "=" with " = " then parse on white space... Thanks, -- Brian
2. Re: strtok question
- Posted by gertie at visionsix.com Mar 12, 2003
- 373 views
On 12 Mar 2003, at 19:31, Brian Broker wrote: > > For Kat or any others familiar with the lib: > > Question: Is there an easy way to keep some separators while removing > others? For example, if I was parsing a BASIC-like language and I > wanted to keep comparison and math operators while stripping white > space? > > example: > if x=y then --> {"if","x","=","y","then"} > > I was hoping to do a single pass because I figured I could always first > replace "=" with " = " then parse on white space... I don't understand the question. If you replace "=" with " = ", parse() will return as you give in your example. Kat
3. Re: strtok question
- Posted by Derek Parnell <ddparnell at bigpond.com> Mar 12, 2003
- 375 views
On Wed, 12 Mar 2003 14:45:31 -0600, <gertie at visionsix.com> wrote: > > On 12 Mar 2003, at 20:22, Brian Broker wrote: > >> >> But then I'm essentially making two passes to get what I want (first >> pass to replace, second to parse). I was wondering if there was a way >> to get what I want with just one pass... > > Not with the currently released version of strtok, because you have no > delimiters around the "=" in your example, the complete token being > "x=y". In next release, i will be supplying an optional form to keep > multiple selected separators. Even then, there will be multiple passes > thru the list of separators supplied as the 2nd param of parse(), it will > just be hidden from you. > > Kat I did supply an addition to strtok that broke apart a line based on 'words as tokens' so that the "x=y" would have been split into three tokens, just as "x = y" would have too. Kat, has not added this to the library yet. -- cheers, Derek Parnell
4. Re: strtok question
- Posted by gertie at visionsix.com Mar 12, 2003
- 365 views
On 13 Mar 2003, at 9:50, Derek Parnell wrote: > > On Wed, 12 Mar 2003 14:45:31 -0600, <gertie at visionsix.com> wrote: > > > > > On 12 Mar 2003, at 20:22, Brian Broker wrote: > > > >> > >> But then I'm essentially making two passes to get what I want (first > >> pass to replace, second to parse). I was wondering if there was a way > >> to get what I want with just one pass... > > > > Not with the currently released version of strtok, because you have no > > delimiters around the "=" in your example, the complete token being > > "x=y". In next release, i will be supplying an optional form to keep > > multiple selected separators. Even then, there will be multiple passes > > thru the list of separators supplied as the 2nd param of parse(), it will > > just > > be hidden from you. > > > > Kat > > I did supply an addition to strtok that broke apart a line based on 'words as > tokens' so that the "x=y" would have been split into three tokens, just as "x > = > y" would have too. Kat, has not added this to the library yet. I wanted to make sure it worked with all the othe functions, and add a few more things too. For now, it would be easiest for him to write the lines with delimiters around the keywords. Kat
5. Re: strtok question
- Posted by Derek Parnell <ddparnell at bigpond.com> Mar 12, 2003
- 382 views
On Wed, 12 Mar 2003 17:27:26 -0600, <gertie at visionsix.com> wrote: [snip] > > I wanted to make sure it worked with all the othe functions, and add a > few more things too. For now, it would be easiest for him to write the > lines with delimiters around the keywords. Thanks, Kat. Of course that assumes he has control over the creation of the text -- cheers, Derek Parnell