diff --git a/src/res/result.1.txt b/src/res/result.1.txt new file mode 100644 index 0000000..961c870 --- /dev/null +++ b/src/res/result.1.txt @@ -0,0 +1,73 @@ + +C-MINUS COMPILATION: ./test.1.txt + 4: reserved word: int + 4: ID, name= gcd + 4: ( + 4: reserved word: int + 4: ID, name= u + 4: , + 4: reserved word: int + 4: ID, name= v + 4: ) + 5: { + 6: reserved word: if + 6: ( + 6: ID, name= v + 6: == + 6: NUM, val= 0 + 6: ) + 6: reserved word: return + 6: ID, name= u + 6: ; + 7: reserved word: else + 7: reserved word: return + 7: ID, name= gcd + 7: ( + 7: ID, name= v + 7: , + 7: ID, name= u + 7: - + 7: ID, name= u + 7: / + 7: ID, name= v + 7: * + 7: ID, name= v + 7: ) + 7: ; + 9: } + 11: reserved word: void + 11: ID, name= main + 11: ( + 11: reserved word: void + 11: ) + 12: { + 13: reserved word: int + 13: ID, name= x + 13: ; + 13: reserved word: int + 13: ID, name= y + 13: ; + 14: ID, name= x + 14: = + 14: ID, name= input + 14: ( + 14: ) + 14: ; + 14: ID, name= y + 14: = + 14: ID, name= input + 14: ( + 14: ) + 14: ; + 15: ID, name= output + 15: ( + 15: ID, name= gcd + 15: ( + 15: ID, name= x + 15: , + 15: ID, name= y + 15: ) + 15: ) + 15: ; + 16: } + 17: EOF diff --git a/src/res/result.2.txt b/src/res/result.2.txt new file mode 100644 index 0000000..4733083 --- /dev/null +++ b/src/res/result.2.txt @@ -0,0 +1,77 @@ + +C-MINUS COMPILATION: ./test.2.txt + 1: reserved word: void + 1: ID, name= main + 1: ( + 1: reserved word: void + 1: ) + 2: { + 3: reserved word: int + 3: ID, name= i + 3: ; + 3: reserved word: int + 3: ID, name= x + 3: [ + 3: NUM, val= 5 + 3: ] + 3: ; + 5: ID, name= i + 5: = + 5: NUM, val= 0 + 5: ; + 6: reserved word: while + 6: ( + 6: ID, name= i + 6: < + 6: NUM, val= 5 + 6: ) + 7: { + 8: ID, name= x + 8: [ + 8: ID, name= i + 8: ] + 8: = + 8: ID, name= input + 8: ( + 8: ) + 8: ; + 10: ID, name= i + 10: = + 10: ID, name= i + 10: + + 10: NUM, val= 1 + 10: ; + 11: } + 13: ID, name= i + 13: = + 13: NUM, val= 0 + 13: ; + 14: reserved word: while + 14: ( + 14: ID, name= i + 14: <= + 14: NUM, val= 4 + 14: ) + 15: { + 16: reserved word: if + 16: ( + 16: ID, name= x + 16: [ + 16: ID, name= i + 16: ] + 16: != + 16: NUM, val= 0 + 16: ) + 17: { + 18: ID, name= output + 18: ( + 18: ID, name= x + 18: [ + 18: ID, name= i + 18: ] + 18: ) + 18: ; + 19: } + 20: } + 21: } + 22: EOF diff --git a/src/res/test.1.result.txt b/src/res/test.1.result.txt new file mode 100644 index 0000000..30accda --- /dev/null +++ b/src/res/test.1.result.txt @@ -0,0 +1,73 @@ + +C-MINUS COMPILATION: ./res/test.1.txt + 4: reserved word: int + 4: ID, name= gcd + 4: ( + 4: reserved word: int + 4: ID, name= u + 4: , + 4: reserved word: int + 4: ID, name= v + 4: ) + 5: { + 6: reserved word: if + 6: ( + 6: ID, name= v + 6: == + 6: NUM, val= 0 + 6: ) + 6: reserved word: return + 6: ID, name= u + 6: ; + 7: reserved word: else + 7: reserved word: return + 7: ID, name= gcd + 7: ( + 7: ID, name= v + 7: , + 7: ID, name= u + 7: - + 7: ID, name= u + 7: / + 7: ID, name= v + 7: * + 7: ID, name= v + 7: ) + 7: ; + 9: } + 11: reserved word: void + 11: ID, name= main + 11: ( + 11: reserved word: void + 11: ) + 12: { + 13: reserved word: int + 13: ID, name= x + 13: ; + 13: reserved word: int + 13: ID, name= y + 13: ; + 14: ID, name= x + 14: = + 14: ID, name= input + 14: ( + 14: ) + 14: ; + 14: ID, name= y + 14: = + 14: ID, name= input + 14: ( + 14: ) + 14: ; + 15: ID, name= output + 15: ( + 15: ID, name= gcd + 15: ( + 15: ID, name= x + 15: , + 15: ID, name= y + 15: ) + 15: ) + 15: ; + 16: } + 17: EOF diff --git a/src/res/test.1.txt b/src/res/test.1.txt new file mode 100644 index 0000000..478c5e4 --- /dev/null +++ b/src/res/test.1.txt @@ -0,0 +1,16 @@ +/* A program to perform Euclid's + Algorithm to computer gcd */ + +int gcd (int u, int v) +{ + if (v == 0) return u; + else return gcd(v,u-u/v*v); + /* u-u/v*v == u mod v */ +} + +void main(void) +{ + int x; int y; + x = input(); y = input(); + output(gcd(x,y)); +} diff --git a/src/res/test.2.result.txt b/src/res/test.2.result.txt new file mode 100644 index 0000000..d9c6a7b --- /dev/null +++ b/src/res/test.2.result.txt @@ -0,0 +1,77 @@ + +C-MINUS COMPILATION: ./res/test.2.txt + 1: reserved word: void + 1: ID, name= main + 1: ( + 1: reserved word: void + 1: ) + 2: { + 3: reserved word: int + 3: ID, name= i + 3: ; + 3: reserved word: int + 3: ID, name= x + 3: [ + 3: NUM, val= 5 + 3: ] + 3: ; + 5: ID, name= i + 5: = + 5: NUM, val= 0 + 5: ; + 6: reserved word: while + 6: ( + 6: ID, name= i + 6: < + 6: NUM, val= 5 + 6: ) + 7: { + 8: ID, name= x + 8: [ + 8: ID, name= i + 8: ] + 8: = + 8: ID, name= input + 8: ( + 8: ) + 8: ; + 10: ID, name= i + 10: = + 10: ID, name= i + 10: + + 10: NUM, val= 1 + 10: ; + 11: } + 13: ID, name= i + 13: = + 13: NUM, val= 0 + 13: ; + 14: reserved word: while + 14: ( + 14: ID, name= i + 14: <= + 14: NUM, val= 4 + 14: ) + 15: { + 16: reserved word: if + 16: ( + 16: ID, name= x + 16: [ + 16: ID, name= i + 16: ] + 16: != + 16: NUM, val= 0 + 16: ) + 17: { + 18: ID, name= output + 18: ( + 18: ID, name= x + 18: [ + 18: ID, name= i + 18: ] + 18: ) + 18: ; + 19: } + 20: } + 21: } + 22: EOF diff --git a/src/res/test.2.txt b/src/res/test.2.txt new file mode 100644 index 0000000..80bc4fa --- /dev/null +++ b/src/res/test.2.txt @@ -0,0 +1,21 @@ +void main(void) +{ + int i; int x[5]; + + i = 0; + while( i < 5 ) + { + x[i] = input(); + + i = i + 1; + } + + i = 0; + while( i <= 4 ) + { + if( x[i] != 0 ) + { + output(x[i]); + } + } +} diff --git a/src/test.cm b/src/res/test.cm similarity index 100% rename from src/test.cm rename to src/res/test.cm