Port many tests and fix small bugs revealed in Kalypso (passes 24/72) - tests have also revealed more extensive features not yet implemented, and I seem to have messed up a test or two so that the C++ version also fails a couple more (it's at 59/71 now). Will investigate

This commit is contained in:
Nathan Braswell
2016-02-07 16:22:55 -05:00
parent 6aeb5c33f5
commit 11eba1ba07
39 changed files with 99 additions and 76 deletions

View File

@@ -22,6 +22,10 @@ fun println(to_print: double) {
print(to_print)
print("\n")
}
fun println(to_print: bool) {
print(to_print)
print("\n")
}
fun print(to_print: *char) {
__if_comp__ __C__ simple_passthrough(to_print::) """
printf("%s", to_print);
@@ -48,4 +52,8 @@ fun print(to_print: double) {
printf("%f", to_print);
"""
}
fun print(to_print: bool) {
if (to_print) print("true")
else print("false")
}

View File

@@ -1,4 +1,4 @@
import io:*;
import simple_print:*;
fun fibanacci(num: int): int {
if (num < 2)

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
fun retVoid() {
println("Woooo")

View File

@@ -5,5 +5,4 @@ Spam
We'll find out.
34
woo not
true
false

View File

@@ -1,8 +1,7 @@
import io:*
import string:*
import simple_print:*
fun main(): int {
io::println("Spam");
simple_print::println("Spam");
var x: int = 4;
x += 3;
x++;
@@ -11,15 +10,14 @@ fun main(): int {
var q :int = z+z;
var q2:int = z*3;
var q3:int = y + y;
io::println(q3);
io::println(z);
io::println(q);
simple_print::println(q3);
simple_print::println(z);
simple_print::println(q);
for (var i:int = 0; i < 20; i++;) z++;
if (z > 20) io::println("We'll find out.");
io::println(z);
if (z > 20) simple_print::println("We'll find out.");
simple_print::println(z);
var boolean = false
if ( z > 20 && !boolean)
io::println("woo not")
io::println(string("ab")[0] == 'a')
io::println('b' == 'a')
simple_print::println("woo not")
simple_print::println('b' == 'a')
}

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
obj BracketAssign {
fun operator[]=(index:int, rhs:int) {

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
fun main():int {
for (var i = 1; i < 10; i++;) {

View File

@@ -1,5 +1,5 @@
/*here*/
/*here*/import /*here*/io/*here*/:/*here*/*/*here*/
/*here*/import /*here*/simple_print/*here*/:/*here*/*/*here*/
/*here*/
/*here*/fun/*here*/ main/*here*/(/*here*/)/*here*/:/*here*/ int/*here*/ {/*here*/
/*here*/ println/*here*/( /*here*/1 /*here*/ )/*here*/

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
import vector:*
fun onlyMatch(vec: vector<int>, matchWith: int): vector<int> {

View File

@@ -1,5 +1,5 @@
import vector:*;
import io:*;
import simple_print:*;
fun test<T>(a: vector<T>): T {
return a.at(0);

View File

@@ -1,5 +1,5 @@
/* Comment first! */
import io:*;
import simple_print:*;
fun main(): int {
println(1337) /*how bout now*/

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
obj wDestructor {
var data: *char

View File

@@ -1,4 +1,4 @@
import io:*;
import simple_print:*;
fun main(): int {

View File

@@ -1,4 +1,4 @@
import io:*;
import simple_print:*;
fun ret1(): int {
return ret2() / 2;

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
obj Traited(Traits) {}

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
fun do_num(it: int) {
print("int: ")

View File

@@ -1,4 +1,4 @@
import io:*;
import simple_print:*;
obj firstObject {
var objectNum: int;

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
fun main():int {
println("multi

View File

@@ -1,4 +1,4 @@
import io:*;
import simple_print:*;
fun main(): int {

View File

@@ -1,32 +1,32 @@
import io;
import simple_print;
import scopeQualified;
import scopeUnqualified : * ;
fun main(): int {
io::println("Qualified io!");
simple_print::println("Qualified simple_print!");
// Defined in scopeQualified
io::println(scopeQualified::qualified_variable);
io::println(scopeQualified::qualified_func());
simple_print::println(scopeQualified::qualified_variable);
simple_print::println(scopeQualified::qualified_func());
var qClass.construct(11): scopeQualified::qualified_class;
io::println(qClass.get());
simple_print::println(qClass.get());
var sayQualified.construct("Qualified Container!"): scopeQualified::qualified_container<*char>;
io::println(sayQualified.get());
io::println(scopeQualified::qualified_id<*char>("Even template functions qualified!"));
simple_print::println(sayQualified.get());
simple_print::println(scopeQualified::qualified_id<*char>("Even template functsimple_printns qualified!"));
io::println();
simple_print::println();
io::println("Unqualified io!");
simple_print::println("Unqualified simple_print!");
// Defined in scopeUnqualified
io::println(unqualifed_variable);
io::println(unqualified_func());
simple_print::println(unqualifed_variable);
simple_print::println(unqualified_func());
var uqClass.construct(12): unqualified_class;
io::println(uqClass.get());
simple_print::println(uqClass.get());
var sayUnqualified.construct("Unqualified Container!"): unqualified_container<*char>;
io::println(sayUnqualified.get());
io::println(unqualified_id<*char>("Even template functions unqualified!"));
simple_print::println(sayUnqualified.get());
simple_print::println(unqualified_id<*char>("Even template functsimple_printns unqualified!"));
return 0;
}

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
fun main(): int {
println("no semicolons!")

View File

@@ -1,4 +1,4 @@
import io:*;
import simple_print:*;
obj objectA {
var a: int;

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
fun oneLine1():void println(7)
fun oneLine2():int return 8

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
obj test_cons(Object) {
fun construct(): *test_cons {

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
import sameNameOne
import sameNameTwo

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
fun is_true():bool {
return true

View File

@@ -1,4 +1,4 @@
import io;
import simple_print;
obj TemplateTest<T,J> {

View File

@@ -1,10 +1,10 @@
import io;
import simple_print;
obj FirstObject {
var objectNum: int;
fun PrintSelf(a: int): void {
io::print(objectNum);
io::print(a);
simple_print::print(objectNum);
simple_print::print(a);
}
};
@@ -12,6 +12,6 @@ fun main(): int {
var wooObject: FirstObject;
wooObject.objectNum = 5;
wooObject.PrintSelf(7);
io::print("\n");
simple_print::print("\n");
return 0;
}

View File

@@ -1,4 +1,4 @@
import io:*
import simple_print:*
obj templd<T> {
var data: T

View File

@@ -1,4 +1,4 @@
import io:*;
import simple_print:*;
import trivial_container:*;
obj TemplateTest<T> {

View File

@@ -1,5 +1,4 @@
import io:*;
import mem:*;
import simple_print:*;
fun main(): int {
var b: int;

View File

@@ -1,10 +1,10 @@
import io;
import simple_print;
var a: int = 42;
var b = "hi";
fun main(): int {
io::println(a);
io::println(b);
simple_print::println(a);
simple_print::println(b);
return 0;
}

View File

@@ -1,4 +1,4 @@
import io:*;
import simple_print:*;
import math:*;
fun main(): int

View File

@@ -1,4 +1,4 @@
import io;
import simple_print;
obj ClassWithConstructor {
var data: int;
@@ -7,7 +7,7 @@ obj ClassWithConstructor {
return this;
}
fun printData(): void {
io::println(data);
simple_print::println(data);
}
};
@@ -15,6 +15,6 @@ fun main(): int {
var object.construct(4): ClassWithConstructor;
object.printData();
var a :int = 8;
io::println(a);
simple_print::println(a);
return 0;
}

View File

@@ -1,5 +1,5 @@
import util:*
import io:*
import simple_print:*
obj test(Object) {
var counter:int