Fix nested closures and related bugs

This commit is contained in:
Nathan Braswell
2015-07-05 02:34:45 -04:00
parent d44ce47d1e
commit cfadf7cebb
13 changed files with 101 additions and 56 deletions

View File

@@ -1,4 +1,6 @@
# comment
a = b ;
b = "c" ;
b = "c" "d" ;
b = c "d" ;
c = "a" | d ;
d = "hasreturn" ;

View File

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

View File

@@ -1,4 +1,6 @@
import io;
import io:*
import string:*
fun main(): int {
io::println("Spam");
var x: int = 4;
@@ -18,4 +20,6 @@ fun main(): int {
var boolean = false
if ( z > 20 && !boolean)
io::println("woo not")
io::println(string("ab")[0] == 'a')
io::println('b' == 'a')
}

View File

@@ -1,2 +1,5 @@
4
7
129
222
129

View File

@@ -35,8 +35,21 @@ fun main():int {
var it: ToClose
it.testMethod()
it.testVariable()
//var a = 7
//mem::safe_recursive_delete(&a, fun(it: int*): set::set<int*> { return set::set(it); } )
var a = 129
var b = 222
fun() {
fun() {
println(a)
}()
}()
var c = fun() {
println(b)
fun() {
println(a)
}()
}
c()
return 0
}

View File

@@ -3,8 +3,8 @@ import grammer:*
import string:*
fun main():int {
var a = load_grammer(string("../krakenGrammer.kgm"))
/*var a = load_grammer(string("grammer.kgm"))*/
/*var a = load_grammer(string("../krakenGrammer.kgm"))*/
var a = load_grammer(string("grammer.kgm"))
println(a.to_string())
return 0
}

View File

@@ -1,8 +0,0 @@
import io:*
fun main():int {
var wa: fun():*int
var wb: *fun():int
var wc: *fun():*int
return 0
}

View File

@@ -9,5 +9,7 @@ a
now win!
true
false
true
false
2
lines

View File

@@ -22,6 +22,8 @@ fun main(): int {
io::println(newWay)
io::println( string::string("yes") == string::string("yes") )
io::println( string::string("no") == string::string("yes") )
io::println( string::string("yes") == "yes")
io::println( string::string("no") == "yes")
string::string("2\nlines").lines().for_each(fun(i: string::string) io::println(i);)
return 0;
}