mirror of
https://github.com/loot/loot-condition-interpreter.git
synced 2026-07-27 14:16:09 -07:00
8cb69dfa86af6113f6d0456584978d6dbce0704c
Versions aren't yet read from executables, and evaluation isn't pseudosem-compatible.
loot-condition-interpreter
An experimental library for parsing and evaluating LOOT's metadata condition strings. Written in Rust. Very incomplete.
Goals:
- Explore parsing conditions into an intermediate representation, then evaluating from that representation. LOOT's current parser evaluates conditions while parsing them, tightly coupling the two operations.
- Explore more granular result caching. LOOT's current caching maps each condition string to its result, which can't handle case insensitivity (some parts of the condition string are case sensitive) or re-use results in compound conditions.
- Explore round trip serialisation from the intermediate representation.
- Evaluate the cost/benefit of integrating into LOOT, replacing the existing code.
Currently only condition parsing is complete. Evaluation is partially done, the rest hasn't yet been started.
The tests need the testing-plugins directory to be present in the repo root.
Languages
Rust
97.2%
C++
2.5%
CMake
0.3%