mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-05 20:42:26 +00:00
nothing really works
This commit is contained in:
parent
3c59d73914
commit
1a573a5c83
3 changed files with 104 additions and 0 deletions
83
CharacterStack.Mod
Normal file
83
CharacterStack.Mod
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
MODULE CharaterStack;
|
||||||
|
IMPORT List, Out, Sys;
|
||||||
|
|
||||||
|
TYPE
|
||||||
|
integer* = Sys.integer;
|
||||||
|
|
||||||
|
TChar* = POINTER TO TCharDesc;
|
||||||
|
|
||||||
|
TCharDesc = RECORD (List.NodeDesc)
|
||||||
|
char* : CHAR
|
||||||
|
END;
|
||||||
|
|
||||||
|
string = Sys.string;
|
||||||
|
|
||||||
|
CharacterStackType = POINTER TO CharacterStackTypeDesc;
|
||||||
|
|
||||||
|
CharacterStackTypeDesc = RECORD (List.TListDesc)
|
||||||
|
pop: PROCEDURE(self: CharacterStackType): CHAR;
|
||||||
|
push: PROCEDURE(self: CharacterStackType; char: CHAR);
|
||||||
|
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;
|
||||||
|
|
||||||
|
PROCEDURE push(self: CharacterStackType; char: CHAR);
|
||||||
|
VAR
|
||||||
|
int: integer;
|
||||||
|
ch: TChar;
|
||||||
|
BEGIN
|
||||||
|
NEW(ch);
|
||||||
|
ch.char := char;
|
||||||
|
int := self.Add(self, ch);
|
||||||
|
END push;
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE Create* () : CharacterStackType;
|
||||||
|
VAR l : CharacterStackType;
|
||||||
|
BEGIN
|
||||||
|
NEW(l);
|
||||||
|
l.First := NIL;
|
||||||
|
l.Last := NIL;
|
||||||
|
l.Count := 0;
|
||||||
|
l.Add := List.Add;
|
||||||
|
l.Append := List.Append;
|
||||||
|
l.AppendList := List.AppendList;
|
||||||
|
l.Clear := List.Clear;
|
||||||
|
l.Free := List.Free;
|
||||||
|
l.Insert := List.Insert;
|
||||||
|
l.Delete := List.Delete;
|
||||||
|
l.Empty := List.Empty;
|
||||||
|
l.Get := List.Get;
|
||||||
|
l.res := TRUE;
|
||||||
|
|
||||||
|
l.pop := pop;
|
||||||
|
l.push:= push;
|
||||||
|
(* l.top := top; *)
|
||||||
|
RETURN(l);
|
||||||
|
END Create;
|
||||||
|
|
||||||
|
VAR
|
||||||
|
characterStack: CharacterStackType;
|
||||||
|
BEGIN
|
||||||
|
NEW(characterStack);
|
||||||
|
characterStack.push(characterStack, 'a');
|
||||||
|
characterStack.push(characterStack, 'b');
|
||||||
|
characterStack.push(characterStack, 'c');
|
||||||
|
Out.Char(characterStack.pop(characterStack));
|
||||||
|
Out.Ln();
|
||||||
|
Out.Char(characterStack.pop(characterStack));
|
||||||
|
Out.Ln();
|
||||||
|
Out.Char(characterStack.pop(characterStack));
|
||||||
|
Out.Ln();
|
||||||
|
Out.Char(characterStack.pop(characterStack));
|
||||||
|
Out.Ln();
|
||||||
|
END CharaterStack.
|
||||||
6
build.sh
Normal file
6
build.sh
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#/bin/bash
|
||||||
|
|
||||||
|
voc -s \
|
||||||
|
./diaspora2hugo/src/lists/Sys.Mod \
|
||||||
|
./diaspora2hugo/src/lists/List.Mod \
|
||||||
|
./CharacterStack.Mod -m
|
||||||
15
test.Mod
Normal file
15
test.Mod
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
MODULE test;
|
||||||
|
IMPORT Out;
|
||||||
|
VAR
|
||||||
|
string: POINTER TO ARRAY OF CHAR;
|
||||||
|
BEGIN
|
||||||
|
NEW(string, 42);
|
||||||
|
string[1] := "a";
|
||||||
|
Out.Char(string[1]);
|
||||||
|
Out.Ln();
|
||||||
|
Out.Int(ORD(string[1]), 10);
|
||||||
|
Out.Ln();
|
||||||
|
Out.Int(ORD(string[2]), 10);
|
||||||
|
Out.Ln();
|
||||||
|
COPY("Gago", string);
|
||||||
|
END test.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue