Scope work progressing. Gotta fix bugs. Good save spot.

This commit is contained in:
Nathan Braswell
2014-12-19 18:29:33 -05:00
parent 5b57770774
commit 417e5ed898
11 changed files with 214 additions and 23 deletions

View File

@@ -0,0 +1,13 @@
Qualified io!
7
9
11
Qualified Container!
Even template functions qualified!
Unqualified io!
8
10
12
Unqualified Container!
Even template functions unqualified!

32
tests/newScoping.krak Normal file
View File

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

27
tests/scopeQualified.krak Normal file
View File

@@ -0,0 +1,27 @@
|int| qualified_variable = 7;
|int| qualified_func() { return 9; }
typedef qualified_class {
|int| number;
|qualified_class*| construct(|int| num) {
number = num;
return this;
}
|int| get() {
return number;
}
};
typedef template <T> qualified_container {
|T| data;
|qualified_container<T>*| construct(|T| dataIn) {
data = dataIn;
}
|T| get() {
return data;
}
};
template<T> |T| qualified_id(|T| it) {
return it;
}

View File

@@ -0,0 +1,27 @@
|int| unqualifed_variable = 8;
|int| unqualified_func() { return 10; }
typedef unqualified_class {
|int| number;
|qualified_class*| construct(|int| num) {
number = num;
return this;
}
|int| get() {
return number;
}
};
typedef template <T> unqualified_container {
|T| data;
|unqualified_container<T>*| construct(|T| dataIn) {
data = dataIn;
}
|T| get() {
return data;
}
};
template<T> |T| unqualified_id(|T| it) {
return it;
}