Browse Source

попытка запуска динамических структур на fw

p.kushnir 10 years ago
parent
commit
659b78f026

+ 43 - 0
Src/Lists/Mod/ObxIterable.cp

@@ -0,0 +1,43 @@
+MODULE ListsObxIterable;
+(**
+	project	= "BlackBox"
+	subproject	= "Lists library"
+	organization	= ""
+	contributors	= "(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAAawAAAAAAAAFjAAAAaTIxc3lzQ2FsbHMuT3BlbignaHR0cDovL29iZXJvbmNvcmUucnUvbWVtYmVycy8lRDAlQkElRDElODMlRDElODglRDAlQkQlRDAlQjglRDElODBfJUQwJUJGJUQwJUJDJykA*)Кушнир П. М.(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA*)"
+	version	= "(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAASAAAAAAAAAFAAAAAU3RkQ21kcy5PcGVuVG9vbERpYWxvZygnU3lzdGVtL1JzcmMvKi9BYm91dCcsICdBYm91dCBCbGFja0JveCcpAA==*)System/Rsrc/About(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA*)"
+	copyright	= "(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAASAAAAAAAAAFAAAAAU3RkQ21kcy5PcGVuVG9vbERpYWxvZygnU3lzdGVtL1JzcmMvKi9BYm91dCcsICdBYm91dCBCbGFja0JveCcpAA==*)System/Rsrc/About(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA*)"
+	license	= "(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAARQAAAAAAAAE9AAAAU3RkQ21kcy5PcGVuQnJvd3NlcignRG9jdS8qL0JCLUxpY2Vuc2UnLCAnQmxhY2tCb3ggTGljZW5zZScpAA==*)Docu/BB-License(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA*)"
+	purpose	= ""
+	changes	= ""
+	issues	= ""
+
+**)
+	
+
+	IMPORT It := ListsIterable, Log:=Out;
+
+	TYPE
+		StdItem = POINTER TO RECORD (It.IteratorItem) i: INTEGER END;
+
+	PROCEDURE Test*;
+	VAR i: INTEGER; item: StdItem; it: It.Iterator;
+	BEGIN
+		it := It.NewIterator();
+		FOR i := 0 TO 999 DO
+			NEW(item); item.i := i; it.Add(item)
+		END;
+		it.First;
+		WHILE it.this # NIL DO
+			IF ((it.this(StdItem).i + 1) MOD 2) = 0 THEN it.Remove(it.this) END;
+			IF it.this#NIL THEN it.Next END;
+		END;
+		it.First;
+		WHILE it.this # NIL DO
+			Log.Int(it.this(StdItem).i);
+			it.Next
+		END
+	END Test;
+
+END ListsObxIterable.
+
+(*JediPlain*gvFEZXZDb21tYW5kZXJzLlN0ZFZpZXdEZXNjAPFEZXZDb21tYW5kZXJzLlZpZXdEZXNjAPFWaWV3cy5WaWV3RGVzYwDwU3RvcmVzLlN0b3JlRGVzYwAAAAAAAAAAAAAAAAAGAAAAAAAAFQAA*)"ListsObxIterable.Test" 

+ 35 - 0
Src/Lists/Mod/ObxLinear.cp

