You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The biggest issue is that "take every line air past bat" doesn't behave as expected today. We need to come up with a consistent and predictable inference rule to handle our new fully compositional modifiers
The idea
Ideally, any leading modifier should be associative. So eg saying "chuck funk air past bat" should be equivalent to saying "take air past bat", then "chuck funk".
Formally, let <A> be an action, <M> be a modifier, and <T> be a target. Then the following should be equivalent:
"<A> <M> <T>"
should be equivalent to
"take <T>" followed by "<A> <M>"
Note that this rule only applies if <T> doesn't contain any compound targets with modifiers on active or on list items after the first. Eg for "chuck funk air and line bat", we don't want associativity, because otherwise "line bat" would be expanded to containing function. This rule just applies as far right as possible until it hits a part of a compound target that has a modifier
#708 creates "head" as a modifier on its own, rather than "head <scopeType>". Similarly, we shoudl think about whether "every", "first", "next", etc should exist on their own or be tied to a scope type, eg "every funk", etc
The problem
The biggest issue is that "take every line air past bat" doesn't behave as expected today. We need to come up with a consistent and predictable inference rule to handle our new fully compositional modifiers
The idea
Ideally, any leading modifier should be associative. So eg saying
"chuck funk air past bat"
should be equivalent to saying"take air past bat"
, then"chuck funk"
.Formally, let
<A>
be an action,<M>
be a modifier, and<T>
be a target. Then the following should be equivalent:should be equivalent to
Note that this rule only applies if
<T>
doesn't contain any compound targets with modifiers on active or on list items after the first. Eg for "chuck funk air and line bat", we don't want associativity, because otherwise "line bat" would be expanded to containing function. This rule just applies as far right as possible until it hits a part of a compound target that has a modifierTests to add
Challenging cases / cases to think about
"clear line air slice bat"
<=>"take air slice bat"
then"clear line"
"clear string air slice bat"
<=>"take air slice bat"
then"clear string"
"take line air between bat"
<=>"take air between bat"
then"take line"
"take funk air between bat"
<=>"take air between bat"
then"take funk"
"take every line air past bat"
<=>"take line air past bat"
then"take every"
(or instead"take air past bat"
then"take every line"
?)"take every line air between bat"
<=>"take line air between bat"
then"take every"
"take every funk air past bat"
<=>"take funk air past bat"
then"take every"
(or instead"take air past bat"
then"take every funk"
?)"take every funk air between bat"
<=>"take funk air between bat"
then"take every"
"take line air past token bat"
"chuck funk air and bat and line cap"
(first two should be funk)"chuck funk air and bat and line cap past drum"
(first two should be "funk", last two "line")"paste after line air and block bat"
(we prob want the latter to infer "after")"paste after line air and block bat and before line cap"
(we prob want the first two to infer "after")"<action> line state air and funk bat"
<=>"take state air and funk bat"
then"<action> line"
"<action> line state air and just funk bat"
<=>"<action> line state air"
and"<action> funk bat"
"<action> every line state air and funk bat"
<=>"take state air and funk bat"
then"<action> every line"
"its"
modifier #736)"head block line air"
#789Related issues
#708 creates "head" as a modifier on its own, rather than
"head <scopeType>"
. Similarly, we shoudl think about whether "every", "first", "next", etc should exist on their own or be tied to a scope type, eg "every funk", etcSee also #735 (review)
Some notes
Note that a lot of the following should be handled using "its" (#736)
src/test/suite/fixtures/recorded/compoundTargets/chuckLineRiskSliceMade.yml
will probably need to changeExamples / diagrams
The text was updated successfully, but these errors were encountered: