summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp
AgeCommit message (Collapse)Author
2019-10-25InputCommon: Change "EOF" to "end of expression" in user facing stringJosJuice
This is hopefully clearer, since we're not dealing with a file.
2019-10-20ExpressionParser: Add XOR operator.Jordan Woyak
2019-10-12ExpressionParser: Make Lexer ctor explicit and move argument.Jordan Woyak
2019-10-12ExpressionParser: Add support for /* */ style comments.Jordan Woyak
2019-10-11ExpressionParser: Show error message with expected arguments.Jordan Woyak
2019-10-11ExpressionParser: Remove ! character from function syntax. Remove unused ↵Jordan Woyak
serialization functions.
2019-10-11ExpressionParser/DolphinQt: Added parse results to UI.Jordan Woyak
2019-10-11DolphinQT: Add syntax highlighting from tokenizer data.Jordan Woyak
2019-10-11ExpressionParser: Move FunctionExpression type definitions into another file.Jordan Woyak
2019-10-11ExpressionParser: Allow unary functions to be used without parens around the ↵Jordan Woyak
argument. e.g. !`Up`
2019-10-11ExpressionParser: Make function names case sensitive.Jordan Woyak
2019-10-11ExpressionParser: Rename some functions and return a syntax error on ↵Jordan Woyak
trailing tokens.
2019-10-11ExpressionParser: Change function argument syntax to something more c++-like.Jordan Woyak
2019-10-11ExpressionParser: Fix negative literals and support unary minus operator.Jordan Woyak
2019-10-11ExpressionParser: Suppport N-ary functions. Arguments are read LISP style. N ↵Jordan Woyak
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-11ExpressionParser: Replace the timer literal with a timer function that ↵Jordan Woyak
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-11ExpressionParser: Clean up string lexing and support numeric literals ↵Jordan Woyak
without tick delimiter: e.g. 0.75
2019-10-11ExpressionParser: operator precedence.Jordan Woyak
2019-10-11ExpressionParser: Add !while loop unary expression. Limited to 10000 reps to ↵Jordan Woyak
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-11ExpressionParser: cleanup.Jordan Woyak
2019-10-11ExpressionParser: Conditional operator. A binary op that evals the rhs if ↵Jordan Woyak
lhs > 0.5 else 0.0.
2019-10-11ExpressionParser: Add less-than and greater-than operators.Jordan Woyak
2019-10-11ExpressionParser: Renamed ControlFinder to ControlEnvironment. Added support ↵Jordan Woyak
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-11ExpressionParser: Add mod operator, sin function, and timer "constant" which ↵Jordan Woyak
can be used for auto-fire and oscillators.
2019-10-11ExpressionParser: Expand ! symbol to allow for named unary functions. Added ↵Jordan Woyak
!toggle function which toggles on/off with each activation of its inner expression.
2019-10-11ExpressionParser: Add multiplication and division operators. (division by ↵Jordan Woyak
zero evaluates as zero). Don't clamp result of addition operator. Clamping will be done later.
2019-10-11ExpressionParser: Add support for literals.Jordan Woyak
2019-06-17InputCommon: Use nested namespace specifiers where applicableLioncash
2019-03-03ControllerInterface: Input detection improvements.Jordan Woyak
2018-12-22ControllerInterface: Make CoalesceExpression not set the inactive child's ↵Jordan Woyak
value (rumble) to 0. This caused rumble to not enable when a control expression was both a valid "bareword" and "complex" expression.
2018-04-12Reformat all the things!spycrab
2017-09-14ExpressionParser: std::move() tokens vector to parserMichael M
2017-09-14ControlReference: don't reparse expression when references are updatedMichael M
2017-09-14ControlReference/ExpressionParser: separate parsing from bindingMichael M
2017-09-14ExpressionParser: add FallbackExpression node typeMichael M
2017-09-14ExpressionParser: expose ExpressionNode directlyMichael M
2017-09-14ParseStatus: replace NoDevice with EmptyExpressionMichael M
2017-09-14ExpressionParser: remove DummyExpressionMichael M
2017-09-14ExpressionParser: clean up ControlExpressionMichael M
2017-09-14ExpressionParser: replace bare pointers with unique_ptrsMichael M
2017-09-14ExpressionParser: use internal ParseResult struct instead of out-paramsMichael M
2017-09-14ParseExpression: return a std::pairMichael M
2017-04-02ExpressionParser: Rename ParseStatus' Success member to SuccessfulLioncash
This clashes with X11's preprocessor define named Success (because using non-prefixed lowercase identifiers in C was apparently a fantastic idea at some point), causing compilation errors.
2017-02-28ExpressionParser: Convert parse state enum into an enum classLioncash
2017-02-26ExpressionParser: Const-correctness changesLioncash
2017-02-07InputCommon: Extract ControlReference from ControllerInterfaceMichael Maltese
Better separation of concerns. Relegates `ControllerInterface` to enumerating input controls, and the new `ControlReference` deals with combining inputs and configuration expression parsing.