Bläddra i källkod

переделал вывод в json-консоль
отладил генератор json

kpmy 10 år sedan
förälder
incheckning
e999709847
3 ändrade filer med 176 tillägg och 6 borttagningar
  1. 0 1
      Src/JSon/Mod/Formatter.cp
  2. 111 4
      Src/System/Mod/Cons.cp
  3. 65 1
      Src/System/Mod/Console.cp

+ 0 - 1
Src/JSon/Mod/Formatter.cp

@@ -379,7 +379,6 @@ MODULE JSonFormatter;
 		res:=0;
 
 		IF f.this#NIL THEN expect:=f.this.expect ELSE expect:={objBegin, arrBegin} END;
-		Out.Int(sym); Out.Set(expect); Out.Ln;
 		IF (sym IN expect) THEN
 
 			CASE sym OF

+ 111 - 4
Src/System/Mod/Cons.cp

@@ -1,114 +1,221 @@
 MODULE Cons;
+
 	
+
 	IMPORT 
+
 		Log:=Out, Console, Str;
+
 		
+
 	TYPE
+
 		Hook = POINTER TO RECORD (Log.Hook) END;
 
+
+
 	PROCEDURE (log: Hook) ClearBuf;
+
 	BEGIN
+
 	
+
 	END ClearBuf;
+
 	
+
 	PROCEDURE (log: Hook) FlushBuf;
+
 	BEGIN
+
 	
+
 	END FlushBuf;
+
 	
+
 	PROCEDURE (log: Hook) Beep;
+
 	BEGIN
+
 	
+
 	END Beep;
+
 	
+
 	PROCEDURE (log: Hook) Char (ch: CHAR);
-		VAR vs: ARRAY 2 OF CHAR;
+
 	BEGIN
-		vs[0]:=ch;
-		vs[1]:=0X;
-		Console.String(vs)
+
+		Console.Char(ch)
+
 	END Char;
+
 	
+
 	PROCEDURE (log: Hook) Int (n: LONGINT);
+
 	BEGIN
+
 		Console.Int(n)
+
 	END Int;
+
 	
+
 	PROCEDURE (log: Hook) Real (x: REAL);
+
 		VAR vs: ARRAY 64 OF CHAR;
+
 	BEGIN
+
 		Str.RealToString(x, vs);
+
 		Console.String(" ");
+
 		Console.String(vs);
+
 	END Real;
+
 	
+
 	PROCEDURE (log: Hook) String (IN str: ARRAY OF CHAR);
+
 	BEGIN
+
 		Console.String(str)
+
 	END String;
+
 	
+
 	PROCEDURE (log: Hook) Bool (x: BOOLEAN);
+
 	BEGIN
+
 		Console.Bool(x)
+
 	END Bool;
+
 	
+
 	PROCEDURE (log: Hook) Set (x: SET);
+
 		VAR i: INTEGER; ret: ARRAY 100 OF CHAR; vs: ARRAY 15 OF CHAR;
+
 	BEGIN
+
 		ret := "{"; i := MIN(SET);
+
 		WHILE x # {} DO
+
 			IF i IN x THEN 
+
 				Str.IntToString(i, vs);
+
 				ret:=ret$+vs$; 
+
 				EXCL(x, i);
+
 				IF (i + 2 <= MAX(SET)) & (i+1 IN x) & (i+2 IN x) THEN 
+
 					ret:=ret$+"..";
+
 					x := x - {i+1, i+2}; INC(i, 3);
+
 					WHILE (i <= MAX(SET)) & (i IN x) DO EXCL(x, i); INC(i) END;
+
 					Str.IntToString(i-1, vs);
+
 					ret:=ret$+vs$;
+
 				END;
+
 				IF x # {} THEN ret:=ret+", "; END
+
 			END;
+
 			INC(i);
+
 		END;
+
 		ret:=ret$+"}";
+
 		Console.String(" ");
+
 		Console.String(ret);
+
 	END Set;
+
 	
+
 	PROCEDURE (log: Hook) Tab;
+
 	BEGIN
+
 		Console.Tab;
+
 	END Tab;
+
 	
+
 	PROCEDURE (log: Hook) Ln;
+
 	BEGIN
+
 		Console.Ln;
+
 	END Ln;
+
 	
+
 	PROCEDURE (log: Hook) ParamMsg (IN s, p0, p1, p2: ARRAY OF CHAR);
+
 	BEGIN
+
 	
+
 	END ParamMsg;
+
 	
+
 	PROCEDURE (log: Hook) IntForm (x: INTEGER; base, minWidth: INTEGER; fillCh: CHAR; showBase: BOOLEAN);
+
 	BEGIN
+
 	
+
 	END IntForm;
+
 	
+
 	PROCEDURE (log: Hook) RealForm (x: REAL; precision, minW, expW: INTEGER; fillCh: CHAR);
+
 	BEGIN
+
 	
+
 	END RealForm;
+
 	
+
 	PROCEDURE Init;
+
 		VAR h: Hook;
+
 	BEGIN
+
 		NEW(h);
+
 		Log.SetHook(h);
+
 	END Init;
+
 	
+
 BEGIN
+
 	Init
+
 END Cons.

+ 65 - 1
Src/System/Mod/Console.cp

@@ -1,40 +1,104 @@
 MODULE Console;
 
+
+
 	IMPORT
+
 		Str;
+
 		
+
 	VAR
+
 		go_process*: PROCEDURE (IN s: ARRAY OF SHORTCHAR);
+
 		
+
 	PROCEDURE String*(s: ARRAY OF CHAR);
+
 		VAR x: ARRAY 1024 OF CHAR;
+
 	BEGIN
+
 		x:='{"type": "log", "data": "'+s$+'"}';
+
 		go_process(SHORT(x));
+
 	END String;
+
 	
+
 	PROCEDURE Bool*(x: BOOLEAN);
+
 	BEGIN
+
 		IF x THEN String(" $TRUE") ELSE String(" $FALSE") END
+
 	END Bool;
+
 	
+
 	PROCEDURE Int*(i: LONGINT);
+
 		VAR s: ARRAY 32 OF CHAR;
+
 	BEGIN
+
 		Str.IntToString(i, s);
+
 		String(" ");
+
 		String(s)
+
 	END Int;
+
 	
+
 	PROCEDURE Ln*;
+
 	BEGIN
+
 		String("\n")
+
 	END Ln;
+
 	
+
 	PROCEDURE Tab*;
+
 	BEGIN
+
 		String("\t")
+
 	END Tab;
-	
+
+	PROCEDURE Char*(ch: CHAR);
+		VAR vs: ARRAY 3 OF CHAR;
+
+	BEGIN
+		vs[0]:="\";
+		vs[2]:=0X; 
+		CASE ch OF
+
+				'"', '\': vs[1]:=ch;
+
+				|09X: vs[1]:='t';
+
+				|0DX: vs[1]:='r';
+
+				|0AX: vs[1]:='n';
+
+				|0CX: vs[1]:='f';
+
+				|08X: vs[1]:='b';
+
+			ELSE 		vs[0]:=ch;
+
+		vs[1]:=0X; END;
+		String(vs)
+	END Char;
+
 END Console.
 
+
+