123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- MODULE m;
- CONST
- ch1 = "a";
- constI = 12;
- TYPE
- Base = RECORD
- END;
- PBase = POINTER TO Base;
- Derived = RECORD(Base)
- i: INTEGER
- END;
- PDerived = POINTER TO Derived;
- Derived2 = RECORD(Base)
- i2: INTEGER
- END;
- PDerived2 = POINTER TO Derived2;
- T = RECORD
- b: PBase
- END;
- VAR i: INTEGER;
- b1: BOOLEAN;
- i1: INTEGER;
- byte: BYTE;
- c: CHAR;
- PROCEDURE caseIntByVar(VAR i: INTEGER);
- BEGIN
- CASE i OF
- | 1:
- i := 1;
- END;
- END caseIntByVar;
- PROCEDURE caseRef(VAR p: Base);
- PROCEDURE passRef(p: Derived); END passRef;
- PROCEDURE passRefVar(VAR p: Derived2); END passRefVar;
- BEGIN
- CASE p OF
- | Derived:
- passRef(p);
- | Derived2:
- passRefVar(p);
- END;
- END caseRef;
- PROCEDURE casePointer(p: PBase);
- PROCEDURE passRef(p: Derived); END passRef;
- PROCEDURE passRefVar(VAR p: Derived2); END passRefVar;
- BEGIN
- CASE p OF END;
- CASE p OF
- |
- END;
- CASE p OF
- | PDerived:
- passRef(p^);
- | PDerived2:
- passRefVar(p^);
- END;
- CASE p OF
- | PDerived:
- p.i := 0;
- END;
- CASE p OF
- | PDerived:
- p.i := 0;
- | PDerived2:
- p.i2 := 0;
- END;
- END casePointer;
- PROCEDURE caseExpression(r: T);
- BEGIN
- CASE r.b OF
- | PDerived:
- | PDerived2:
- END;
- END caseExpression;
- PROCEDURE casePointerDereference(p: PBase);
- BEGIN
- CASE p^ OF
- | Derived:
- | Derived2:
- END;
- END casePointerDereference;
- PROCEDURE casePointerByVar(VAR p: PBase);
- BEGIN
- CASE p OF
- | PDerived:
- | PDerived2:
- END;
- END casePointerByVar;
- BEGIN
- CASE i1 OF END;
- CASE i1 OF
- |
- END;
- CASE i1 OF
- | 1: b1 := FALSE
- END;
- CASE 123 OF 1: b1 := TRUE END;
- CASE i1 OF
- 1: i := 2
- | 2: i := 3; b1 := FALSE
- END;
- CASE i1 OF
- 1: i := 2
- | 2: i := 3; b1 := FALSE
- END;
- CASE i1 OF
- 1, 2, 3: i := 4
- | constI: i := constI
- | 4..5: i := 5
- | 6, 7..10: b1 := TRUE
- END;
- CASE byte OF
- 1: i := 2
- | 257: i := 3
- | 4..constI: i := 5
- END;
- CASE c OF
- "A": i := 1
- | ch1: i := 2
- | "B", "C": i := 2
- | "D".."F", "I", "J": i:=3
- | "K".."Z": b1:= TRUE
- END;
- CASE ch1 OF
- "A": i := 1
- END;
- CASE "A" OF
- ch1: i := 1
- END;
- CASE constI OF
- 1: i := 1
- END;
- CASE 123 OF
- 1: i := 1
- END
- END m.
|