diff --git a/HashMapString.Mod b/HashMapString.Mod new file mode 100644 index 0000000..cf3848d --- /dev/null +++ b/HashMapString.Mod @@ -0,0 +1,59 @@ +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. \ No newline at end of file