Lioncash
|
faf509e315
|
ExpressionParser: Add missing <functional> include
Unbreaks Windows CMake builds.
|
2020-10-20 16:18:32 -04:00 |
Jordan Woyak
|
431eb4d60d
|
ExpressionParser: Improve hotkey suppression logic. Allow activation with simultaneous press of modifier and final input.
|
2020-09-25 22:51:33 -05:00 |
Jordan Woyak
|
44927da420
|
ExpressionParser: Replace ScopeGuard with custom deleter unique_ptr.
|
2020-09-25 22:51:33 -05:00 |
Jordan Woyak
|
d8ad8c3861
|
InputCommon: Make hotkeys and input detection aware of Ctrl -> L_Ctrl / R_Ctrl hierarchy.
|
2020-09-25 20:29:18 -05:00 |
Jordan Woyak
|
aae913fbc6
|
InputCommon: Clean up modifier ignoring logic.
|
2020-09-25 20:29:18 -05:00 |
Jordan Woyak
|
d2729df281
|
ExpressionParser: Allow duplicate and superset modifier hotkeys to function.
|
2020-09-25 20:29:18 -05:00 |
Jordan Woyak
|
e6ba495486
|
ExpressionParser: Suppress inputs when hotkey modifiers are pressed.
|
2020-09-25 20:29:18 -05:00 |
Jordan Woyak
|
52547379c9
|
ExpressionParser: Add Hotkey syntax.
|
2020-09-25 20:29:18 -05:00 |
Jun Su
|
b6ff15c130
|
Cleanup warnings of -Wmissing-declarations
Add static to the functions which is not intentionally
export to big scope.
|
2020-03-24 20:16:10 +08:00 |
JosJuice
|
c6b4438c62
|
InputCommon: Change "EOF" to "end of expression" in user facing string
This is hopefully clearer, since we're not dealing with a file.
|
2019-10-25 23:49:20 +02:00 |
Jordan Woyak
|
1fe44238b1
|
ExpressionParser: Add XOR operator.
|
2019-10-20 09:51:52 -05:00 |
Jordan Woyak
|
7295458c11
|
ExpressionParser: Make Lexer ctor explicit and move argument.
|
2019-10-12 12:28:19 -05:00 |
Jordan Woyak
|
72302d9c42
|
ExpressionParser: Add support for /* */ style comments.
|
2019-10-12 11:41:02 -05:00 |
Jordan Woyak
|
4d41bd64c8
|
ExpressionParser: Show error message with expected arguments.
|
2019-10-11 19:38:18 -05:00 |
Jordan Woyak
|
b57178d246
|
ExpressionParser: Remove ! character from function syntax. Remove unused serialization functions.
|
2019-10-11 18:12:18 -05:00 |
Jordan Woyak
|
ca7ce67450
|
ExpressionParser/DolphinQt: Added parse results to UI.
|
2019-10-11 18:12:18 -05:00 |
Jordan Woyak
|
c8b2188e19
|
DolphinQT: Add syntax highlighting from tokenizer data.
|
2019-10-11 18:12:18 -05:00 |
Jordan Woyak
|
fd07ae8cec
|
ExpressionParser: Move FunctionExpression type definitions into another file.
|
2019-10-11 18:12:16 -05:00 |
Jordan Woyak
|
d4f9b8c4ef
|
ExpressionParser: Allow unary functions to be used without parens around the argument. e.g. !`Up`
|
2019-10-11 17:31:09 -05:00 |
Jordan Woyak
|
2a377e35ed
|
ExpressionParser: Make function names case sensitive.
|
2019-10-11 17:31:09 -05:00 |
Jordan Woyak
|
2b0297489f
|
ExpressionParser: Rename some functions and return a syntax error on trailing tokens.
|
2019-10-11 17:31:09 -05:00 |
Jordan Woyak
|
258832b1e8
|
ExpressionParser: Change function argument syntax to something more c++-like.
|
2019-10-11 17:31:09 -05:00 |
Jordan Woyak
|
ccac3f1e49
|
ExpressionParser: Fix negative literals and support unary minus operator.
|
2019-10-11 17:31:07 -05:00 |
Jordan Woyak
|
7cf903a209
|
ExpressionParser: Suppport N-ary functions. Arguments are read LISP style. N atoms are read after the function name. Added "if" function and made the "while" function more sensible with an arity of 2. Removed the ugly binary conditional operator.
|
2019-10-11 17:16:05 -05:00 |
Jordan Woyak
|
4dd078568b
|
ExpressionParser: Replace the timer literal with a timer function that increases from 0.0 to 1.0 and resets after N seconds. e.g. (!timer 2.0) is a 2 second timer. Fixed parsing of unary expressions so things like (! ! 1.0) work.
|
2019-10-11 17:14:45 -05:00 |
Jordan Woyak
|
785eb14432
|
ExpressionParser: Clean up string lexing and support numeric literals without tick delimiter: e.g. 0.75
|
2019-10-11 17:14:45 -05:00 |
Jordan Woyak
|
fa75ab404f
|
ExpressionParser: operator precedence.
|
2019-10-11 17:14:45 -05:00 |
Jordan Woyak
|
46c0ae7d1f
|
ExpressionParser: Add !while loop unary expression. Limited to 10000 reps to prevent infinite loops. Rhs is re-evaluated until it is < 0.5. Added comma operator, which behaves like it does in c++. Added subration operator.
|
2019-10-11 17:14:45 -05:00 |
Jordan Woyak
|
2c89b60298
|
ExpressionParser: cleanup.
|
2019-10-11 17:14:45 -05:00 |
Jordan Woyak
|
58efc93ed4
|
ExpressionParser: Conditional operator. A binary op that evals the rhs if lhs > 0.5 else 0.0.
|
2019-10-11 17:14:45 -05:00 |
Jordan Woyak
|
718efce1dc
|
ExpressionParser: Add less-than and greater-than operators.
|
2019-10-11 17:14:45 -05:00 |
Jordan Woyak
|
e896835f86
|
ExpressionParser: Renamed ControlFinder to ControlEnvironment. Added support for variables and assignment operator. ControlExpression objects now reference a matching input and output so the two can me mixed in any expression. (you can set rumble directly from inputs)
|
2019-10-11 17:14:32 -05:00 |
Jordan Woyak
|
1efcf861ea
|
ExpressionParser: Add mod operator, sin function, and timer "constant" which can be used for auto-fire and oscillators.
|
2019-10-11 17:13:58 -05:00 |
Jordan Woyak
|
a8f3e9585f
|
ExpressionParser: Expand ! symbol to allow for named unary functions. Added !toggle function which toggles on/off with each activation of its inner expression.
|
2019-10-11 17:13:58 -05:00 |
Jordan Woyak
|
bf63f85d73
|
ExpressionParser: Add multiplication and division operators. (division by zero evaluates as zero). Don't clamp result of addition operator. Clamping will be done later.
|
2019-10-11 17:13:58 -05:00 |
Jordan Woyak
|
f3192ca06d
|
ExpressionParser: Add support for literals.
|
2019-10-11 17:13:58 -05:00 |
Lioncash
|
ec60027f56
|
InputCommon: Use nested namespace specifiers where applicable
|
2019-06-17 16:51:41 -04:00 |
Jordan Woyak
|
48b69ca018
|
ControllerInterface: Input detection improvements.
|
2019-03-03 18:36:16 -06:00 |
Jordan Woyak
|
d5df56c677
|
ControllerInterface: Make CoalesceExpression not set the inactive child's value (rumble) to 0. This caused rumble to not enable when a control expression was both a valid "bareword" and "complex" expression.
|
2018-12-22 11:17:05 -06:00 |
spycrab
|
40bb9974f2
|
Reformat all the things!
|
2018-04-12 21:28:39 +02:00 |
Michael M
|
294b1895ef
|
ExpressionParser: std::move() tokens vector to parser
|
2017-09-14 12:53:36 -07:00 |
Michael M
|
31f1c06226
|
ControlReference: don't reparse expression when references are updated
|
2017-09-14 12:53:35 -07:00 |
Michael M
|
c332580b83
|
ControlReference/ExpressionParser: separate parsing from binding
|
2017-09-14 12:53:35 -07:00 |
Michael M
|
ba87a50338
|
ExpressionParser: add FallbackExpression node type
|
2017-09-14 12:53:35 -07:00 |
Michael M
|
7e74961eb1
|
ExpressionParser: expose ExpressionNode directly
|
2017-09-14 12:53:35 -07:00 |
Michael M
|
85301e2bae
|
ParseStatus: replace NoDevice with EmptyExpression
|
2017-09-14 12:53:35 -07:00 |
Michael M
|
754efd75c5
|
ExpressionParser: remove DummyExpression
|
2017-09-14 12:53:35 -07:00 |
Michael M
|
f1ff1e3d08
|
ExpressionParser: clean up ControlExpression
|
2017-09-14 12:53:35 -07:00 |
Michael M
|
3df945f8d0
|
ExpressionParser: replace bare pointers with unique_ptrs
|
2017-09-14 12:53:35 -07:00 |
Michael M
|
bbb7c17235
|
ExpressionParser: use internal ParseResult struct instead of out-params
|
2017-09-14 12:53:35 -07:00 |