REM ReadArgs.bbc v1.10 (C) 2006,2007 Jon Ripley
     
;
     DEF PROC_ReadArgs(RETURN argc, RETURN argv$())
     LOCAL cmd%, i%, ptr%, token$, ttype%
     SYS "GetCommandLine" TO cmd%
     FOR i%=0 TO 1
       IF i% = 1 THEN DIM argv$(argc - 1)
       argc = 0
       ptr% = cmd%
       PROC_ReadArgsLex(ptr%, token$, ttype%)
       WHILE ttype% <> 4 AND ttype%
         IF i% = 1 THEN argv$(argc) = token$
         argc += 1
         PROC_ReadArgsLex(ptr%, token$, ttype%)
       ENDWHILE
     NEXT
i%
     argc -= 1
     ENDPROC

     
DEF PROC_ReadArgsLex(RETURN ptr%, RETURN token$, RETURN ttype%)
     token$ = ""

     WHILE ?ptr% = 32 OR ?ptr% = 9 OR ?ptr% = 10 OR ?ptr% = 13
       ptr% += 1
     ENDWHILE

     IF
?ptr% = 0 THEN ttype% = 4:ENDPROC

     IF
?ptr%=34 THEN
       
ttype% = 3
       ptr%  += 1
       WHILE ?ptr% <> 34 AND ?ptr%
         token$ += CHR$ ?ptr%
         ptr% += 1
       ENDWHILE
       
ptr% += 1
       ENDPROC
     ENDIF

     IF
(?ptr% <> 32 AND ?ptr%) THEN
       
ttype% = 1
       IF ?ptr% = 45 THEN ttype% = 2
       WHILE ?ptr% <> 32 AND ?ptr%
         token$ += CHR$ ?ptr%
         ptr% += 1
       ENDWHILE
       ENDPROC
     ENDIF

     
ttype% = 0
     ENDPROC