Skip to content
This repository was archived by the owner on Jun 7, 2020. It is now read-only.

Commit ae630fc

Browse files
authored
Merge pull request #63 from thejoeejoee/develop
Release [1.4.6]
2 parents 7725c41 + 466e736 commit ae630fc

File tree

23 files changed

+360
-1
lines changed

23 files changed

+360
-1
lines changed

ifj2017/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
from os import path
33

44
__PROJECT_ROOT__ = path.join(path.abspath(path.dirname(__file__)), '..')
5-
__version__ = version = '1.4.5'
5+
__version__ = version = '1.4.6'

ifj2017/tests/04_expressions/42.code

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
' maximum for C integer
2+
3+
scope
4+
dim a as double = 1.79761e+308
5+
print a;
6+
end scope

ifj2017/tests/04_expressions/tests.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@
8787
{
8888
"name": "41",
8989
"stdout": " 2147483647"
90+
},
91+
{
92+
"name": "42",
93+
"stdout": " 1.79769e+308"
9094
}
9195
]
9296
}

ifj2017/tests/13_cycles/02.code

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
' Basic UNTIL loop
2+
3+
scope
4+
dim i as integer
5+
6+
do until i > 10
7+
print i;
8+
i = i + 1
9+
loop
10+
end scope

ifj2017/tests/13_cycles/03.code

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
' Simple do ... loop while
2+
3+
scope
4+
dim i as integer
5+
6+
do
7+
print i;
8+
i = i + 2
9+
loop while i < 9
10+
end scope

ifj2017/tests/13_cycles/04.code

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
'Infinite loop with exit
2+
3+
scope
4+
dim i as integer
5+
6+
do
7+
i = i + 1
8+
9+
if i > 10 then
10+
exit do
11+
else
12+
i = i + 1
13+
print i;
14+
end if
15+
loop
16+
end scope

ifj2017/tests/13_cycles/05.code

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
'Continue in nested loops
2+
3+
scope
4+
dim i as integer
5+
dim j as integer
6+
7+
do while i < 10
8+
j = 0
9+
do until j > 8
10+
j = j + 1
11+
if i = 5 then
12+
Continue do
13+
else
14+
j = j + 1
15+
end if
16+
print j;
17+
loop
18+
19+
print !"\n";
20+
i = i + 1
21+
loop
22+
end scope

ifj2017/tests/13_cycles/06.code

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'Exit in nested loops
2+
3+
scope
4+
dim i as integer
5+
dim j as integer
6+
7+
do
8+
i = i + 1
9+
j = 0
10+
11+
do until j > 100
12+
j = j + 1
13+
14+
if j > 10 then
15+
exit do
16+
else
17+
i = i + 1
18+
end if
19+
print j;
20+
loop
21+
22+
print i;
23+
24+
if i > 100 then
25+
exit do
26+
else
27+
i = i + 1
28+
end if
29+
print !",";
30+
loop
31+
end scope

ifj2017/tests/13_cycles/07.code

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
'Simple for cycle
2+
3+
scope
4+
dim i as integer
5+
6+
for i = 1 to 4
7+
print i;
8+
next
9+
end scope

ifj2017/tests/13_cycles/08.code

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
'For loop with new variable
2+
3+
scope
4+
for i as integer = 20 to 25
5+
print i;
6+
i = i + 1
7+
next
8+
end scope

ifj2017/tests/13_cycles/09.code

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
'For loop with step
2+
3+
scope
4+
for i as double = 0.5 to 5.0 step 0.5
5+
print i;
6+
next
7+
end scope

ifj2017/tests/13_cycles/10.code

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
'Nested do and for loops
2+
3+
scope
4+
dim i as integer
5+
6+
do
7+
for j as integer = i to i + 5
8+
print j;
9+
next
10+
print !"\n";
11+
i = i + 1
12+
loop while i < 5
13+
end scope

ifj2017/tests/13_cycles/11.code

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
'Exit from nested do loops (do, do)
2+
3+
scope
4+
dim i as integer
5+
6+
do while i < 5
7+
do while i < 3
8+
print i;
9+
if i >= 2 then
10+
exit do, do
11+
else
12+
i = i + 1
13+
end if
14+
loop
15+
i = i + 1
16+
loop
17+
end scope

ifj2017/tests/13_cycles/12.code

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
'Exit from nested loops (for, for)
2+
3+
scope
4+
for i as integer = 3 to 6
5+
for j as integer = i to 4
6+
print j;
7+
exit for, for
8+
next
9+
next
10+
end scope

ifj2017/tests/13_cycles/13.code

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
'For next with iterator
2+
3+
scope
4+
dim max as integer = 6
5+
dim s as integer = 2
6+
7+
for i as integer = 0 to max step s
8+
print i;
9+
next i
10+
end scope