@@ -0,0 +1,35 @@
+MODULE ListsObxLinear;
+(**
+	project	= "BlackBox"
+	subproject	= "Lists library"
+	organization	= ""
+	contributors	= "(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAAawAAAAAAAAFjAAAAaTIxc3lzQ2FsbHMuT3BlbignaHR0cDovL29iZXJvbmNvcmUucnUvbWVtYmVycy8lRDAlQkElRDElODMlRDElODglRDAlQkQlRDAlQjglRDElODBfJUQwJUJGJUQwJUJDJykA*)Кушнир П. М.(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA*)"
+	version	= "(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAASAAAAAAAAAFAAAAAU3RkQ21kcy5PcGVuVG9vbERpYWxvZygnU3lzdGVtL1JzcmMvKi9BYm91dCcsICdBYm91dCBCbGFja0JveCcpAA==*)System/Rsrc/About(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA*)"
+	copyright	= "(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAASAAAAAAAAAFAAAAAU3RkQ21kcy5PcGVuVG9vbERpYWxvZygnU3lzdGVtL1JzcmMvKi9BYm91dCcsICdBYm91dCBCbGFja0JveCcpAA==*)System/Rsrc/About(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA*)"
+	license	= "(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAARQAAAAAAAAE9AAAAU3RkQ21kcy5PcGVuQnJvd3NlcignRG9jdS8qL0JCLUxpY2Vuc2UnLCAnQmxhY2tCb3ggTGljZW5zZScpAA==*)Docu/BB-License(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA*)"
+	purpose	= ""
+	changes	= ""
+	issues	= ""
+
+**)
+
+	IMPORT Linear := ListsLinear, Log:=Out;
+	
+	TYPE
+		StdItem = POINTER TO RECORD(Linear.ListItem) i: INTEGER END;
+		
+	PROCEDURE Test*;
+	VAR i : INTEGER; item : StdItem; list : Linear.List;
+	BEGIN
+		list:=Linear.NewList(); list.SetLength(1000);
+		FOR i:=0 TO 999 DO
+			NEW(item); item.i:=1000-i; list.SetItem(i, item);
+		END;
+		FOR i:=0 TO 999 DO
+			item:=list.GetItem(i)(StdItem); Log.Int(item.i);
+		END;	
+	END Test;
+END ListsObxLinear.
+
+(*JediPlain*gvFEZXZDb21tYW5kZXJzLlN0ZFZpZXdEZXNjAPFEZXZDb21tYW5kZXJzLlZpZXdEZXNjAPFWaWV3cy5WaWV3RGVzYwDwU3RvcmVzLlN0b3JlRGVzYwAAAAAAAAAAAAAAAAAGAAAAAAAAFQAA*)ListsObxLinear.Test
+	

+ 103 - 0
Src/Lists/Mod/ObxMap.cp

