aboutsummaryrefslogtreecommitdiff
path: root/src/fexpr/grammar.lalrpop
AgeCommit message (Collapse)Author
2020-05-01change LogFilter to take EarlyLogResultDaniel
This allows us to attach some additional metadata that is not found in the PartialEvtc otherwise, such as the file name.
2020-05-01fix timestamp handlingDaniel
As it turns out, the "local timestamp" as advertised by arcdps is a bit misleading, because the timestamp is still in UTC. The "local" refers to the fact that it can lag behind the server timestamp a bit (but usually they seem to be within +-1 of each other), not that the timestamp is in the local timezone. This makes date handling a bit harder for raidgrep, but thanks to chrono, not by much. The idea is that we simply deal with Utc pretty much everywhere, except at the user boundary. This means that 1. Input timestamps for -before and -after are converted to Utc right after input 2. When outputting, we convert to a local timestamp first This makes the output consistent with the filenames now (and the "wall time" that the player saw).
2020-04-29allow quoted strings as boss namesDaniel
With evtclib 0.2, every boss has at least one name without space, so every boss can be used. Still, for completeness's and consistency's sake, we want to allow users to also specify boss names with spaces in them. For example, if we print "Qadim the Peerless" as the name of the boss, we might expect raidgrep -- -boss "Qadim the Peerless" to work (instead of -boss qadimp). Therefore, we now allow boss names to be quoted, so that we can properly persist the whitespace.
2020-04-29update evtclib to 0.2.0Daniel
2020-04-25add -include and -excludeDaniel
2020-04-25use free functions instead of Filter::newDaniel
Having a ::new on each of the filter types was a bit weird, especially because we returned Box<dyn ...> instead of Self (and clippy rightfully complained). With this patch, we now have a bunch of normal functions, and we don't show to the outside how a filter is actually implemented (or what struct is behind it).
2020-04-21grammar: fix precendence rulesDaniel
If we don't allow the higher-tier on the left side, we cannot chain multiple or/and on the same level. Since or is associative, we shouldn't expect the user to write (... or (... or ...)) and instead provide the flattened version as well.
2020-04-21add "or" and "and" to the list of tokensDaniel
Otherwise they'd get tokenized as word and we couldn't build conjunctions/disjunctions.
2020-04-21better error outputsDaniel
2020-04-20Add -player as a shortcut to search player namesDaniel
2020-04-18first version of the new filter pipelineDaniel