Some bugfixes/added errors, convert most to not use simple_passthrough
This commit is contained in:
@@ -1,121 +0,0 @@
|
||||
import io:*
|
||||
import grammer:*
|
||||
import parser:*
|
||||
import lexer:*
|
||||
import string:*
|
||||
import util:*
|
||||
import symbol:*
|
||||
import tree:*
|
||||
import serialize:*
|
||||
|
||||
fun main():int {
|
||||
|
||||
/*var a.construct(): grammer*/
|
||||
// delay construction until unserialization or copy_construction now
|
||||
var a: grammer
|
||||
|
||||
var file_name = string("../krakenGrammer.kgm")
|
||||
/*var file_name = string("../simplifiedKrakenGrammer.kgm")*/
|
||||
/*var file_name = string("grammer.kgm")*/
|
||||
|
||||
var compiled_name = file_name + string(".comp_new")
|
||||
var file_contents = read_file(file_name)
|
||||
var loaded_and_valid = false
|
||||
|
||||
if (file_exists(compiled_name)) {
|
||||
println("cached file exists")
|
||||
var pos = 0
|
||||
var binary = read_file_binary(compiled_name)
|
||||
println("read file!")
|
||||
var cached_contents = string()
|
||||
println("made tmp string!")
|
||||
unpack(cached_contents, pos) = unserialize<string>(binary, pos)
|
||||
println("unserialized the string!")
|
||||
if (cached_contents == file_contents) {
|
||||
println("loaded_and_valid, using cached version!")
|
||||
loaded_and_valid = true
|
||||
/*unpack(a, pos) = unserialize<grammer>(binary, pos)*/
|
||||
// avoid extra copies
|
||||
pos = a.unserialize(binary, pos)
|
||||
println("finished unserializeing!!")
|
||||
} else {
|
||||
println("file contents do not match:")
|
||||
println("CACHED:")
|
||||
println(cached_contents)
|
||||
println("REAL:")
|
||||
println(file_contents)
|
||||
println("END")
|
||||
}
|
||||
} else {
|
||||
println("cached file does not exist")
|
||||
}
|
||||
if (!loaded_and_valid) {
|
||||
println("Not loaded_and_valid, re-generating and writing out")
|
||||
/*a = load_grammer(file_contents)*/
|
||||
// copy construct now
|
||||
a.copy_construct(&load_grammer(file_contents))
|
||||
println("grammer loaded, calculate_first_set")
|
||||
a.calculate_first_set()
|
||||
println("grammer loaded, calculate_state_automaton")
|
||||
a.calculate_state_automaton()
|
||||
println("calculated, writing out")
|
||||
write_file_binary(compiled_name, serialize(file_contents) + serialize(a))
|
||||
println("done writing")
|
||||
}
|
||||
/*println(a.to_string())*/
|
||||
var doFirstSet = fun() {
|
||||
println("///////////////////START FIRST SET/////////////")
|
||||
println("//TERMINALS//")
|
||||
a.terminals.for_each( fun(terminal: util::pair<symbol::symbol, regex::regex>) {
|
||||
var set_str = string::string("{ ")
|
||||
a.first_set_map[terminal.first].for_each( fun(sym: symbol::symbol) {
|
||||
set_str += sym.to_string() + ", "
|
||||
})
|
||||
set_str += "}"
|
||||
print(terminal.first.to_string() + " first: " + set_str + "\n")
|
||||
})
|
||||
println("//NON TERMINALS//")
|
||||
a.non_terminals.for_each( fun(non_terminal: symbol::symbol) {
|
||||
var set_str = string::string("{ ")
|
||||
a.first_set_map[non_terminal].for_each( fun(sym: symbol::symbol) {
|
||||
set_str += sym.to_string() + ", "
|
||||
})
|
||||
set_str += "}"
|
||||
print(non_terminal.to_string() + " first: " + set_str + "\n")
|
||||
println()
|
||||
})
|
||||
println("///////////////////END FIRST SET/////////////")
|
||||
}
|
||||
/*doFirstSet()*/
|
||||
|
||||
println(a.to_string())
|
||||
a.parse_table.print_string()
|
||||
var lex = lexer(a.terminals)
|
||||
|
||||
lex.set_input(read_file(string("to_parse.krak")))
|
||||
/*lex.set_input(string("ccdahas spacedhas*/
|
||||
/*returndaaaaaaaaaaaaaa"))*/
|
||||
//lex.set_input(string("hibyed"))
|
||||
println("woo lexing:")
|
||||
range(8).for_each(fun(i: int) { println(lex.next().to_string()); } )
|
||||
/*range(80).for_each(fun(i: int) { println(lex.next().to_string()); } )*/
|
||||
|
||||
|
||||
var parse.construct(a): parser
|
||||
/*var result = parse.parse_input(string("a"), string("fun name"))*/
|
||||
/*var result = parse.parse_input(read_file(string("test_adt.krak")), string("fun name"))*/
|
||||
var result = parse.parse_input(read_file(string("to_parse.krak")), string("fun name"))
|
||||
/*var result = parse.parse_input(string("inport a;"), string("fun name"))*/
|
||||
/*var result = parse.parse_input(string("fun main():int { return 0; }"), string("fun name"))*/
|
||||
/*var result = parse.parse_input(string("ad"), string("fun name"))*/
|
||||
/*var result = parse.parse_input(string("hibyed"), string("fun name"))*/
|
||||
/*var result = parse.parse_input(string("hmmhmmend"), string("fun name"))*/
|
||||
/*var result = parse.parse_input(string("hid"), string("fun name"))*/
|
||||
println("the tree")
|
||||
println(syntax_tree_to_dot(result))
|
||||
write_file(string("syntax_tree.dot"), syntax_tree_to_dot(result))
|
||||
/*var parse.construct(): parser*/
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
3.141593
|
||||
@@ -1,15 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
krakenPath="../build/kraken"
|
||||
#testDir=${1:-"../tests"}
|
||||
testDir="."
|
||||
ext=${2:-"krak"}
|
||||
|
||||
fileList=""
|
||||
for dir in `find ${testDir} -type f -name "test_*.${ext}"`; do
|
||||
filename=$(basename ${dir})
|
||||
filename="${filename%.*}"
|
||||
fileList+=\ $testDir\/$filename
|
||||
done
|
||||
|
||||
${krakenPath} "--test" ${fileList}
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
obj Vec2 {
|
||||
var x: int;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
fun fibanacci(num: int): int {
|
||||
if (num < 2)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun retVoid() {
|
||||
println("Woooo")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun main(): int {
|
||||
simple_print::println("Spam");
|
||||
io::println("Spam");
|
||||
var x: int = 4;
|
||||
x += 3;
|
||||
x++;
|
||||
@@ -10,16 +10,16 @@ fun main(): int {
|
||||
var q :int = z+z;
|
||||
var q2:int = z*3;
|
||||
var q3:int = y + y;
|
||||
simple_print::println(q3);
|
||||
simple_print::println(z);
|
||||
simple_print::println(q);
|
||||
io::println(q3);
|
||||
io::println(z);
|
||||
io::println(q);
|
||||
for (var i:int = 0; i < 20; i++;) z++;
|
||||
if (z > 20) simple_print::println("We'll find out.");
|
||||
simple_print::println(z);
|
||||
if (z > 20) io::println("We'll find out.");
|
||||
io::println(z);
|
||||
var boolean = false
|
||||
if ( z > 20 && !boolean)
|
||||
simple_print::println("woo not")
|
||||
simple_print::println('b' == 'a')
|
||||
io::println("woo not")
|
||||
io::println('b' == 'a')
|
||||
println(3|5)
|
||||
println(3^5)
|
||||
println(3&5)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
obj BracketAssign {
|
||||
fun operator[]=(index:int, rhs:int) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun main():int {
|
||||
for (var i = 1; i < 10; i++;) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*here*/
|
||||
/*here*/import /*here*/simple_print/*here*/:/*here*/*/*here*/
|
||||
/*here*/import /*here*/io/*here*/:/*here*/*/*here*/
|
||||
/*here*/
|
||||
/*here*/fun/*here*/ main/*here*/(/*here*/)/*here*/:/*here*/ int/*here*/ {/*here*/
|
||||
/*here*/ println/*here*/( /*here*/1 /*here*/ )/*here*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
import vector:*
|
||||
|
||||
fun onlyMatch(vec: vector<int>, matchWith: int): vector<int> {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import vector:*;
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
fun test<T>(a: vector<T>): T {
|
||||
return a.at(0);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun func(it: ref int) {
|
||||
it++
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Comment first! */
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
fun main(): int {
|
||||
println(1337) /*how bout now*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun Comparable<T>(): Comparable<T> {
|
||||
var toRet : Comparable<T>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun main(): int {
|
||||
println(#sizeof<char>)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun main():int {
|
||||
println((65) cast char)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
import mem:*;
|
||||
|
||||
obj ClassWithConstructor {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
obj wDestructor {
|
||||
var data: *char
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
|
||||
fun main(): int {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import simple_print;
|
||||
import io;
|
||||
|
||||
fun nothing(): void {}
|
||||
|
||||
fun main(): int {
|
||||
nothing();
|
||||
simple_print::println("It was nothing");
|
||||
io::println("It was nothing");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ ext fun printf(format_str: *char, actual_str: *char): int
|
||||
|
||||
fun main():int {
|
||||
printf("%s", "Hello extern!\n")
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
fun addAndPrint<T,J>(a: T, b: J): void {
|
||||
print(a+b);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
obj FuncObj {
|
||||
fun operator()(a:int, b:*char): void {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
fun ret1(): int {
|
||||
return ret2() / 2;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
obj Traited(Traits) {}
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import simple_print;
|
||||
import io;
|
||||
|
||||
fun addAndPrint<T>(a: T, b: T): T {
|
||||
simple_print::print(a+b);
|
||||
io::print(a+b);
|
||||
return a+b;
|
||||
}
|
||||
|
||||
fun main(): int {
|
||||
addAndPrint<int>(10,12);
|
||||
simple_print::print("\n");
|
||||
io::print("\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun test(): void {
|
||||
println(9)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun do_num(it: int) {
|
||||
print("int: ")
|
||||
|
||||
BIN
tests/test_math
Executable file
BIN
tests/test_math
Executable file
Binary file not shown.
7
tests/test_math.expected_results
Normal file
7
tests/test_math.expected_results
Normal file
@@ -0,0 +1,7 @@
|
||||
atan = 3.141593
|
||||
atan2 = 0.000000
|
||||
acos = 0.000000
|
||||
asin = 3.141593
|
||||
tan = 0.990050
|
||||
cos = 1.000000
|
||||
sin = 0.000000
|
||||
@@ -1,13 +1,10 @@
|
||||
import simple_print:*;
|
||||
import math:*;
|
||||
import io:*
|
||||
import math:*
|
||||
|
||||
fun main(): int
|
||||
{
|
||||
var STD_PI = 3.12159265
|
||||
var ans: double;
|
||||
var STD_PI: double = 4.0*atan(1.0);
|
||||
println(STD_PI);
|
||||
|
||||
/*
|
||||
ans = 4.0*atan(1.0);
|
||||
print("atan = ");
|
||||
println(ans);
|
||||
@@ -35,6 +32,5 @@ fun main(): int
|
||||
ans = sin(0.0);
|
||||
print("sin = ");
|
||||
println(ans);
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import mem:*;
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
obj AnObject {
|
||||
var a: int;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
obj firstObject {
|
||||
var objectNum: int;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
import trivial_container:*;
|
||||
|
||||
obj RegularObject {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun main():int {
|
||||
println("multi
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
|
||||
fun main(): int {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
Qualified simple_print!
|
||||
Qualified io!
|
||||
7
|
||||
9
|
||||
11
|
||||
Qualified Container!
|
||||
Even template functions qualified!
|
||||
|
||||
Unqualified simple_print!
|
||||
Unqualified io!
|
||||
8
|
||||
10
|
||||
12
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
import simple_print;
|
||||
import io;
|
||||
import scopeQualified;
|
||||
import scopeUnqualified : * ;
|
||||
|
||||
fun main(): int {
|
||||
simple_print::println("Qualified simple_print!");
|
||||
io::println("Qualified io!");
|
||||
|
||||
// Defined in scopeQualified
|
||||
simple_print::println(scopeQualified::qualified_variable);
|
||||
simple_print::println(scopeQualified::qualified_func());
|
||||
io::println(scopeQualified::qualified_variable);
|
||||
io::println(scopeQualified::qualified_func());
|
||||
var qClass.construct(11): scopeQualified::qualified_class;
|
||||
simple_print::println(qClass.get());
|
||||
io::println(qClass.get());
|
||||
|
||||
var sayQualified.construct("Qualified Container!"): scopeQualified::qualified_container<*char>;
|
||||
simple_print::println(sayQualified.get());
|
||||
simple_print::println(scopeQualified::qualified_id<*char>("Even template functions qualified!"));
|
||||
io::println(sayQualified.get());
|
||||
io::println(scopeQualified::qualified_id<*char>("Even template functions qualified!"));
|
||||
|
||||
simple_print::println();
|
||||
io::println();
|
||||
|
||||
simple_print::println("Unqualified simple_print!");
|
||||
io::println("Unqualified io!");
|
||||
// Defined in scopeUnqualified
|
||||
simple_print::println(unqualifed_variable);
|
||||
simple_print::println(unqualified_func());
|
||||
io::println(unqualifed_variable);
|
||||
io::println(unqualified_func());
|
||||
var uqClass.construct(12): unqualified_class;
|
||||
simple_print::println(uqClass.get());
|
||||
io::println(uqClass.get());
|
||||
|
||||
var sayUnqualified.construct("Unqualified Container!"): unqualified_container<*char>;
|
||||
simple_print::println(sayUnqualified.get());
|
||||
simple_print::println(unqualified_id<*char>("Even template functions unqualified!"));
|
||||
io::println(sayUnqualified.get());
|
||||
io::println(unqualified_id<*char>("Even template functions unqualified!"));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun main(): int {
|
||||
println("no semicolons!")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
obj ConTest {
|
||||
var a: int
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
obj objectA {
|
||||
var a: int;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun oneLine1():void println(7)
|
||||
fun oneLine2():int return 8
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun main():int {
|
||||
var message = "thingy: "
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
obj test_cons(Object) {
|
||||
fun construct(): *test_cons {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
import sameNameOne
|
||||
import sameNameTwo
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun is_true():bool {
|
||||
return true
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
fun addAndPrintInt(a: int, b: int): int {
|
||||
print(a+b);
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import simple_print;
|
||||
import io;
|
||||
|
||||
|
||||
obj TemplateTest<T,J> {
|
||||
var a: T;
|
||||
var b: J;
|
||||
fun print(): void {
|
||||
simple_print::print("a: ");
|
||||
simple_print::print(a);
|
||||
simple_print::print("\n");
|
||||
simple_print::print("b: ");
|
||||
simple_print::print(b);
|
||||
simple_print::print("\n");
|
||||
io::print("a: ");
|
||||
io::print(a);
|
||||
io::print("\n");
|
||||
io::print("b: ");
|
||||
io::print(b);
|
||||
io::print("\n");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import simple_print;
|
||||
import io;
|
||||
|
||||
|
||||
obj TemplateTest<T> {
|
||||
var a: int;
|
||||
var b: T;
|
||||
fun print(): void {
|
||||
simple_print::print("a: ");
|
||||
simple_print::print(a);
|
||||
simple_print::print("\n");
|
||||
simple_print::print("b: ");
|
||||
simple_print::print(b);
|
||||
simple_print::print("\n");
|
||||
io::print("a: ");
|
||||
io::print(a);
|
||||
io::print("\n");
|
||||
io::print("b: ");
|
||||
io::print(b);
|
||||
io::print("\n");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import simple_print;
|
||||
import io;
|
||||
|
||||
obj FirstObject {
|
||||
var objectNum: int;
|
||||
fun PrintSelf(a: int): void {
|
||||
simple_print::print(objectNum);
|
||||
simple_print::print(a);
|
||||
io::print(objectNum);
|
||||
io::print(a);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -12,6 +12,6 @@ fun main(): int {
|
||||
var wooObject: FirstObject;
|
||||
wooObject.objectNum = 5;
|
||||
wooObject.PrintSelf(7);
|
||||
simple_print::print("\n");
|
||||
io::print("\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
obj templd<T> {
|
||||
var data: T
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
import trivial_container:*;
|
||||
|
||||
obj TemplateTest<T> {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
obj it {
|
||||
fun operator+<U>(other: U): it {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
obj Object<T> {
|
||||
var data: T
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
fun main(): int {
|
||||
var b: int;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import simple_print;
|
||||
import io;
|
||||
|
||||
var a: int = 42;
|
||||
var b = "hi";
|
||||
|
||||
fun main(): int {
|
||||
simple_print::println(a);
|
||||
simple_print::println(b);
|
||||
io::println(a);
|
||||
io::println(b);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print:*;
|
||||
import io:*;
|
||||
|
||||
obj NoTraits {};
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import simple_print;
|
||||
import io;
|
||||
|
||||
obj ClassWithConstructor {
|
||||
var data: int;
|
||||
@@ -7,7 +7,7 @@ obj ClassWithConstructor {
|
||||
return this;
|
||||
}
|
||||
fun printData(): void {
|
||||
simple_print::println(data);
|
||||
io::println(data);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -15,6 +15,6 @@ fun main(): int {
|
||||
var object.construct(4): ClassWithConstructor;
|
||||
object.printData();
|
||||
var a :int = 8;
|
||||
simple_print::println(a);
|
||||
io::println(a);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import util:*
|
||||
import simple_print:*
|
||||
import io:*
|
||||
|
||||
obj test(Object) {
|
||||
var counter:int
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import simple_print;
|
||||
import io;
|
||||
|
||||
obj trivialContainer<T> {
|
||||
var data: T;
|
||||
fun print(): void {
|
||||
simple_print::print(data);
|
||||
io::print(data);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user