(******************************************************************************) (* command line scanner *) (* (C) 2009 Steffen Solyga *) (******************************************************************************) IMPLEMENTATION MODULE Args; IMPORT Lib, Str; PROCEDURE Reset(); BEGIN cnt := Lib.ParamCount(); idx := 1; sym := symNull; lit[0] := 0C ; END Reset; PROCEDURE Read(); BEGIN IF idx > cnt THEN lit[0] := 0C; sym := symEOA; ELSE Lib.ParamStr( lit, idx ); INC( idx ); IF ( lit[0] = '-' ) & ( Str.Length(lit) > 1 ) THEN Str.Delete( lit, 0, 1 ); sym := symOpt; ELSE sym := symArg; END; END; END Read; BEGIN Reset(); END Args.