ifj2017/tests/13_cycles/14.code

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
'Lots of computation with loops
2+
3+
function pow (b as integer, e as integer) as integer
4+
dim result as integer = 1
5+
6+
for i as integer = 1 to e
7+
result = result * b
8+
next i
9+
return result
10+
end function
11+
12+
scope
13+
dim i as double = 0 - 450
14+
dim j as integer
15+
16+
for num as integer = 0 to 20 step 20
17+
j = num
18+
do while num > j - 19
19+
i = i + num
20+
num = num - 1
21+
loop
22+
i = i * 0.5
23+
next num
24+
25+
i = pow (i, 3)
26+
print i;
27+
end scope

ifj2017/tests/13_cycles/15.code

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
'Iterator name collision
2+
3+
scope
4+
dim i as integer
5+
6+
i = 20
7+
8+
for i as double = 0 to 1 step 0.125
9+
print i;
10+
next i
11+
12+
print i;
13+
end scope

ifj2017/tests/13_cycles/tests.json

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,62 @@
33
{
44
"name": "01",
55
"stdout": " 20 19 18 17 16 15 14 13 12 11 11 10 10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0"
6+
},
7+
{
8+
"name": "02",
9+
"stdout": " 0 1 2 3 4 5 6 7 8 9 10"
10+
},
11+
{
12+
"name": "03",
13+
"stdout": " 0 2 4 6 8"
14+
},
15+
{
16+
"name": "04",
17+
"stdout": " 2 4 6 8 10"
18+
},
19+
{
20+
"name": "05",
21+
"stdout": " 2 4 6 8 10\n 2 4 6 8 10\n 2 4 6 8 10\n 2 4 6 8 10\n 2 4 6 8 10\n\n 2 4 6 8 10\n 2 4 6 8 10\n 2 4 6 8 10\n 2 4 6 8 10\n"
22+
},
23+
{
24+
"name": "06",
25+
"stdout": " 1 2 3 4 5 6 7 8 9 10 11, 1 2 3 4 5 6 7 8 9 10 23, 1 2 3 4 5 6 7 8 9 10 35, 1 2 3 4 5 6 7 8 9 10 47, 1 2 3 4 5 6 7 8 9 10 59, 1 2 3 4 5 6 7 8 9 10 71, 1 2 3 4 5 6 7 8 9 10 83, 1 2 3 4 5 6 7 8 9 10 95, 1 2 3 4 5 6 7 8 9 10 107"
26+
},
27+
{
28+
"name": "07",
29+
"stdout": " 1 2 3 4"
30+
},
31+
{
32+
"name": "08",
33+
"stdout": " 20 22 24"
34+
},
35+
{
36+
"name": "09",
37+
"stdout": " 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5"
38+
},
39+
{
40+
"name": "10",
41+
"stdout": " 0 1 2 3 4 5\n 1 2 3 4 5 6\n 2 3 4 5 6 7\n 3 4 5 6 7 8\n 4 5 6 7 8 9\n"
42+
},
43+
{
44+
"name": "11",
45+
"stdout": " 0 1 2"
46+
},
47+
{
48+
"name": "12",
49+
"stdout": " 3"
50+
},
51+
{
52+
"name": "13",
53+
"stdout": " 0 2 4 6"
54+
},
55+
{
56+
"name": "14",
57+
"stdout": " 6859000"
58+
},
59+
{
60+
"name": "15",
61+
"stdout": " 0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1 20"
662
}
763
],
864
"extensions": [
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
' GLOBAL, SCOPE
2+
3+
scope
4+
dim i as integer
5+
6+
do while i < 4
7+
static counter as integer
8+
counter = counter + 1
9+
print counter;
10+
i = i + 1
11+
loop
12+
end scope

ifj2017/tests/42_combination_of_extensions/tests.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@
4949
"GLOBAL",
5050
"IFTHEN"
5151
]
52+
},
53+
{
54+
"name": "06",
55+
"stdout": " 1 2 3 4",
56+
"extensions": [
57+
"GLOBAL",
58+
"SCOPE"
59+
]
5260
}
5361
]
5462
}

ifj2017/tests/96_programs/14.code

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'Reverse string function
2+
3+
function Reverse_str(s as string) as string
4+
dim str_len as integer = length(s)
5+
dim reversed as string
6+
7+
dim i as integer
8+
do while i < str_len
9+
reversed = reversed + substr(s, str_len - i, 1)
10+
i = i + 1
11+
loop
12+
13+
return reversed
14+
end function
15+
16+
scope
17+
dim s as string
18+
input s
19+
s = reverse_str(s)
20+
print s;
21+
end scope

0 commit comments

Comments
 (0)