@@ -0,0 +1,103 @@
+MODULE ListsObxMap;
+(**
+	project	= "BlackBox"
+	subproject	= "Lists library"
+	organization	= ""
+	contributors	= "(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAAawAAAAAAAAFjAAAAaTIxc3lzQ2FsbHMuT3BlbignaHR0cDovL29iZXJvbmNvcmUucnUvbWVtYmVycy8lRDAlQkElRDElODMlRDElODglRDAlQkQlRDAlQjglRDElODBfJUQwJUJGJUQwJUJDJykA*)Кушнир П. М.(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA*)"
+	version	= "(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAASAAAAAAAAAFAAAAAU3RkQ21kcy5PcGVuVG9vbERpYWxvZygnU3lzdGVtL1JzcmMvKi9BYm91dCcsICdBYm91dCBCbGFja0JveCcpAA==*)System/Rsrc/About(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA*)"
+	copyright	= "(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAASAAAAAAAAAFAAAAAU3RkQ21kcy5PcGVuVG9vbERpYWxvZygnU3lzdGVtL1JzcmMvKi9BYm91dCcsICdBYm91dCBCbGFja0JveCcpAA==*)System/Rsrc/About(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA*)"
+	license	= "(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAARQAAAAAAAAE9AAAAU3RkQ21kcy5PcGVuQnJvd3NlcignRG9jdS8qL0JCLUxpY2Vuc2UnLCAnQmxhY2tCb3ggTGljZW5zZScpAA==*)Docu/BB-License(*JediPlain*gvFTdGRMaW5rcy5MaW5rRGVzYwDxVmlld3MuVmlld0Rlc2MA8FN0b3Jlcy5TdG9yZURlc2MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA*)"
+	purpose	= ""
+	changes	= ""
+	issues	= ""
+
+**)
+
+	
+
+	IMPORT Map := ListsMap, Log:=Out;
+
+	TYPE
+		TestType = POINTER TO RECORD x: INTEGER END;
+		TestId = POINTER TO RECORD(Map.Id) x: INTEGER END;
+
+
+	PROCEDURE (i: TestId)Equal (with: Map.Id): BOOLEAN;
+	BEGIN
+		Log.String('compare ');
+		RETURN i.x = with(TestId).x
+
+	END Equal;
+
+	PROCEDURE Test*;
+	VAR x: ANYPTR; x1, x2, x3: TestType; id: TestId; i: Map.IntMap; s: Map.StrMap; p: Map.PtrMap;
+	BEGIN
+		NEW(x1); x1.x := 1111;
+		NEW(x2); x2.x := 2222;
+		NEW(x3); x3.x := 3333;
+
+		i := Map.NewIntMap();
+		i.Add(1, x1);
+		i.Add(2, x2);
+		i.Add(3, x3);
+		i.Remove(2);
+		x := i.Item(2);
+		IF x # NIL THEN Log.Int(x(TestType).x) END;
+		Log.Ln;
+		x := i.Item(2);
+		IF x # NIL THEN Log.Int(x(TestType).x) ELSE Log.String('removed') END;
+		Log.Ln;
+		i.Add(2, x2);
+		x := i.Item(2);
+		IF x # NIL THEN Log.Int(x(TestType).x) END;
+		Log.Ln;
+		i.Remove(2);
+		x := i.Item(2);
+		IF x # NIL THEN Log.Int(x(TestType).x) ELSE Log.String('removed') END;
+		Log.Ln;
+
+		s := Map.NewStrMap();
+		s.Add('1', x1);
+		s.Add('2', x2);
+		s.Add('3', x3);
+		s.Remove('2');
+		x := s.Item('2');
+		IF x # NIL THEN Log.Int(x(TestType).x) END;
+		Log.Ln;
+		x := s.Item('2');
+		IF x # NIL THEN Log.Int(x(TestType).x) ELSE Log.String('removed') END;
+		Log.Ln;
+		s.Add('2', x2);
+		x := s.Item('2');
+		IF x # NIL THEN Log.Int(x(TestType).x) END;
+		Log.Ln;
+		s.Remove('2');
+		x := s.Item('2');
+		IF x # NIL THEN Log.Int(x(TestType).x) ELSE Log.String('removed') END;
+		Log.Ln;
+
+		p := Map.NewPtrMap();
+		NEW(id); id.x := 1; p.Add(id, x1);
+		NEW(id); id.x := 2; p.Add(id, x2);
+		NEW(id); id.x := 3; p.Add(id, x3);
+		NEW(id); id.x := 2;
+		p.Remove(id);
+		x := p.Item(id);
+		IF x # NIL THEN Log.Int(x(TestType).x) END;
+		Log.Ln;
+		x := p.Item(id);
+		IF x # NIL THEN Log.Int(x(TestType).x) ELSE Log.String('removed') END;
+		Log.Ln;
+		p.Add(id, x2);
+		x := p.Item(id);
+		IF x # NIL THEN Log.Int(x(TestType).x) END;
+		Log.Ln;
+		p.Remove(id);
+		x := p.Item(id);
+		IF x # NIL THEN Log.Int(x(TestType).x) ELSE Log.String('removed') END;
+		Log.Ln
+	END Test;
+
+END ListsObxMap.
+
+(*JediPlain*gvFEZXZDb21tYW5kZXJzLlN0ZFZpZXdEZXNjAPFEZXZDb21tYW5kZXJzLlZpZXdEZXNjAPFWaWV3cy5WaWV3RGVzYwDwU3RvcmVzLlN0b3JlRGVzYwAAAAAAAAAAAAAAAAAGAAAAAAAAFQAA*)ListsObxMap.Test

+ 4 - 2
Src/System/Mod/Start3.cp

@@ -1,8 +1,10 @@
 MODULE Start3;
 	
-	IMPORT Cons, Core, JSonObxNoModel;
+	IMPORT Cons, Core, JSonObxNoModel, ListsObxLinear, ListsObxMap;
 
 BEGIN
 	JSonObxNoModel.Do;
-	JSonObxNoModel.Do2
+	JSonObxNoModel.Do2;
+	ListsObxLinear.Test;
+	ListsObxMap.Test;
 END Start3.

BIN
Src/Xev/Docu/Tool-Map.odc


BIN
Src/Xev/Mod/Dump.odc