Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type struct {
- str label1;
- str label2;
- str label3;
- str label4;
- } as strings;
- label0 = strings {
- "a",
- "b",
- "c",
- "d"
- }
- label1 = cstr "string";
- label2 = cf32 1234.0f;
- label3 = ci32 4;
- label4 = ci8 0x00000000;
- label5 = array<i32> {
- 1, 2, 3, 4, 5
- };
- label6 = dict<str, i32>;
- division = func(i8 x, i8 y) {
- ret_x = i32 0;
- ret_y = i32 0;
- div [ret_x], x, y;
- mod [ret_y], x, y;
- return i32 ret_x; // returns append to a list
- return i32 ret_y; // returns don't exit scope, use break instead
- // break<2> i32 ret_x, ret_y;
- // return<2> i32 ret_x, ret_y;
- };
- multiply = func(i8... x) {
- i32 count = @x;
- if(count <= 1) {
- printf [], "Not enough args! \n";
- raise OOArgs; // raise exits scope
- }
- i32 out = x[0];
- loop i=1, count, i++ {
- mul [out], out, x[i];
- }
- return i32 out;
- }
- main = func() {
- x = i8 5;
- y = i8 6;
- ret_x = i32 0;
- ret_y = i32 0;
- division [ret_x, ret_y], x, y;
- ret_z = 0;
- try {
- multiply [ret_z], 1, 2, 3, 4, 5;
- } catch(*) { // catch all
- break i32 1;
- }
- string strs = new strings;
- strs.label1 = str "label 1";
- strs.label2 = str "label 2";
- strs.label3 = str "label 3";
- strs.label4 = str "label 4";
- label6[str "a"] = 1;
- label6[str "b"] = 2;
- label6[str "c"] = 3;
- label6[str "d"] = 4;
- printf [], "%i32 %i32 \n", z, w; // `[],` not needed
- printf [], "%f %i32 %i8\n", label2, label3, label4;
- printf [], "String: %str \n", cstr;
- printf [], "Length: %i32 \n", @cstr; // @cstr also means cstr[-1] aka the string size
- loop each strs as i, v {
- printf [], "%s %s %s \n", i, strs[i], v;
- }
- loop each label0 as i, v {
- printf [], "%s %s %s \n", i, label0[i], v;
- }
- loop i=0, 5, i++ { // auto i++
- printf [], "%i32 \n", label5[i];
- }
- loop each label6 as i, v {
- printf [], "%s = %i32", i, v;
- }
- return i32 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment