2016-07-03 23:07:34 -07:00
|
|
|
import io: *
|
2016-07-06 00:16:39 -07:00
|
|
|
import os: *
|
|
|
|
|
import string: *
|
|
|
|
|
import ast_nodes: *
|
|
|
|
|
|
2016-07-09 00:45:40 -07:00
|
|
|
obj first {
|
|
|
|
|
var p1: *char
|
|
|
|
|
var p2: char
|
|
|
|
|
var p3: int
|
|
|
|
|
}
|
|
|
|
|
obj second {
|
|
|
|
|
var p1: *char
|
|
|
|
|
var p2: char
|
|
|
|
|
var p3: short
|
|
|
|
|
}
|
|
|
|
|
obj third {
|
|
|
|
|
var p1: *char
|
|
|
|
|
var p2: long
|
|
|
|
|
var p3: char
|
|
|
|
|
}
|
|
|
|
|
obj fourth {
|
|
|
|
|
var p1: char
|
|
|
|
|
var p2: *char
|
|
|
|
|
var p3: long
|
|
|
|
|
}
|
|
|
|
|
obj fifth {
|
|
|
|
|
var p1: *char
|
|
|
|
|
var p2: char
|
|
|
|
|
}
|
|
|
|
|
obj sixth {
|
|
|
|
|
var p1: *char
|
|
|
|
|
var p2: char
|
|
|
|
|
var p3: long
|
|
|
|
|
}
|
|
|
|
|
obj seventh {
|
|
|
|
|
var p1: char
|
|
|
|
|
var p2: *char
|
|
|
|
|
var p3: long
|
|
|
|
|
}
|
|
|
|
|
obj eigth {
|
|
|
|
|
var p1: short
|
|
|
|
|
var p2: char
|
|
|
|
|
}
|
|
|
|
|
obj ninth {
|
|
|
|
|
var p1: *char
|
|
|
|
|
var p2: short
|
|
|
|
|
}
|
|
|
|
|
obj tenth {
|
|
|
|
|
var p1: char
|
|
|
|
|
var p2: ninth
|
|
|
|
|
}
|
|
|
|
|
|
2016-07-06 00:16:39 -07:00
|
|
|
fun compare_sizes<T>() {
|
|
|
|
|
var a = #sizeof<T>
|
|
|
|
|
var b = #ctce(#sizeof<T>)
|
|
|
|
|
println(a == b)
|
|
|
|
|
if (a != b)
|
|
|
|
|
println(string() + a + " is not the same size as " + b)
|
|
|
|
|
}
|
2016-07-03 23:07:34 -07:00
|
|
|
|
|
|
|
|
fun main(): int {
|
|
|
|
|
var a = #ctce(1+2)
|
|
|
|
|
println(a)
|
|
|
|
|
println(#ctce("junkhello, world"+4))
|
2016-07-06 00:16:39 -07:00
|
|
|
for (var i = 0; i < 10; i++;) {
|
|
|
|
|
println(#ctce(fun(): *char {
|
|
|
|
|
println("\n\n=====During CTCE!=====\n\n")
|
|
|
|
|
var it = from_system_command(string("echo From Shell"), 100)
|
|
|
|
|
return it.toCharArray()
|
|
|
|
|
}()))
|
|
|
|
|
}
|
2016-07-09 00:45:40 -07:00
|
|
|
compare_sizes<first>()
|
|
|
|
|
compare_sizes<second>()
|
|
|
|
|
compare_sizes<third>()
|
|
|
|
|
compare_sizes<fourth>()
|
|
|
|
|
compare_sizes<fifth>()
|
|
|
|
|
compare_sizes<sixth>()
|
|
|
|
|
compare_sizes<seventh>()
|
|
|
|
|
compare_sizes<eigth>()
|
|
|
|
|
compare_sizes<ninth>()
|
|
|
|
|
compare_sizes<tenth>()
|
|
|
|
|
|
2016-07-06 00:16:39 -07:00
|
|
|
compare_sizes<string>()
|
|
|
|
|
compare_sizes<ast_node>()
|
2016-07-09 00:45:40 -07:00
|
|
|
compare_sizes<translation_unit>()
|
|
|
|
|
compare_sizes<import>()
|
|
|
|
|
compare_sizes<identifier>()
|
|
|
|
|
compare_sizes<type_def>()
|
|
|
|
|
compare_sizes<adt_def>()
|
|
|
|
|
compare_sizes<function>()
|
|
|
|
|
compare_sizes<template>()
|
|
|
|
|
compare_sizes<code_block>()
|
|
|
|
|
compare_sizes<if_statement>()
|
|
|
|
|
compare_sizes<match_statement>()
|
|
|
|
|
compare_sizes<case_statement>()
|
|
|
|
|
compare_sizes<while_loop>()
|
|
|
|
|
compare_sizes<for_loop>()
|
|
|
|
|
compare_sizes<return_statement>()
|
|
|
|
|
compare_sizes<branching_statement>()
|
|
|
|
|
compare_sizes<defer_statement>()
|
|
|
|
|
compare_sizes<assignment_statement>()
|
|
|
|
|
compare_sizes<declaration_statement>()
|
|
|
|
|
compare_sizes<if_comp>()
|
|
|
|
|
compare_sizes<simple_passthrough>()
|
|
|
|
|
compare_sizes<function_call>()
|
|
|
|
|
compare_sizes<compiler_intrinsic>()
|
|
|
|
|
compare_sizes<cast>()
|
|
|
|
|
compare_sizes<value>()
|
2016-07-03 23:07:34 -07:00
|
|
|
return 0
|
|
|
|
|
}
|