From 91590e92aa868e79759898f2e042357b69be866c Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Fri, 25 Nov 2022 16:02:27 -0500 Subject: [PATCH] add missing (mostly macroman) operators --- mpw-shell-parser.cpp | 4 ++++ mpw-shell-token.rl | 19 ++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/mpw-shell-parser.cpp b/mpw-shell-parser.cpp index 8556c01..d1ec080 100644 --- a/mpw-shell-parser.cpp +++ b/mpw-shell-parser.cpp @@ -322,6 +322,8 @@ int expression_parser::precedence(int op) { case '<=': case '>': case '>=': + case 0xb2: + case 0xb3: return 6; case '==': @@ -388,9 +390,11 @@ value expression_parser::eval(int op, value &lhs, value &rhs) { return lhs.to_number() < rhs.to_number(); case '<=': + case 0xb2: return lhs.to_number() <= rhs.to_number(); case '>=': + case 0xb3: return lhs.to_number() >= rhs.to_number(); case '>>': diff --git a/mpw-shell-token.rl b/mpw-shell-token.rl index 80c9106..5be4f6d 100644 --- a/mpw-shell-token.rl +++ b/mpw-shell-token.rl @@ -70,6 +70,22 @@ # eval-only. + # macroman ≤ + 0xb2 when eval + %push_token => { tokens.emplace_back("\xb2", '<='); }; + + # macroman ≠ + 0xad when eval + %push_token => { tokens.emplace_back("\xad", '!='); }; + + # macroman ¬ + 0xc2 when eval + %push_token => { tokens.emplace_back("\xc2", '!'); }; + + # macroman ÷ + 0xd6 when eval + %push_token => { tokens.emplace_back("\xd6", '/'); }; + '||' when eval %push_token => { tokens.emplace_back("||", '||'); }; '|' when eval @@ -78,13 +94,14 @@ '&&' when eval %push_token => { tokens.emplace_back("&&", '&&'); }; - '(' when eval %push_token => { tokens.emplace_back("(", '('); }; ')' when eval %push_token => { tokens.emplace_back(")", ')'); }; + '<>' when eval + %push_token => { tokens.emplace_back("<>", '!='); }; '<<' when eval %push_token => { tokens.emplace_back("<<", '<<'); };