mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-05 20:42:26 +00:00
59 lines
No EOL
1.6 KiB
Modula-2
59 lines
No EOL
1.6 KiB
Modula-2
MODULE HashMap;
|
|
IMPORT Logger;
|
|
TYPE
|
|
JsonTypePointer* = POINTER TO JsonType;
|
|
JsonType* = RECORD
|
|
GetTerminal* : PROCEDURE(self : JsonTypePointer, string : STRING): STRING;
|
|
GetNonTerminal* : PROCEDURE(self : JsonTypePointer, key : STRING): JsonTypePointer;
|
|
HasKey* : PROCEDURE(self : JsonTypePointer, key : STRING): BOOLEAN;
|
|
TypeOfTheKey* : PROCEDURE(self : JsonTypePointer, key : STRING): STRING;
|
|
Create* : PROCEDURE(self : JsonTypePointer, key : STRING): BOOLEAN;
|
|
|
|
TerminalsValues : ARRAY OF STRING;
|
|
TerminalKeys : ARRAY OF STRING;
|
|
|
|
NonTerminalValues : ARRAY OF JsonTypePointer;
|
|
NonTerminalKeys : ARRAY OF STRING;
|
|
END;
|
|
|
|
PROCEDURE makeACopy(VAR STR1, STR2: ARRAY OF CHAR):
|
|
BEGIN
|
|
(* TODO *)
|
|
END;
|
|
|
|
PROCEDURE Create*(VAR self : JsonTypePointer, text: ARRAY OF CHAR): BOOLEAN;
|
|
VAR
|
|
everethingIsOK: BOOLEAN;
|
|
i,j: INTEGER;
|
|
stack, key, val: ARRAY OF CHAR;
|
|
symbolBracketStart, symbolBracketEnd, symbolStart: CHAR;
|
|
BEGIN
|
|
symbolBracketStart := "{";
|
|
symbolBracketEnd := "}";
|
|
symbol := "\"";
|
|
j := 0;
|
|
|
|
i := 0;
|
|
REPEAT
|
|
|
|
symbol := text[i];
|
|
INC(i);
|
|
|
|
IF symbol = symbolBracketStart THEN
|
|
Logger.out("Starting Parse Json")
|
|
END;
|
|
|
|
IF symbol = symbolBracketStart THEN
|
|
Logger.out("End Parsing Json")
|
|
END;
|
|
|
|
makeACopy(key, self.TerminalKeys[j]);
|
|
makeACopy(value, self.TerminalsValues[j]);
|
|
|
|
UNTIL i = LEN(text);
|
|
|
|
RETURN everethingIsOK;
|
|
END;
|
|
|
|
END;
|
|
END HashMap. |