From 1f8f248219ef96c691a15ec93b98b23810b17036 Mon Sep 17 00:00:00 2001 From: "Tristan B. Kildaire" Date: Wed, 13 Apr 2022 09:49:20 +0200 Subject: [PATCH] Added support for the ampersand operator --- source/tlang/compiler/symbols/check.d | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/source/tlang/compiler/symbols/check.d b/source/tlang/compiler/symbols/check.d index 35b8f23b..a3fee37f 100644 --- a/source/tlang/compiler/symbols/check.d +++ b/source/tlang/compiler/symbols/check.d @@ -51,6 +51,7 @@ public enum SymbolType ADD, DIVIDE, STAR, + AMPERSAND, UNKNOWN } @@ -399,6 +400,11 @@ public SymbolType getSymbolType(Token tokenIn) { return SymbolType.DIVIDE; } + /* Ampersand `&` operator check */ + else if(token[0] == '&') + { + return SymbolType.AMPERSAND; + } @@ -417,6 +423,15 @@ public bool isMathOp(Token token) tokenStr[0] == '*' || tokenStr[0] == '/'; } +public bool isBinaryOp(Token token) +{ + string tokenStr = token.getToken(); + + return tokenStr[0] == '&' || cmp("&&", tokenStr) == 0 || + tokenStr[0] == '|' || cmp("||", tokenStr) == 0 || + tokenStr[0] == '^' || tokenStr[0] == '~'; +} + /* Test: Character literal */