Skip to content

Commit 8d13f59

Browse files
author
Alexey
committed
Added AST parsing
1 parent e5b1077 commit 8d13f59

10 files changed

+154
-0
lines changed

milk_examples/array.milk

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
var temp := [0, 0, 0];
2+
var new := []; // empty array declaration
3+
var array := temp + new;
4+
print ("Array before insertion : ");
5+
for i in array loop
6+
print i;
7+
end
8+
9+
// adding elements
10+
array[4] := 55.5;
11+
array[5] := 7*9;
12+
array[6] := "experience";
13+
array[7] := [5, 4];
14+
15+
print "Array after insertion : ";
16+
for i in array
17+
loop
18+
print i;
19+
end

milk_examples/array_two.milk

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
var arr := ["cherry", "pie", "or", "cherry", "truffle"];
2+
3+
for a in arr
4+
loop
5+
print a;
6+
end
7+
8+
var range := [5000.07, 204, 555.90, 78];
9+
var t := {one:=1, two:=2, three:=3, four:=4};
10+
var total := 0;
11+
12+
for n in t
13+
loop
14+
total := total + range[n];
15+
end
16+
print total;

milk_examples/basic.milk

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
var firstNumber := 10;
2+
var secondNumber := 20;
3+
var result := 0;
4+
5+
result := firstNumber + secondNumber;
6+
print result;

milk_examples/comparison.milk

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
var x := 0;
2+
var y := 1;
3+
var z:= 4;
4+
5+
if x > y and x > z then
6+
if y > z then
7+
print z; // z is minimum
8+
else
9+
print y; // y is minimum
10+
end
11+
else
12+
if y > x and y > z then
13+
if x > z then
14+
print z; // z is minimum
15+
else
16+
print x; // x is minimum
17+
end
18+
else
19+
if z > x and z > y then
20+
if x > y then
21+
print y; // y is minimum
22+
else
23+
print x; // x is minimum
24+
end
25+
end
26+
end
27+
end

milk_examples/equations.milk

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
var x := 15;
2+
var y := 36;
3+
4+
print "The max var from x and y is "; // 36
5+
if x > y then
6+
print x;
7+
else
8+
print y;
9+
end
10+
11+
var mult := x * y;
12+
13+
print "x * y = ";
14+
print mult; //540

milk_examples/for_loop.milk

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
var str := readString;
2+
3+
for char in str loop
4+
print char;
5+
end;

milk_examples/functions.milk

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
var c;
2+
c := func (x, y, z) is
3+
var count := 0;
4+
while x >= y loop
5+
if y > z then
6+
y := y + 1;
7+
else
8+
z := z - 1;
9+
end
10+
count := count + 1;
11+
end
12+
return count;
13+
end;
14+
print c(10, 5, 7); //9

milk_examples/if_clauses.milk

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
ar positiveNumber := true;
2+
var evenNumber := true;
3+
if (positiveNumber and evenNumber) then
4+
print "number is even and positive";
5+
end
6+
7+
if (positiveNumber or evenNumber) then
8+
print "number is even or positive or both even and positive";
9+
end
10+
11+
if (positiveNumber xor evenNumber) then
12+
print "number is even or positive";
13+
end
14+
15+
if (not positiveNumber) then
16+
print "number is negative";
17+
else
18+
print "number is positive";
19+
endc

milk_examples/operations.milk

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
var inumber1 := 10;
2+
var inumber2 := 2;
3+
var rnumber1 := 2.4;
4+
var rnumber2 := 0.1;
5+
var result;
6+
7+
result := inumber1 + rnumber2;
8+
print result; //10.1
9+
10+
result := inumber1 - inumber2;
11+
print result; //8
12+
13+
result := inumber1 * rnumber1;
14+
print result; //24.0
15+
16+
result := inumber1 / rnumber1;
17+
print result; //4.16

milk_examples/while_loop.milk

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
var testArray := [1];
2+
var weirdStruct := {testArray};
3+
4+
var test := 1;
5+
weirdStruct := weirdStruct + {test} ;// Now it should be like this { Array, Array size }
6+
7+
var i := (5-4);
8+
while ( i < 10/2 ) loop //Will go from 1 to 4 (5 not included)
9+
test.1 := test.1 + test.1;
10+
test.2 := test.2 + 1;
11+
12+
i := i + 1;
13+
end
14+
15+
print "Array is", test.1, "While size is ", test.2; // Allow printing of arrays???
16+
17+
print "Array is", test.1, "While size is ", test.2; // Allow printing of arrays???

0 commit comments

Comments
 (0)