X-Git-Url: https://code.kerkeslager.com/?a=blobdiff_plain;f=templates%2Fprogram.c;h=650c1e8863c3dc1657ef1cec179d62ae3c8a8bc6;hb=a859f78651b4da2d31890b9c7b01a431fa7a93f6;hp=c9c7394ced59ec73e4c091463543ebbd70fecbf6;hpb=fc17cc4f755333f182183d09b281471aec5d0cdd;p=fur diff --git a/templates/program.c b/templates/program.c index c9c7394..650c1e8 100644 --- a/templates/program.c +++ b/templates/program.c @@ -264,6 +264,60 @@ Object builtin$modularDivide(Object left, Object right) return result; } +Object builtin$equals(Object left, Object right) +{ + assert(left.type == INTEGER); + assert(right.type == INTEGER); + + Object result = { BOOLEAN, left.instance.integer == right.instance.integer }; + return result; +} + +Object builtin$notEquals(Object left, Object right) +{ + assert(left.type == INTEGER); + assert(right.type == INTEGER); + + Object result = { BOOLEAN, left.instance.integer != right.instance.integer }; + return result; +} + +Object builtin$greaterThan(Object left, Object right) +{ + assert(left.type == INTEGER); + assert(right.type == INTEGER); + + Object result = { BOOLEAN, left.instance.integer > right.instance.integer }; + return result; +} + +Object builtin$lessThan(Object left, Object right) +{ + assert(left.type == INTEGER); + assert(right.type == INTEGER); + + Object result = { BOOLEAN, left.instance.integer < right.instance.integer }; + return result; +} + +Object builtin$greaterThanOrEqual(Object left, Object right) +{ + assert(left.type == INTEGER); + assert(right.type == INTEGER); + + Object result = { BOOLEAN, left.instance.integer >= right.instance.integer }; + return result; +} + +Object builtin$lessThanOrEqual(Object left, Object right) +{ + assert(left.type == INTEGER); + assert(right.type == INTEGER); + + Object result = { BOOLEAN, left.instance.integer <= right.instance.integer }; + return result; +} + {% if 'pow' in builtins %} Object builtin$pow(Object base, Object exponent) {