repos / gbc

GBC - Go B Compiler
git clone https://github.com/xplshn/gbc.git

gbc / tests
xplshn  ·  2025-08-13

bxDecls.bx

Bx
 1// [b]: requires: -pedantic -std=Bx
 2
 3extrn puts;
 4
 5// Test implicit global declaration
 6global_implicit = 10;
 7
 8// Test explicit type-inferred global declaration
 9auto global_auto = 20;
10
11// Test multi-declaration global
12auto global_multi_1, global_multi_2 = 30, 40;
13
14main() {
15    auto local_auto;
16    local_auto = 50;
17
18    // Test short declaration
19    local_short := 60;
20
21    // Test multi-short declaration
22    local_multi_short_1, local_multi_short_2 := 70, 80;
23
24    if (global_implicit != 10) {
25        puts("FAIL: global_implicit");
26        return (1);
27    }
28    if (global_auto != 20) {
29        puts("FAIL: global_auto");
30        return (1);
31    }
32    if (global_multi_1 != 30 || global_multi_2 != 40) {
33        puts("FAIL: global_multi");
34        return (1);
35    }
36    if (local_auto != 50) {
37        puts("FAIL: local_auto");
38        return (1);
39    }
40    if (local_short != 60) {
41        puts("FAIL: local_short");
42        return (1);
43    }
44    if (local_multi_short_1 != 70 || local_multi_short_2 != 80) {
45        puts("FAIL: local_multi_short");
46        return (1);
47    }
48
49    puts("PASS: All Bx declaration syntax seems to work.");
50    return (0);
51}