scantokens

Walt Burkhard <[email protected]>
Newsgroups gmane.comp.tex.metapost
Message-ID <CAKfz9bA3Bw+5qLJU1hSg4HdEeMYN9RXs_krJPAg5rP64oq3pTg@mail.gmail.com>
Hello Fellow MetaPosters,

I am using the scantokens command and have observed some rather weird
standard output remarks. ---

Here is my program ---

string aa ;
numeric n[] , i , j , len ;
numeric wide ;
%%  mydata contains one sequence of numbers " 12 34 45 1 0  234"

vardef mydigits ( expr nn ) =
  numeric w ;
  if (nn > 99) and (nn < 1000) :
    w := 3 ;
    w
  elseif (nn > 9) and (nn < 100) :
    w := 2 ;
    w
  else :
    w := 1 ;
    w
  fi
enddef ;

aa := readfrom ( "mydata" ) ;
message ("aa "&aa ) ;

for i = 0 upto 5 :
  len := length aa ;
  spaces := 0 ;
  for j = 0 upto len :
    if substring (j,j+1) of aa = " " :  spaces := spaces+1 ; else : fi
exitif true ; fi ;
  endfor ;
  aa := substring (spaces,len) of aa ;
  n[i] := scantokens aa ;
  wide :=  mydigits ( n[i] ) ;
  len := length aa ;
  aa := substring (wide,len) of aa ;
endfor ;

for i = 0 upto 5 :
  message ( "n["&decimal i&"] "&decimal n[i] ) ;
endfor ;

end


AND here is the mydata file ---

 12 34 45 1 0  234

The scantokens commands seem to want to indicate that there is more to read
than just the next number!

Here is a portion of the output I obtain ---

This is MetaPost, version 1.9991 (TeX Live 2016) (kpathsea version 6.2.2)
(/usr/local/texlive/2016/texmf-dist/metapost/base/mpost.mp
(/usr/local/texlive/2016/texmf-dist/metapost/base/plain.mp
Preloading the plain mem file, version 1.005) ) (./mytest.mp
aa  12 34 45 1 0  234
! Extra tokens will be flushed.
<to be read again>
                   34
<scantokens> 12 34
                   45 1 0  234
<to be read again>
                   ;
<for(0)> ...s,len)of.aa;n[(EXPR0)]:=scantokens.aa;

wide:=mydigits(n[(EXPR0)])...
l.34 endfor
            ;

MetaPost interrupts the processing at this point, but if an "r" is entered
from the keyboard, MetaPost continues
with much more similar output and then finally ---

n[0] 12
n[1] 34
n[2] 45
n[3] 1
n[4] 0
n[5] 234 )

Is there a way to avoid these extra standard output remarks?


Many thanks in advance.

Walt
ps    The zipped file jkljkl.zip contains both mytest.mp and mydata.

--
http://tug.org/metapost/
jkljkl.zip (application/zip, 874 B) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.