2016-02-05 04:30:34 -05:00
|
|
|
import simple_print: *
|
2016-02-01 05:35:08 -05:00
|
|
|
/*
|
2016-01-30 22:04:37 -05:00
|
|
|
fun something(param: int): Something {
|
|
|
|
|
var to_ret.construct_with_param(param): Something
|
|
|
|
|
return to_ret
|
|
|
|
|
}
|
2016-01-20 13:50:40 -05:00
|
|
|
obj Something (ObjectTrait) {
|
|
|
|
|
var member: int
|
2016-01-28 12:55:51 -05:00
|
|
|
fun construct(): *Something {
|
2016-02-05 04:30:34 -05:00
|
|
|
println("Constructing a Something")
|
2016-01-28 12:55:51 -05:00
|
|
|
member = 1337
|
|
|
|
|
return this
|
|
|
|
|
}
|
2016-01-28 20:51:40 -05:00
|
|
|
fun construct_with_param(param: int): *Something {
|
2016-02-05 04:30:34 -05:00
|
|
|
println("Constructing a Something with a param")
|
2016-01-28 20:51:40 -05:00
|
|
|
member = param
|
|
|
|
|
return this
|
|
|
|
|
}
|
2016-01-28 12:55:51 -05:00
|
|
|
fun copy_construct(old: *Something) {
|
2016-02-05 04:30:34 -05:00
|
|
|
println("Copy Constructing a Something")
|
2016-01-28 12:55:51 -05:00
|
|
|
member = old->member
|
|
|
|
|
}
|
|
|
|
|
fun destruct() {
|
2016-02-05 04:30:34 -05:00
|
|
|
print("Destructing a Something: ")
|
|
|
|
|
println(member)
|
2016-01-28 12:55:51 -05:00
|
|
|
}
|
2016-01-22 23:59:59 -05:00
|
|
|
fun method(a: int):int {
|
2016-01-24 01:49:14 -05:00
|
|
|
return 5+a+member + other_method()
|
2016-01-20 13:50:40 -05:00
|
|
|
}
|
2016-01-24 01:49:14 -05:00
|
|
|
fun other_method(): int return 7;
|
2016-01-24 01:02:56 -05:00
|
|
|
fun return_this(): *Something {
|
|
|
|
|
return this;
|
|
|
|
|
}
|
2016-01-20 13:50:40 -05:00
|
|
|
}
|
2016-01-30 23:59:21 -05:00
|
|
|
fun return_something_p_1(it: Something): Something {
|
|
|
|
|
it.member += 11
|
|
|
|
|
return it
|
|
|
|
|
}
|
2016-02-01 05:35:08 -05:00
|
|
|
*/
|
2016-02-13 16:56:37 -05:00
|
|
|
/*fun id<T>(in: *T): *T return in;*/
|
2016-02-09 12:47:21 -05:00
|
|
|
/*fun id<T>(in: T): T return in;*/
|
2016-02-13 16:56:37 -05:00
|
|
|
/*
|
2016-02-04 23:32:47 -05:00
|
|
|
fun other_id<T>(in: T): T {
|
|
|
|
|
var a: T
|
|
|
|
|
a = in
|
2016-02-05 04:30:34 -05:00
|
|
|
println(id<T>(in))
|
2016-02-13 16:56:37 -05:00
|
|
|
println(id(in))
|
2016-02-04 23:32:47 -05:00
|
|
|
return in;
|
|
|
|
|
}
|
2016-02-13 16:56:37 -05:00
|
|
|
*/
|
2016-01-28 12:55:51 -05:00
|
|
|
/*
|
|
|
|
|
fun some_function(): int return 0;
|
|
|
|
|
fun some_other_function(in: bool): float {
|
|
|
|
|
return 0.0
|
|
|
|
|
}
|
|
|
|
|
*/
|
2016-02-13 16:56:37 -05:00
|
|
|
obj SimpleContainer<T> {
|
|
|
|
|
var data: T
|
2016-02-15 16:31:01 -05:00
|
|
|
fun print_data() {
|
|
|
|
|
var indirection: T
|
|
|
|
|
indirection = data
|
|
|
|
|
println(indirection)
|
|
|
|
|
}
|
|
|
|
|
fun construct(dataIn: T) data = dataIn
|
2016-02-13 16:56:37 -05:00
|
|
|
}
|
2016-01-10 18:26:31 -05:00
|
|
|
fun main(): int {
|
2016-02-13 16:56:37 -05:00
|
|
|
var it: SimpleContainer<*char>
|
|
|
|
|
it.data = "Wooo object template"
|
|
|
|
|
println(it.data)
|
2016-02-15 16:31:01 -05:00
|
|
|
it.data = "Wooo object template methods"
|
|
|
|
|
it.print_data()
|
|
|
|
|
var it2.construct(3): SimpleContainer<int>
|
|
|
|
|
it2.print_data()
|
2016-02-13 16:56:37 -05:00
|
|
|
/*println(other_id("Wooo function template inference"))*/
|
2016-02-09 02:59:38 -05:00
|
|
|
/*var a = id<int>(7)*/
|
|
|
|
|
/*println(a)*/
|
|
|
|
|
/*var b = id<int>(8)*/
|
2016-02-01 15:59:41 -05:00
|
|
|
/*var b = id<*char>("Double down time")*/
|
2016-02-05 04:30:34 -05:00
|
|
|
/*println(b)*/
|
2016-02-09 02:59:38 -05:00
|
|
|
/*println(id<char>("Double down time"))*/
|
|
|
|
|
/*println(other_id<*char>("Triple down time"))*/
|
2016-02-01 05:35:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*var test_methods = something(77)*/
|
|
|
|
|
/*var test_methods_param.construct_with_param(10090): Something*/
|
2016-02-05 04:30:34 -05:00
|
|
|
/*println("Constructing an object and printint its member, copy-constructing it, and printing that out, then letting both be destructed")*/
|
|
|
|
|
/*println(test_methods.member)*/
|
|
|
|
|
/*println(test_methods_param.member)*/
|
2016-02-01 05:35:08 -05:00
|
|
|
/*var second_obj = test_methods*/
|
|
|
|
|
/*second_obj.member += 5*/
|
2016-02-05 04:30:34 -05:00
|
|
|
/*println(second_obj.member)*/
|
2016-02-01 05:35:08 -05:00
|
|
|
/*[>var some = return_something_p_1(second_obj)<]*/
|
2016-02-05 04:30:34 -05:00
|
|
|
/*println(return_something_p_1(second_obj).member)*/
|
2016-01-30 22:04:37 -05:00
|
|
|
return 0
|
2016-01-28 12:55:51 -05:00
|
|
|
/*
|
|
|
|
|
var a_declaration:int
|
2016-02-05 04:30:34 -05:00
|
|
|
print(1 + 2)
|
2016-01-28 12:55:51 -05:00
|
|
|
var again = 2 + 4 - 1 * 400
|
2016-02-05 04:30:34 -05:00
|
|
|
print(again)
|
2016-01-28 12:55:51 -05:00
|
|
|
again = 2 + (4 - 1) * 400
|
2016-02-05 04:30:34 -05:00
|
|
|
print(again)
|
2016-01-28 12:55:51 -05:00
|
|
|
var another_declaration: int = 8.0
|
2016-02-05 04:30:34 -05:00
|
|
|
print(another_declaration)
|
2016-01-28 12:55:51 -05:00
|
|
|
var yet_another_declaration = "Hello Marcus\n"
|
2016-02-05 04:30:34 -05:00
|
|
|
print(yet_another_declaration)
|
|
|
|
|
print("Hello World!\n")
|
|
|
|
|
print(1337)
|
|
|
|
|
if (1 + 2 && false) print("its true!")
|
|
|
|
|
else print("its false!")
|
2016-01-24 17:31:41 -05:00
|
|
|
var counter = 10
|
|
|
|
|
counter--
|
|
|
|
|
--counter
|
2016-02-05 04:30:34 -05:00
|
|
|
while (counter) print(counter--)
|
|
|
|
|
print("\n")
|
2016-01-24 17:31:41 -05:00
|
|
|
counter = 8
|
|
|
|
|
while (counter) {
|
2016-02-05 04:30:34 -05:00
|
|
|
print(--counter)
|
2016-01-24 17:31:41 -05:00
|
|
|
if (counter == 2)
|
|
|
|
|
break
|
|
|
|
|
}
|
2016-02-05 04:30:34 -05:00
|
|
|
print("\n")
|
2016-01-24 17:31:41 -05:00
|
|
|
for (var j = 0; j < 10; j++;)
|
|
|
|
|
if (j%2) continue
|
2016-02-05 04:30:34 -05:00
|
|
|
else print(j)
|
2016-01-20 13:50:40 -05:00
|
|
|
var an_obj: Something
|
2016-01-21 19:16:29 -05:00
|
|
|
an_obj.member = 20
|
2016-02-05 04:30:34 -05:00
|
|
|
print(an_obj.member)
|
|
|
|
|
print("here is thing")
|
|
|
|
|
print(123)
|
|
|
|
|
print("\n")
|
|
|
|
|
print(an_obj.method(1))
|
|
|
|
|
print("\n")
|
|
|
|
|
print(string_id("WoooopsEee\n"))
|
2016-01-24 01:02:56 -05:00
|
|
|
var with_ptr = an_obj.return_this()
|
2016-02-05 04:30:34 -05:00
|
|
|
print(with_ptr->method(2))
|
|
|
|
|
print("\n")
|
2016-01-25 02:53:00 -05:00
|
|
|
{
|
2016-02-05 04:30:34 -05:00
|
|
|
defer print("should_be_third\n")
|
|
|
|
|
defer print("should_be_second\n")
|
|
|
|
|
print("should be first\n")
|
2016-01-25 02:53:00 -05:00
|
|
|
}
|
2016-01-25 22:48:41 -05:00
|
|
|
for (var i = 1; i < 10; i++;) {
|
2016-02-05 04:30:34 -05:00
|
|
|
defer println("OUTER:happens every time, even when breaking or continueing")
|
2016-01-25 22:48:41 -05:00
|
|
|
{
|
2016-02-05 04:30:34 -05:00
|
|
|
defer println("INNER:happens every time, even when breaking or continueing")
|
2016-01-25 22:48:41 -05:00
|
|
|
if (i % 2 == 0)
|
|
|
|
|
continue
|
|
|
|
|
if (i == 9)
|
|
|
|
|
break
|
2016-02-05 04:30:34 -05:00
|
|
|
println(i)
|
2016-01-25 22:48:41 -05:00
|
|
|
}
|
|
|
|
|
}
|
2016-02-05 04:30:34 -05:00
|
|
|
defer println("Here is a return defer outer")
|
2016-01-25 22:48:41 -05:00
|
|
|
{
|
2016-02-05 04:30:34 -05:00
|
|
|
defer println("Here is a return defer inner")
|
2016-01-25 22:48:41 -05:00
|
|
|
return 0
|
|
|
|
|
}
|
2016-01-28 12:55:51 -05:00
|
|
|
*/
|
2016-01-10 18:26:31 -05:00
|
|
|
}
|
2015-12-26 01:52:29 +00:00
|
|
|
|