From 740bd75240a207493461d8ac10c5e14eafa276cf Mon Sep 17 00:00:00 2001 From: Ruben Shekspir Date: Tue, 16 Apr 2019 21:19:28 +0400 Subject: [PATCH] pointer stack works --- CharacterStack.Mod | 70 ++++++++++++++++++++++++++++++++++----------- CharaterStack | Bin 0 -> 23528 bytes diaspora2hugo | 1 + 3 files changed, 55 insertions(+), 16 deletions(-) create mode 100755 CharaterStack create mode 160000 diaspora2hugo diff --git a/CharacterStack.Mod b/CharacterStack.Mod index dfa3b50..a67a4b5 100644 --- a/CharacterStack.Mod +++ b/CharacterStack.Mod @@ -3,10 +3,14 @@ IMPORT List, Out, Sys; TYPE integer* = Sys.integer; + TObject* = Sys.TObject; + + Node* = POINTER TO NodeDesc; + NodeDesc* = List.NodeDesc; TChar* = POINTER TO TCharDesc; - TCharDesc = RECORD (List.NodeDesc) + TCharDesc = RECORD (Sys.TObjectDesc) char* : CHAR END; @@ -20,30 +24,48 @@ TYPE top: PROCEDURE(self: CharacterStackType) : CHAR; END; -PROCEDURE pop(self: CharacterStackType): CHAR; VAR - ch: TChar; -BEGIN - NEW(ch); - ch := self.Get(self, self.Count); - self.Delete(self, self.Count); - RETURN ch.char; -END pop; + characterStack: CharacterStackType; PROCEDURE push(self: CharacterStackType; char: CHAR); VAR - int: integer; ch: TChar; + int: integer; BEGIN NEW(ch); ch.char := char; int := self.Add(self, ch); END push; +PROCEDURE pop(self: CharacterStackType): CHAR; +VAR + n: Node; +BEGIN + NEW(n); + + IF self.Count = 0 THEN RETURN 0AX END; + + n := self.Get(self, self.Count - 1); + self.Delete(self, self.Count - 1); + RETURN n.obj(TChar).char; +END pop; + +PROCEDURE top(self: CharacterStackType): CHAR; +VAR + n: Node; +BEGIN + NEW(n); + + IF self.Count = 0 THEN RETURN 0AX END; + + n := self.Get(self, self.Count - 1); + RETURN n.obj(TChar).char; +END top; PROCEDURE Create* () : CharacterStackType; - VAR l : CharacterStackType; - BEGIN +VAR + l : CharacterStackType; +BEGIN NEW(l); l.First := NIL; l.Last := NIL; @@ -61,23 +83,39 @@ PROCEDURE Create* () : CharacterStackType; l.pop := pop; l.push:= push; - (* l.top := top; *) + l.top := top; RETURN(l); END Create; -VAR - characterStack: CharacterStackType; BEGIN NEW(characterStack); + characterStack := Create(); characterStack.push(characterStack, 'a'); characterStack.push(characterStack, 'b'); characterStack.push(characterStack, 'c'); - Out.Char(characterStack.pop(characterStack)); + + Out.Char(characterStack.top(characterStack)); Out.Ln(); Out.Char(characterStack.pop(characterStack)); Out.Ln(); + Out.Char(characterStack.top(characterStack)); + Out.Ln(); Out.Char(characterStack.pop(characterStack)); Out.Ln(); + Out.Char(characterStack.top(characterStack)); + Out.Ln(); + Out.Char(characterStack.pop(characterStack)); + Out.Ln(); + Out.Char(characterStack.top(characterStack)); + Out.Ln(); + Out.Char(characterStack.pop(characterStack)); + Out.Ln(); + Out.Char(characterStack.top(characterStack)); + Out.Ln(); + Out.Char(characterStack.pop(characterStack)); + Out.Ln(); + Out.Char(characterStack.top(characterStack)); + Out.Ln(); Out.Char(characterStack.pop(characterStack)); Out.Ln(); END CharaterStack. \ No newline at end of file diff --git a/CharaterStack b/CharaterStack new file mode 100755 index 0000000000000000000000000000000000000000..9cd02b250e45822cf1e2ca4be05126eff0bf647f GIT binary patch literal 23528 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