@@ -88,11 +88,14 @@ QueryFilterStage = id: IdentifierDash query: QueryFilterModifier* { /** <?php re
8888 / query:QueryFilterModifier+ { /** <?php return array_merge([['q'=>'type', 'id'=> '*']], $query); ?> **/
8989 return [{q:'type', id:'*'}, ...query];}
9090
91- QueryRelation = " "* rel:[><] " "+ sub:QueryRelationStage {
91+ QueryRelation = " "* rel:QueryRelationType " "+ sub:QueryRelationStage {
9292 /** <?php return \Seufert\Hamle\TextNode\RelQuery::for($rel, $sub); ?> **/
9393 return {query, sub, rel:rel === '>'?'child':'parent'}
9494 }
9595
96+ QueryRelationType = ">" / "<" / "&" "g" "t" ";" { /** <?php return '<'; ?> **/}
97+ / "&" "l" "t" ";" { /** <?php return '>'; ?> **/}
98+
9699QueryRelationStage = id: AlphaNum query: ChildQueryFilterModifier* { /** <?php return array_merge([['q'=>'type', 'id'=> $id]], $query); ?> **/
97100 return [{q:'type', id}, ...query];}
98101 / "*" query: ChildQueryFilterModifier* { /** <?php return array_merge([['q'=>'type', 'id'=> '*']], $query); ?> **/
@@ -126,7 +129,7 @@ VarExprSub = name: Identifier ExprParamArrow param:VarExprSub {
126129 return {type:"sub", name};
127130 }
128131
129- ExprParamArrow = "-" ">" / "-" "!"
132+ ExprParamArrow = "-" ">" / "-" "!" / "-" "&" "g" "t" ";"
130133
131134filterexpr = "|" f:filter chain:filterexpr {
132135 /** <?php return $f->withChain($chain); ?> **/
0 commit comments