? " Demonstration of parser. "

phrase = "now is  the     time"
word = "initialize"
wordno = 1
do while not empty(word)
  word = parse1(phrase, wordno)  
  ? trans(wordno,"###") + "   (" + word + ")"
  wordno = wordno + 1
enddo

return
*--------------------------------------

FUNCTION PARSE1
* Get x positioned word from given string.
* Assumed seperators are blanks. 
Parameter p_string, p_posit

private result,i,usestr,reloop,temppos,tempcnt

result = space(0)
usestr = space(1) + alltrim(p_string) + space(1)    && space at ends needed below

if empty(usestr)
  return(space(0))
endif

do while space(2) $ usestr
  usestr = strtran(usestr,space(2),space(1))    && make only 1-space seperators
enddo  

i = 1
reloop = .t.
tempcnt = 0
temppos = 0
do while reloop     && traverse string looking at space occurances
  if substr(usestr,i,1) = space(1)
    tempcnt=tempcnt+1   
  endif
  if tempcnt = p_posit
    temppos = i + 1
    reloop = .f.
  endif
  i = i + 1
  if i > len(usestr)
    return(space(0))   && beyond word count
  endif
enddo

i = temppos
do while substr(usestr,i,1) <> space(1)
  result = result + substr(usestr,i,1)
  i = i + 1
enddo

return(result)