diff options
Diffstat (limited to 'module/c/old/operators.scm')
-rw-r--r-- | module/c/old/operators.scm | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/module/c/old/operators.scm b/module/c/old/operators.scm new file mode 100644 index 00000000..0b253ada --- /dev/null +++ b/module/c/old/operators.scm @@ -0,0 +1,24 @@ +(define-module (c old operators) + :export (wordy-binary-operators + symbol-binary-operators + binary-operators)) + + +;;; Simple operators are those which can be combined with '=' +(define simple-operators + `(+ - * / & ,(symbol #\|) ^ << >> % < > =)) + +;; apparently part of C +;; https://en.cppreference.com/w/cpp/language/operator_alternative +(define wordy-binary-operators + '(bitand and_eq and bitor or_eq or xor_eq xor not_eq)) + +(define symbol-binary-operators + (append (map (lambda (x) (symbol-append x '=)) simple-operators) + `(&& ,(symbol #\| #\|) != ,(symbol #\,) + -> ,(symbol #\.)) + simple-operators)) + +(define binary-operators + (append symbol-binary-operators + wordy-binary-operators)) |