Subversion Repositories Kolibri OS

Rev

Rev 6647 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6647 Rev 7597
Line 1... Line 1...
1
(*
1
(*
2
    Copyright 2016 Anton Krotov
2
    Copyright 2016, 2018 Anton Krotov
Line 3... Line 3...
3
 
3
 
4
    This program is free software: you can redistribute it and/or modify
4
    This program is free software: you can redistribute it and/or modify
5
    it under the terms of the GNU Lesser General Public License as published by
5
    it under the terms of the GNU Lesser General Public License as published by
6
    the Free Software Foundation, either version 3 of the License, or
6
    the Free Software Foundation, either version 3 of the License, or
Line 36... Line 36...
36
END GetChar;
36
END GetChar;
Line 37... Line 37...
37
 
37
 
38
PROCEDURE ParamParse;
38
PROCEDURE ParamParse;
Line 39... Line 39...
39
VAR p, count, name: INTEGER; c: CHAR; cond: INTEGER;
39
VAR p, count, name: INTEGER; c: CHAR; cond: INTEGER;
40
 
40
 
41
  PROCEDURE ChangeCond(A, B, C: INTEGER);
41
  PROCEDURE ChangeCond(A, B, C: INTEGER; c: CHAR; VAR cond: INTEGER);
42
  BEGIN
42
  BEGIN
43
    IF (c <= 20X) & (c # 0X) THEN
43
    IF (c <= 20X) & (c # 0X) THEN
44
      cond := A
44
      cond := A
Line 62... Line 62...
62
  cond := 0;
62
  cond := 0;
63
  count := 1;
63
  count := 1;
64
  WHILE (argc < MAX_PARAM) & (cond # 6) DO
64
  WHILE (argc < MAX_PARAM) & (cond # 6) DO
65
    c := GetChar(p);
65
    c := GetChar(p);
66
    CASE cond OF
66
    CASE cond OF
67
    |0: ChangeCond(0, 4, 1); IF cond = 1 THEN Params[count, 0] := p END
67
    |0: ChangeCond(0, 4, 1, c, cond); IF cond = 1 THEN Params[count, 0] := p END
68
    |1: ChangeCond(0, 3, 1); IF cond IN {0, 6} THEN Params[count, 1] := p - 1; INC(count) END
68
    |1: ChangeCond(0, 3, 1, c, cond); IF cond IN {0, 6} THEN Params[count, 1] := p - 1; INC(count) END
69
    |3: ChangeCond(3, 1, 3); IF cond = 6 THEN Params[count, 1] := p - 1; INC(count) END
69
    |3: ChangeCond(3, 1, 3, c, cond); IF cond = 6 THEN Params[count, 1] := p - 1; INC(count) END
70
    |4: ChangeCond(5, 0, 5); IF cond = 5 THEN Params[count, 0] := p END
70
    |4: ChangeCond(5, 0, 5, c, cond); IF cond = 5 THEN Params[count, 0] := p END
71
    |5: ChangeCond(5, 1, 5); IF cond = 6 THEN Params[count, 1] := p - 1; INC(count) END
71
    |5: ChangeCond(5, 1, 5, c, cond); IF cond = 6 THEN Params[count, 1] := p - 1; INC(count) END
72
    ELSE
72
    ELSE
73
    END;
73
    END;
74
    INC(p)
74
    INC(p)
75
  END;
75
  END;
76
  argc := count
76
  argc := count