feat: add support for booleans and comparision operators
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
#include <stdbool.h>
|
||||
|
||||
extern bool eq(int a, int b);
|
||||
extern bool neq(int a, int b);
|
||||
extern bool lt(int a, int b);
|
||||
extern bool lte(int a, int b);
|
||||
extern bool gt(int a, int b);
|
||||
extern bool gte(int a, int b);
|
||||
extern bool not_bool(bool a);
|
||||
|
||||
int main() {
|
||||
if (!eq(5, 5)) return 1;
|
||||
if (eq(5, 6)) return 2;
|
||||
if (!neq(5, 6)) return 3;
|
||||
if (neq(5, 5)) return 4;
|
||||
if (!lt(4, 5)) return 5;
|
||||
if (lt(5, 5)) return 6;
|
||||
if (!lte(5, 5)) return 7;
|
||||
if (lte(6, 5)) return 8;
|
||||
if (!gt(6, 5)) return 9;
|
||||
if (gt(5, 5)) return 10;
|
||||
if (!gte(5, 5)) return 11;
|
||||
if (gte(4, 5)) return 12;
|
||||
if (!not_bool(false)) return 13;
|
||||
if (not_bool(true)) return 14;
|
||||
return 0; // Success
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fn eq(a: i32, b: i32) -> bool { return a == b; }
|
||||
fn neq(a: i32, b: i32) -> bool { return a != b; }
|
||||
fn lt(a: i32, b: i32) -> bool { return a < b; }
|
||||
fn lte(a: i32, b: i32) -> bool { return a <= b; }
|
||||
fn gt(a: i32, b: i32) -> bool { return a > b; }
|
||||
fn gte(a: i32, b: i32) -> bool { return a >= b; }
|
||||
fn not_bool(a: bool) -> bool { return !a; }
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
fn main() -> i32 {
|
||||
return 42;
|
||||
return 10 * 4 + 2;
|
||||
}
|
||||
Reference in New Issue
Block a user