|
|
- #ifndef USERSPACE
- #define USERSPACE
-
- #include "quantum.h"
-
- #define NO_ACTION_ONESHOT
- #define NO_ACTION_MACRO
-
- #define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
-
- // Layer the calculator is on
- #define CALC_LAYER 2
-
- // Inside is whether when you are in calc mode it should automatically force numlock, outside is whether it should do it outside of calculator mode
- #define CALC_FORCE_NUM_LOCK_INSIDE_CALC true
- #define CALC_FORCE_NUM_LOCK_OUTSIDE_CALC true
-
- // Maximum number of characters the calculator can have
- #define CALC_BUFFER_SIZE 32
-
- // Minimum width of the printed text / the number of decimal places
- #define CALC_PRINT_SIZE 6
-
- /*-----
- Special
- -----*/
- #define CALC_CHAR_BEG '('
- #define CALC_CHAR_END ')'
- #define CALC_CHAR_DEC '.'
-
- /*-----
- Operators - Can add more here such as modulo %, factorial !
- -----*/
- #define CALC_CHAR_ADD '+'
- #define CALC_PRIO_ADD 1
-
- #define CALC_CHAR_SUB '-'
- #define CALC_PRIO_SUB 1
-
- #define CALC_CHAR_MUL '*'
- #define CALC_PRIO_MUL 2
-
- #define CALC_CHAR_DIV '/'
- #define CALC_PRIO_DIV 2
-
- #define CALC_CHAR_EXP '^'
- #define CALC_PRIO_EXP 3
-
- /*-----
- Functions
- -----*/
- #define CALC_CHAR_SIN 's'
- #define CALC_CHAR_COS 'c'
- #define CALC_CHAR_TAN 't'
-
- #define CALC_CHAR_ASN 'S'
- #define CALC_CHAR_ACS 'C'
- #define CALC_CHAR_ATN 'T'
-
- #define CALC_CHAR_LGE 'l'
- #define CALC_CHAR_LOG 'L'
-
- #define CALC_CHAR_SQT 'q'
-
- /*-----
- Constants
- -----*/
- #define CALC_CHAR_EUL 'e'
- #define CALC_VALU_EUL 2.71828182845904523536
-
- #define CALC_CHAR_PI 'p'
- #define CALC_VALU_PI 3.14159265358979323846
-
- struct OP // Operator/function
- {
- char c;
- unsigned char priority;
- bool ltr;
- };
-
- union TokenRaw // A token after the input has been processed, can either be a number or an operator/function
- {
- double num;
- struct OP op;
- };
-
- struct Token // Encapsulator
- {
- bool isNum;
- union TokenRaw raw;
- };
-
- enum CalcFunctions // Hardware calculator key functionality
- {
- CALC = SAFE_RANGE,
- ENDCALC
- };
-
- #endif
|