Plov : test1
PROGRAM test1 BEGIN END test1Compiles in Plov004
Plov : test2
PROGRAM test2 CONSTANTS pi = 314 ee = 272 END BEGIN END test2Compiles in Plov004
Plov : test3
PROGRAM test3 CONSTANTS pi = 314 ee = 272 END VARIABLES A B C Def GhYh J123 NH4NO3 END BEGIN END test3Compiles in Plov004
Plov : test4
PROGRAM test4 CONSTANTS pi = 314 ee = 272 END VARIABLES A B C Def GhYh J123 NH4NO3 END PROCEDURE AddItUp BEGIN END AddItUp BEGIN AddItUp END test4Compiles in Plov004
Plov : test5
PROGRAM test5 CONSTANTS pi = 314 ee = 272 END VARIABLES A B C Def GhYh J123 NH4NO3 END BEGIN END test5Compiles in Plov004
Plov : test6
PROGRAM test6
CONSTANTS pi = 314159
ee = 271828
years = 2007
days = 31
END
VARIABLES temp
press
NH3
H2SO4
nitrogen
END
PROCEDURE Measure
BEGIN
END Measure
PROCEDURE Blow
BEGIN
END Blow
BEGIN
LOOP
Measure
Blow
EXIT
END
END test6
Compiles in Plov004
Plov : test7
PROGRAM test7 CONSTANTS nrOf = 12 PINcode = 1153 ZIPcode = 5012 END VARIABLES aantal sum avg END BEGIN END test7Compiles in Plov004
Plov : test8
PROGRAM test8
CONSTANTS nrOf = 12
PINcode = 1153
ZIPcode = 5012
END
VARIABLES aantal sum avg END
BEGIN
LOOP
IF sum < avg THEN EXIT END
END
END test8
Compiles in Plov004
Plov : test9
PROGRAM test9 CONSTANTS nrOf = 12 PINcode = 1153 ZIPcode = 5012 END VARIABLES aantal sum avg END BEGIN sum := sum + nrOf aantal := sum + avg END test9Compiles in Plov004 Plov : test10
PROGRAM test10 CONSTANTS pi = 314159625 ee = 271828182 END VARIABLES temp Fahr press time result END BEGIN temp := temp + 273 Fahr := 32 + temp x 5 : 4 END test10Compiles in Plov004
Plov : test 11
PROGRAM test11
CONSTANTS pi = 314159625
ee = 271828182
END
VARIABLES temp
Fahr
press
time
result
END
PROCEDURE Blow
BEGIN
temp := temp + 273
Fahr := 32 + temp x 5 : 4
END Blow
BEGIN
LOOP
Blow
EXIT
END
temp := temp + 273
Fahr := 32 + temp x 5 : 4
END test11
Plov : test 12
PROGRAM test12 CONSTANTS pi = 314159625 ee = 271828182 END VARIABLES temp Fahr Kelvin result END PROCEDURE Blow BEGIN temp := temp + 273 Fahr := 32 + temp x 5 : 4 END Blow BEGIN Kelvin := temp + 273 Fahr := 32 + temp x 5 : 4 result := ( Fahr - 32 ) x 4 / 5 END test12
Plov : test 13
PROGRAM test13 CONSTANTS pi = 314159625 ee = 271828182 END VARIABLES temp Fahr Kelvin result END PROCEDURE Blow BEGIN temp := temp + 273 Fahr := 32 + temp x 5 : 4 END Blow BEGIN result := ( Fahr - 32 ) END test13
Plov : test 14
PROGRAM test14 CONSTANTS pi = 314159625 ee = 271828182 END VARIABLES temp x Fahr Kelvin result END PROCEDURE Blow BEGIN temp := temp + 273 Fahr := 32 + temp x 5 : 4 END Blow BEGIN Kelvin := temp + 273 Fahr := 32 + temp x 5 : 4 result := ( Fahr - 32 ) . x / 5 END test14
Plov : test 15
PROGRAM test15 CONSTANTS pi = 314159625 ee = 271828182 offset = 273 END VARIABLES temp x Fahr Kelvin result END PROCEDURE Blow BEGIN IF temp < Kelvin - offset THEN temp := temp + 273 END Fahr := 32 + temp x 5 : 4 END Blow BEGIN Kelvin := temp + 273 Fahr := 32 + temp x 5 : 4 result := ( Fahr - 32 ) . x / 5 END test15
Plov : test 16
PROGRAM test16 CONSTANTS pi = 314159625 ee = 271828182 END VARIABLES temp x Fahr Kelvin result END PROCEDURE Blow BEGIN temp := temp + 273 Fahr := 32 + temp x 5 : 4 END Blow BEGIN Kelvin := temp + 273 IF Kelvin = 300 THEN Kelvin := 10 END Fahr := 32 + temp x 5 : 4 result := ( Fahr - 32 ) . x / 5 END test16
Plov : test 17
PROGRAM test17
CONSTANTS pi = 314159625
ee = 271828182
END
VARIABLES temp
x
Fahr
Kelvin
result
END
PROCEDURE Blow
BEGIN
temp := temp + 273
LOOP
Fahr := 32 + temp x 5 : 4
IF Fahr < 0 THEN EXIT END
x := x + 1
END
IF result > 0 THEN RETURN END
RETURN
END Blow
PROCEDURE rewind
BEGIN
REPEAT
x := x + ee
UNTIL x > 0
END rewind
BEGIN
Kelvin := temp + 273
LOOP
Kelvin := Kelvin + ee
LOOP
Fahr := ee + x
IF Fahr > 12 THEN EXIT END
Fahr := Fahr - 1
END
IF Kelvin = 10000 THEN EXIT END
Kelvin := ee
END
IF Kelvin = 300 THEN Kelvin := 10 END
Fahr := 32 + temp x 5 : 4
result := ( Fahr - 32 ) . x / 5
END test17
Compiles well in Plov006
Plov : test18
PROGRAM test18
CONSTANTS pi = 314159625
ee = 271828182
END
VARIABLES temp
x
Fahr
Kelvin
result
END
PROCEDURE Blow
BEGIN
temp := temp + 273
LOOP
Fahr := 32 + temp x 5 : 4
IF Fahr < 0 THEN EXIT END
x := x + 1
END
IF result > 0 THEN RETURN END
RETURN
END Blow
PROCEDURE rewind
LOCAL aap noot mies END
BEGIN
x := 1
REPEAT
x := x + ee
UNTIL x > 0
END rewind
BEGIN
Kelvin := temp + 273
LOOP
Kelvin := Kelvin + ee
LOOP
Fahr := ee + x
IF Fahr > 12 THEN EXIT END
Fahr := Fahr - 1
END
IF Kelvin = 10000 THEN EXIT END
Kelvin := ee
END
IF Kelvin = 300 THEN Kelvin := 10 END
Fahr := 32 + temp x 5 : 4
result := ( Fahr - 32 ) . x / 5
END test18
Plov : test18a
PROGRAM test18a
CONSTANTS pi = 314159625
ee = 271828182
END
VARIABLES temp
x
Fahr
Kelvin
result
END
PROCEDURE Blow
BEGIN
temp := temp + 273
LOOP
Fahr := 32 + temp x 5 : 4
IF Fahr < 0 THEN EXIT END
x := x + 1
END
IF result > 0 THEN RETURN END
RETURN
END Blow
PROCEDURE rewind
LOCAL aap noot mies END
BEGIN
x := 1
REPEAT
x := x + ee
aap := noot - mies
UNTIL x > 0
END rewind
BEGIN
Kelvin := temp + 273
LOOP
Kelvin := Kelvin + ee
LOOP
Fahr := ee + x
IF Fahr > 12 THEN EXIT END
Fahr := Fahr - 1
END
IF Kelvin = 10000 THEN EXIT END
Kelvin := ee
END
IF Kelvin = 300 THEN Kelvin := 10 END
rewind
Fahr := 32 + temp x 5 : 4
result := ( Fahr - 32 ) . x / 5
END test18a
Plov : test19
PROGRAM test19
VARIABLES a b c d END
BEGIN
IF a < 10 THEN
b := 12
ELSIF a < 20 THEN
IF a < c THEN
a := b - c
ELSIF a > b THEN
a := a : 2
ELSIF d = 12 THEN
d := d x 1
ELSE
a := c
END
ELSIF a > 40 THEN
d := 0
ELSE
a := b + c x d
END
END test19
Nested IF. And it compiles fine with Plov007!
Plov : Test from Wikipedia
Wikipedis have an article about PL/0: http://en.wikipedia.org/wiki/PL/0 and there is a test program for the PL/0 compiler. I adapted the source to suit PLOV:
PROGRAM wikitest
CONSTANTS m = 7
n = 85
END
VARIABLES x
y
z
q
r
END
PROCEDURE MULTIPLY
LOCAL a b END
BEGIN
a := x
b := y
z := 0
WHILE b > 0 DO
IF ODD b THEN z := z + a END
a := 2 * a
b := b / 2
END
END MULTIPLY
PROCEDURE DIVIDE
LOCAL w END
BEGIN
r := x
q := 0
w := y
WHILE w <= r DO w := 2 * w END
WHILE w > y DO
q := 2 * q
w := w / 2
IF w <= r THEN
r := r - w
q := q + 1
END
END
END DIVIDE
PROCEDURE Gcd
LOCAL f g END
BEGIN
f := x
g := y
WHILE f # g DO
IF f < g THEN g := g - f END
IF g < f THEN f := f - g END
END;
z := f
END Gcd
BEGIN
x := m
y := n
CALL MULTIPLY
x := 25
y := 3
CALL DIVIDE
x := 84
y := 36
CALL Gcd
END wikitest
Compiles.
Plov : test20
PROGRAM test20
VARIABLES a b c d e f g h i j k END
BEGIN
LOOP
REPEAT
a := a + 1
UNTIL a = 20
b := a
IF b = 12 THEN EXIT END
c := a + b x c - d
k := a - j x 2
END
END test20
Plov : test21
PROGRAM test21
VARIABLES a b c d e f g h i j k END
BEGIN
LOOP
REPEAT
a := a + 1
UNTIL a = 20
b := a
IF b = 12 THEN EXIT END
c := a + b x c - d
k := a - j x 2
END
PALO
Ik ben een dwaze ui
The second InLine line
The third
If only this was PALO!
END
END test21
Plov : test22
PROGRAM test22
CONSTANTS m = 7
n = 85
END
VARIABLES x
y
z
q
r
END
PROCEDURE MULTIPLY
LOCAL a b END
BEGIN
a := x
b := y
z := 0
WHILE b MOD 2 = 1 DO
IF b = 1 THEN
z := z + a
a := a - n
END
a := a + a
b := b / 2
END
END MULTIPLY
PROCEDURE DIVIDE
LOCAL w END
BEGIN
r := x
q := 0
w := y
WHILE w <= r DO
w := w + w
z := y + 1
END
WHILE w > y DO
q := q + q
w := w / 2
IF w <= r THEN
r := r - w
q := q + 1
END
END
END DIVIDE
PROCEDURE Gcd
LOCAL f g END
BEGIN
f := x
g := y
WHILE f # g DO
IF f < g THEN
g := g - f
q := f + g
END
IF g < f THEN
f := f - g
r := m . x
END
END
z := f
END Gcd
BEGIN
x := m
y := n
MULTIPLY
x := 25
y := 3
DIVIDE
x := 84
y := 36
Gcd
END test22
Plov : test23
PROGRAM test23
CONSTANTS m = 7
n = 85
END
VARIABLES x
y
z
q
r
END
PROCEDURE 1MULTIPLY
LOCAL a b END
BEGIN
a := x
b := y
z := 0
WHILE b MOD 2 = 1 DO
IF b = 1 THEN
z := z + a
a := a - n
END
a := a + a
b := b / 2
END
END MULTIPLY
PROCEDURE DIVIDE
LOCAL w END
BEGIN
r := x
q := 0
w := y
WHILE w <= r DO
w := w + w
z := y + 1
END
WHILE w > y DO
q := q + q
w := w / 2
IF w <= r THEN
r := r - w
q := q + 1
END
END
END DIVIDE
PROCEDURE Gcd
LOCAL f g END
BEGIN
f := x
g := y
WHILE f # g DO
IF f < g THEN
g := g - f
q := f + g
END
IF g < f THEN
f := f - g
r := m . x
END
END
z := f
END Gcd
BEGIN
x := m
y := n
MULTIPLY
x := 25
y := 3
DIVIDE
x := 84
y := 36
Gcd
END test23
Plov : test24
PROGRAM testt CONSTANTS a = 1 END VARIABLES ab END PROCEDURE hhhhhhh LOCAL aa ss END BEGIN aa := ss + 22 aa := 0 END hhhhhhh BEGIN ab := a + 1 END testt
Plov : test25
PROGRAM test25 PROCESSOR ATmega8535 CONSTANTS a = 1 END VARIABLES ab END PROCEDURE hhhhhhh var1 var2 LOCAL aa ss END BEGIN aa := ss + 22 INC ab ss := var1 * var2 END hhhhhhh BEGIN ab := a + 1 hhhhhhh ab 2 END test25
Plov : test26
PROGRAM test26
PROCESSOR ATmega8515
CONSTANTS m = 7
n = b1001,0101
END
VARIABLES x
y
z
q
r
END
PROCEDURE MULTIPLY p q
BEGIN
z := 0
WHILE q MOD 2 = 1 DO
IF q = 1 THEN z := z + p END
p := p SHL 1
q := q SHR 1
END
END MULTIPLY
PROCEDURE DIVIDE t n
LOCAL w END
BEGIN
t := x
q := 0
n := y
WHILE n <= t DO n := n SHL 1 END
WHILE n > y DO
q := q SHL 1
n := n SHR 1
IF n <= t THEN
t := t - n
INC q
END
END
END DIVIDE
PROCEDURE Gcd
LOCAL f g END
BEGIN
f := x
g := y
WHILE f # g DO
IF f < g THEN
g := g - f
q := f + g
END
IF g < f THEN
f := f - g
r := m . x
END
END
z := f
END Gcd
IRQ 1 = Gcd
BEGIN
MULTIPLY m n
DIVIDE x y
x := 84
y := 36
Gcd
END test26
Plov : test27
PROGRAM test27
PROCESSOR ATmega8535
VARIABLES AAA a b c d e f g h i j k END
PROCEDURE gobble a b c
BEGIN
IF a < b THEN
c := d
b := a - 1
e := f . g
i := 1
ELSIF a = b THEN
d := c
g := f . i
k := j MOD d
ELSIF b > a THEN
h := 2
k := i - 1
ELSE
d := 0
END
END gobble
BEGIN
gobble 1 2 3
END test27
Plov : test28
PROGRAM test28 PROCESSOR ATmega8515 CONSTANTS aa = 12 END VARIABLES a aaa b bab END BEGIN a := aaa SHL aa bab := 1 SHR a b := aa MOD 3 aaa := aaa + 1 a := aa DIV b END test28
Plov : test29
PROGAM test29
CONSTANTS zz = 12 END
VARIABLES a b c d e f g h i j k END
PROCEDURE gobble a
b
c
BEGIN
IF a @ b THEN
c := d
e := f . g
i := 1
ELSIF a MOD b THEN
d := c
g := f . i
k := j % d
ELSIF b > a THEN
h := 2
k := i - 1
ELSE
d := 0
END
END goble
BEGIN
gobble 1
2 k
END test2
Plov : test30
PROGRAM test30 PROCESSOR ATmega8515 CONSTANTS Ser0 = 101 Ser1 = 105 DTR0 = 102 DTR1 = 118 END VARIABLES a b cc ddd END BEGIN a := UCSRA b := PORTD cc := EEARL INC PORTA DEC PORTB EEARL := DTR0 RXCIE := 1 END test30
Plov : testIRQ
PROGRAM testIRQ PROCESSOR AT90S8515 VARIABLES a x y z END PROCEDURE OpenGate BEGIN a := x + y END OpenGate PROCEDURE CloseGate BEGIN x := y - a END CloseGate IRQ 0 = OpenGate IRQ 1 = CloseGate BEGIN OpenGate END testIRQ
Page created on 12 October 2007 and
Page equipped with FroogleBuster technology