Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -2,59 +2,59 @@ MODULE Brackets;
|
|||
IMPORT StdLog, Args, Stacks (* See Task Stacks *);
|
||||
TYPE
|
||||
|
||||
Character = POINTER TO RECORD (Stacks.Object)
|
||||
c: CHAR
|
||||
END;
|
||||
|
||||
Character = POINTER TO RECORD (Stacks.Object)
|
||||
c: CHAR
|
||||
END;
|
||||
|
||||
PROCEDURE NewCharacter(c: CHAR): Character;
|
||||
VAR
|
||||
n: Character;
|
||||
n: Character;
|
||||
BEGIN
|
||||
NEW(n);n.c:= c;RETURN n
|
||||
NEW(n);n.c:= c;RETURN n
|
||||
END NewCharacter;
|
||||
|
||||
PROCEDURE (c: Character) Show*;
|
||||
BEGIN
|
||||
StdLog.String("Character(");StdLog.Char(c.c);StdLog.String(");");StdLog.Ln
|
||||
StdLog.String("Character(");StdLog.Char(c.c);StdLog.String(");");StdLog.Ln
|
||||
END Show;
|
||||
|
||||
PROCEDURE CheckBalance(str: ARRAY OF CHAR): BOOLEAN;
|
||||
VAR
|
||||
s: Stacks.Stack;
|
||||
n,x: ANYPTR;
|
||||
i: INTEGER;
|
||||
c : CHAR;
|
||||
s: Stacks.Stack;
|
||||
n,x: ANYPTR;
|
||||
i: INTEGER;
|
||||
c : CHAR;
|
||||
BEGIN
|
||||
i := 0; s := Stacks.NewStack();
|
||||
WHILE (i < LEN(str$)) & (~Args.IsBlank(str[i])) & (str[i] # 0X) DO
|
||||
IF s.Empty() THEN
|
||||
s.Push(NewCharacter(str[i]));
|
||||
ELSE
|
||||
n := s.top.data;
|
||||
WITH
|
||||
n : Character DO
|
||||
IF (str[i] = ']')& (n.c = '[') THEN
|
||||
x := s.Pop();
|
||||
ELSE
|
||||
s.Push(NewCharacter(str[i]))
|
||||
END;
|
||||
ELSE RETURN FALSE;
|
||||
END;
|
||||
END;
|
||||
INC(i)
|
||||
END;
|
||||
RETURN s.Empty();
|
||||
i := 0; s := Stacks.NewStack();
|
||||
WHILE (i < LEN(str$)) & (~Args.IsBlank(str[i])) & (str[i] # 0X) DO
|
||||
IF s.Empty() THEN
|
||||
s.Push(NewCharacter(str[i]));
|
||||
ELSE
|
||||
n := s.top.data;
|
||||
WITH
|
||||
n : Character DO
|
||||
IF (str[i] = ']')& (n.c = '[') THEN
|
||||
x := s.Pop();
|
||||
ELSE
|
||||
s.Push(NewCharacter(str[i]))
|
||||
END;
|
||||
ELSE RETURN FALSE;
|
||||
END;
|
||||
END;
|
||||
INC(i)
|
||||
END;
|
||||
RETURN s.Empty();
|
||||
END CheckBalance;
|
||||
|
||||
PROCEDURE Do*;
|
||||
VAR
|
||||
p : Args.Params;
|
||||
i: INTEGER;
|
||||
p : Args.Params;
|
||||
i: INTEGER;
|
||||
BEGIN
|
||||
Args.Get(p); (* Get Params *)
|
||||
FOR i := 0 TO p.argc - 1 DO
|
||||
StdLog.String(p.args[i] + ":>");StdLog.Bool(CheckBalance(p.args[i]));StdLog.Ln
|
||||
END
|
||||
Args.Get(p); (* Get Params *)
|
||||
FOR i := 0 TO p.argc - 1 DO
|
||||
StdLog.String(p.args[i] + ":>");StdLog.Bool(CheckBalance(p.args[i]));StdLog.Ln
|
||||
END
|
||||
END Do;
|
||||
|
||||
END Brackets.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue