Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. IMPLEMENTATION MODULE Args;
  2.   IMPORT Arguments;
  3.   (* getarg primitive for Mocka 1208m, adapted from Software Tools. *)
  4.  
  5.   VAR argv: Arguments.ArgTable;
  6.     argc: INTEGER;
  7.  
  8.   PROCEDURE getarg(n: INTEGER; VAR s: string; maxsize: INTEGER): BOOLEAN;
  9.     VAR i: INTEGER;
  10.       res: BOOLEAN;
  11.   BEGIN
  12.     IF (n >= 0) AND (n < argc) THEN
  13.       IF maxsize > 0 THEN
  14.         i := 0;
  15.         WHILE (i < maxsize) AND (argv^[n]^[i] # 0C) DO
  16.           s[i+1] := ORD(argv^[n]^[i]);
  17.           INC(i)
  18.         END;
  19.         s[i+1] := ENDSTR
  20.       END;
  21.       res := TRUE
  22.     ELSE
  23.       res := FALSE
  24.     END;
  25.     RETURN res
  26.   END getarg;
  27.  
  28.   PROCEDURE nargs(): INTEGER;
  29.   BEGIN
  30.     RETURN argc
  31.   END nargs;
  32.  
  33.   PROCEDURE init();
  34.     VAR cnt: SHORTCARD;
  35.   BEGIN
  36.     Arguments.GetArgs(cnt, argv);
  37.     argc := VAL(INTEGER, cnt)
  38.   END init;
  39.  
  40. BEGIN init
  41. END Args.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement