Makes the behaviour of logic expressions consistent in all cases (#898)
* Returned the value of a logic expression in all cases * Remove legacy call syntax * Correct test * Remove old call syntax from docs/library * Corrected docs for call syntax * Add null coalescing operatorpull/917/head
parent
5226c43552
commit
9ed493aa00
|
@ -3,16 +3,16 @@ import {LRParser} from "@lezer/lr"
|
||||||
const spec_Identifier = {__proto__:null,null:22, and:36, or:38, where:48, limit:52, select:66, as:70, render:74, each:76, all:78}
|
const spec_Identifier = {__proto__:null,null:22, and:36, or:38, where:48, limit:52, select:66, as:70, render:74, each:76, all:78}
|
||||||
export const parser = LRParser.deserialize({
|
export const parser = LRParser.deserialize({
|
||||||
version: 14,
|
version: 14,
|
||||||
states: ",fOYQPOOOOQO'#Cc'#CcO!ZQPO'#ChOOQO'#C`'#C`Q!bQQOOOOQO'#Ck'#CkOYQPO'#ClO#lQSO'#D]OYQPO'#DVO%XQQO'#C_OOQO'#C_'#C_O&RQQO'#DhO&`QPO,59SOOQO,59S,59SO&eQPO,59UOYQPO,59sOYQPO,59sOYQPO,59sOYQPO,59uOYQPO,59XOYQPO,59XO&jQQO,59WO'SQPO'#CqO'ZQPO,59[O'`QPO'#D^O'eQPO'#ESO'mQPO,59wOOQO,59w,59wO'rQQO,59qO)uQPO,59vOYQPO'#D_O)|QPO,5:SOOQO1G.n1G.nOOQO1G.p1G.pO,UQQO1G/_O.YQQO1G/_O.gQQO1G/_O.qQQO1G/aO0xQQO1G.sO1PQQO1G.sOOQO1G.r1G.rOYQPO'#CwOOQO'#D`'#D`O1WQPO,59]OYQPO'#CsOYQPO'#CuO1_QPO'#C|O2`QPO'#DQOOQO1G.v1G.vOYQPO,59xO2kQPO'#DcO2pQPO,5:nOOQO1G/c1G/cO2xQPO1G/bOOQO1G/b1G/bO2}QQO,59yOOQO-E7]-E7]OYQPO7+${O3[QQO'#CyO3xQPO'#DoOOQO,59c,59cOOQO-E7^-E7^O4aQQO,59_O4wQQO,59aO5_QQO'#DOO5fQQO'#DOO6PQPO'#DpOOQO,59h,59hOOQO,59l,59lO6hQPO,59lO6mQQO1G/dOOQO,59},59}OOQO-E7a-E7aOOQO7+$|7+$|O6wQQO<<HgOOQO'#Cz'#CzOOQO,59e,59eOYQPO'#DaO8zQPO,5:ZO9cQPO,59jO1_QPO'#DbO9hQPO,5:[OOQO1G/W1G/WOOQO,59{,59{OOQO-E7_-E7_OOQO1G/U1G/UOOQO,59|,59|OOQO-E7`-E7`",
|
states: ",rOYQPOOOOQO'#Cc'#CcO!ZQPO'#ChOOQO'#C`'#C`Q!bQQOOOOQO'#Ck'#CkOYQPO'#ClO#oQSO'#D]OYQPO'#DVO%_QQO'#C_OOQO'#C_'#C_O&XQQO'#DhO&fQPO,59SOOQO,59S,59SO&kQPO,59UOYQPO,59sOYQPO,59sOYQPO,59sOYQPO,59sOYQPO,59uOYQPO,59XOYQPO,59XO&pQQO,59WO'YQPO'#CqO'aQPO,59[O'fQPO'#D^O'kQPO'#ETO'sQPO,59wOOQO,59w,59wO'xQQO,59qO*OQPO,59vOYQPO'#D_O*VQPO,5:SOOQO1G.n1G.nOOQO1G.p1G.pO,bQQO1G/_O.iQQO1G/_O.vQQO1G/_O0XQQO1G/_O1[QQO1G/aO3fQQO1G.sO3mQQO1G.sOOQO1G.r1G.rOYQPO'#CwOOQO'#D`'#D`O3tQPO,59]OYQPO'#CsOYQPO'#CuO3{QPO'#C|O4|QPO'#DQOOQO1G.v1G.vOYQPO,59xO5XQPO'#DcO5^QPO,5:oOOQO1G/c1G/cO5fQPO1G/bOOQO1G/b1G/bO5kQQO,59yOOQO-E7]-E7]OYQPO7+${O5xQQO'#CyO6fQPO'#DoOOQO,59c,59cOOQO-E7^-E7^O6}QQO,59_O7eQQO,59aO7{QQO'#DOO8SQQO'#DOO8mQPO'#DpOOQO,59h,59hOOQO,59l,59lO9UQPO,59lO9ZQQO1G/dOOQO,59},59}OOQO-E7a-E7aOOQO7+$|7+$|O9eQQO<<HgOOQO'#Cz'#CzOOQO,59e,59eOYQPO'#DaO;kQPO,5:ZO<SQPO,59jO3{QPO'#DbO<XQPO,5:[OOQO1G/W1G/WOOQO,59{,59{OOQO-E7_-E7_OOQO1G/U1G/UOOQO,59|,59|OOQO-E7`-E7`",
|
||||||
stateData: ":Y~O!YOSPOS~OTROUROWPOXROYXOZRO]YOxYOzWO!ZQO!_TO!`UO!bVO!fWO!gWO~O!^]O~PYObcOcdO|_O!_^O!gaO!h_O!i_O!j_O!k_O!l_O!m_O!n_O!o_O!p`O!q`O!r`O!saO!tbO~OUhOffO!ekO~O!`mObRXcRX|RX!_RX!gRX!hRX!iRX!jRX!kRX!lRX!mRX!nRX!oRX!pRX!qRX!rRX!sRX!tRXsRX~O!WRX!]RX!^RX!aRX!uRXhRXjRXlRXoRXqRXuRX!eRX~P#wO!]nO!^![X!a![X~P!bO!^pO~OYqO~O!axO~P!bOh|Oj}OlyOq!OOu!PO~O!eeX~P&qO!e!QO~O!u!RO~O!]!SO!e!vX~O!e!UO~O!_^Obyacya|ya!Wya!gya!hya!iya!jya!kya!lya!mya!nya!oya!pya!qya!rya!sya!tya!]ya!^ya!aya!uyahyajyalyaoyaqyauya!eyasya~O!a!WO~PYO!]nO!^![a!a![a~O!_^O!p`O!q`O!r`Ob{ic{i|{i!W{i!h{i!i{i!j{i!k{i!l{i!m{i!n{i!o{i!t{i!]{i!^{i!a{i!u{ih{ij{il{io{iq{iu{i!e{is{i~O!gaO!saO~P*XO!_^Ob{ic{i|{i!W{i!g{i!h{i!i{i!j{i!k{i!l{i!m{i!n{i!o{i!s{i!t{i!]{i!^{i!a{i!u{ih{ij{il{io{iq{iu{i!e{is{i~O!p{i!q{i!r{i~P,`O!g{i!s{i~P*XO!u!ZO~P!bO|_O!_^O!gaO!h_O!i_O!j_O!k_O!l_O!m_O!n_O!o_O!p`O!q`O!r`O!saO!tbOcai!Wai!]ai!^ai!aai!uaihaijailaioaiqaiuai!eaisai~Obai~P.xObcO~P.xO!eea~P&qOTROUROWPOXROY!cOZRO]YOxYOzWO!ZQO!_TO!`UO!bVO!fWO!gWO~Ov!gOw!gOx!fO~OUhO~O!]!SO!e!va~O!a!kO~O!]!Ra!^!Ra!a!Ra~P!bOo!mOhmXjmXlmXqmXumX!]mX!emX~P!bO!]!oOh!cXj!cXl!cXq!cXu!cX!e!cX~Ohgajgalgaqgauga!ega~P!bOhiajialiaqiauia!eia~P!bOs!qO~P!bOhrXjrXlrXqrXurX!]rX!erX~P#wO!]!rOh!dXj!dXl!dXq!dXu!dX!e!dX~Ox!tO~O!]!Qi!e!Qi~P!bO|_O!_^O!gaO!h_O!i_O!j_O!k_O!l_O!m_O!n_O!o_O!p`O!q`O!r`O!saOb}yc}y!W}y!t}y!]}y!^}y!a}y!u}yh}yj}yl}yo}yq}yu}y!e}ys}y~O!]!oOh!caj!cal!caq!cau!ca!e!ca~OY!wO~O!]!rOh!daj!dal!daq!dau!da!e!da~OlW|ozYTo~",
|
stateData: "<y~O!YOSPOS~OTROUROWPOXROYXOZRO]YOxYOzWO!ZQO!_TO!`UO!bVO!fWO!gWO~O!^]O~PYObdOceO|_O!_^O!gaO!h_O!i_O!j_O!k_O!l_O!m_O!n_O!o_O!p`O!q`O!r`O!saO!tbO!ucO~OUiOfgO!elO~O!`nObRXcRX|RX!_RX!gRX!hRX!iRX!jRX!kRX!lRX!mRX!nRX!oRX!pRX!qRX!rRX!sRX!tRX!uRXsRX~O!WRX!]RX!^RX!aRX!vRXhRXjRXlRXoRXqRXuRX!eRX~P#zO!]oO!^![X!a![X~P!bO!^qO~OYrO~O!azO~P!bOh!OOj!POl{Oq!QOu!RO~O!eeX~P&wO!e!SO~O!v!TO~O!]!UO!e!wX~O!e!WO~O!_^Obyacya|ya!Wya!gya!hya!iya!jya!kya!lya!mya!nya!oya!pya!qya!rya!sya!tya!uya!]ya!^ya!aya!vyahyajyalyaoyaqyauya!eyasya~O!a!YO~PYO!]oO!^![a!a![a~O!_^O!p`O!q`O!r`Ob{ic{i|{i!W{i!h{i!i{i!j{i!k{i!l{i!m{i!n{i!o{i!t{i!u{i!]{i!^{i!a{i!v{ih{ij{il{io{iq{iu{i!e{is{i~O!gaO!saO~P*bO!_^Ob{ic{i|{i!W{i!g{i!h{i!i{i!j{i!k{i!l{i!m{i!n{i!o{i!s{i!t{i!u{i!]{i!^{i!a{i!v{ih{ij{il{io{iq{iu{i!e{is{i~O!p{i!q{i!r{i~P,lO!g{i!s{i~P*bObdO|_O!_^O!gaO!h_O!i_O!j_O!k_O!l_O!m_O!n_O!o_O!p`O!q`O!r`O!saO!ucO~Oc{i!W{i!t{i!]{i!^{i!a{i!v{ih{ij{il{io{iq{iu{i!e{is{i~P/QO!v!]O~P!bO|_O!_^O!gaO!h_O!i_O!j_O!k_O!l_O!m_O!n_O!o_O!p`O!q`O!r`O!saO!ucOcai!Wai!tai!]ai!^ai!aai!vaihaijailaioaiqaiuai!eaisai~Obai~P1cObdO~P1cO!eea~P&wOTROUROWPOXROY!eOZRO]YOxYOzWO!ZQO!_TO!`UO!bVO!fWO!gWO~Ov!iOw!iOx!hO~OUiO~O!]!UO!e!wa~O!a!mO~O!]!Ra!^!Ra!a!Ra~P!bOo!oOhmXjmXlmXqmXumX!]mX!emX~P!bO!]!qOh!cXj!cXl!cXq!cXu!cX!e!cX~Ohgajgalgaqgauga!ega~P!bOhiajialiaqiauia!eia~P!bOs!sO~P!bOhrXjrXlrXqrXurX!]rX!erX~P#zO!]!tOh!dXj!dXl!dXq!dXu!dX!e!dX~Ox!vO~O!]!Qi!e!Qi~P!bO|_O!_^O!gaO!h_O!i_O!j_O!k_O!l_O!m_O!n_O!o_O!p`O!q`O!r`O!saOb}yc}y!W}y!t}y!u}y!]}y!^}y!a}y!v}yh}yj}yl}yo}yq}yu}y!e}ys}y~O!]!qOh!caj!cal!caq!cau!ca!e!ca~OY!yO~O!]!tOh!daj!dal!daq!dau!da!e!da~OlW|ozYTo~",
|
||||||
goto: "&k!wPPP!x$QPP$hPPPP$hP$Q$Q$Q$QPP$Q%OP%RP%RP%RP%V%]P%RP%`P%RPPPP$QP$QP$Q$Q$Q%f%l%r%x&O&UPPPP&[PPPPPP&b&ePPPPPPPPPPPPPPPPP&hQSOSZQmQeUQlWQr_Qs`QtaQubQvcQwdQ!XnS![y!oQ!`|Q!a}S!b!O!rQ!h!RR!l!ZyYOQUW_`abcdmny|}!O!R!Z!o!ryROQUW_`abcdmny|}!O!R!Z!o!rRgVTzf{Q!]yR!u!oR!n![Q!d!OR!x!rQiVR!i!SQoZR!YoQ{fR!_{Q!p!]R!v!pQ!s!dR!y!sQ!TiR!j!TQ[QR!VmR!^yR!e!ORjV",
|
goto: "&q!xPPP!y$UPP$mPPPP$mP$U$U$U$UPP$U%UP%XP%XP%XP%]%cP%XP%fP%XPPPP$UP$UP$U$U$U%l%r%x&O&U&[PPPP&bPPPPPP&h&kPPPPPPPPPPPPPPPPPP&nQSOSZQnQfUQmWQs_Qt`QuaQvbQwcQxdQyeQ!ZoS!^{!qQ!b!OQ!c!PS!d!Q!tQ!j!TR!n!]{YOQUW_`abcdeno{!O!P!Q!T!]!q!t{ROQUW_`abcdeno{!O!P!Q!T!]!q!tRhVT|g}Q!_{R!w!qR!p!^Q!f!QR!z!tQjVR!k!UQpZR![pQ}gR!a}Q!r!_R!x!rQ!u!fR!{!uQ!VjR!l!VQ[QR!XnR!`{R!g!QRkV",
|
||||||
nodeNames: "⚠ LineComment Program Expression Value Number String Bool BooleanKW Regex Identifier null List GlobalIdentifier Attribute TopLevelVal ParenthesizedExpression LogicalExpression and or QueryExpression Query TagIdentifier WhereClause where LimitClause limit OrderClause Order OrderBy OrderDirection OrderKW SelectClause select Select as RenderClause render each all PageRef UnaryExpression NotKW BinExpression InKW TernaryExpression Call Object KeyVal",
|
nodeNames: "⚠ LineComment Program Expression Value Number String Bool BooleanKW Regex Identifier null List GlobalIdentifier Attribute TopLevelVal ParenthesizedExpression LogicalExpression and or QueryExpression Query TagIdentifier WhereClause where LimitClause limit OrderClause Order OrderBy OrderDirection OrderKW SelectClause select Select as RenderClause render each all PageRef UnaryExpression NotKW BinExpression InKW TernaryExpression Call Object KeyVal",
|
||||||
maxTerm: 84,
|
maxTerm: 85,
|
||||||
skippedNodes: [0,1],
|
skippedNodes: [0,1],
|
||||||
repeatNodeCount: 5,
|
repeatNodeCount: 5,
|
||||||
tokenData: "=`~R!RX^$[pq$[qr%Prs%fst&Tuv&lwx&qxy'Zyz'`z{'e{|'j|}'o}!O't!O!P'y!P!Q(O!Q![*g![!]*o!^!_*t!_!`+R!`!a+`!a!b+m!b!c+r!c!},a!}#O-c#P#Q.`#S#T.e#T#U/S#U#W,a#W#X1P#X#Y,a#Y#Z1p#Z#],a#]#^4z#^#b,a#b#c6W#c#d8T#d#h,a#h#i;t#i#o,a#o#p=U#q#r=Z#y#z$[$f$g$[#BY#BZ$[$IS$I_$[$I|$JO$[$JT$JU$[$KV$KW$[&FU&FV$[~$aY!Y~X^$[pq$[#y#z$[$f$g$[#BY#BZ$[$IS$I_$[$I|$JO$[$JT$JU$[$KV$KW$[&FU&FV$[R%UP!fP!_!`%XQ%^P!kQ#r#s%aQ%fO!oQ~%iTOr%frs%xs;'S%f;'S;=`%}<%lO%f~%}OU~~&QP;=`<%l%f~&YSP~OY&TZ;'S&T;'S;=`&f<%lO&T~&iP;=`<%l&T~&qO!r~~&tTOw&qwx%xx;'S&q;'S;=`'T<%lO&q~'WP;=`<%l&q~'`O!`~~'eO!a~~'jO!p~~'oO!s~~'tO!]~~'yO!g~~(OO!_~R(TW!qQOY(mZ](m^!P(m!Q#O(m#O#P)b#P;'S(m;'S;=`*a<%lO(mP(pXOY(mZ](m^!P(m!P!Q)]!Q#O(m#O#P)b#P;'S(m;'S;=`*a<%lO(mP)bOXPP)eRO;'S(m;'S;=`)n;=`O(mP)qYOY(mZ](m^!P(m!P!Q)]!Q#O(m#O#P)b#P;'S(m;'S;=`*a;=`<%l(m<%lO(mP*dP;=`<%l(m~*lPT~!Q![*g~*tO!u~~*yP!h~!_!`*|~+RO!i~~+WP!j~#r#s+Z~+`O!n~~+eP!m~!_!`+h~+mO!l~~+rO!t~~+uQ!c!}+{#T#o+{~,QT]~}!O+{!Q![+{!c!}+{#R#S+{#T#o+{V,hUfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#o,aS-PUfS}!O,z!P!Q,z!Q![,z!c!},z#R#S,z#T#o,z~-hP!Z~!}#O-k~-nTO#P-k#P#Q-}#Q;'S-k;'S;=`.Y<%lO-k~.QP#P#Q.T~.YOx~~.]P;=`<%l-k~.eO!^~R.hTO#S.e#S#T.w#T;'S.e;'S;=`.|<%lO.eR.|OYRR/PP;=`<%l.eV/ZWfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#g,a#g#h/s#h#o,aV/zWfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#V,a#V#W0d#W#o,aV0mUfSoQYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#o,aV1WWfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#X,a#X#Y/S#Y#o,aV1wVfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#U2^#U#o,aV2eWfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#`,a#`#a2}#a#o,aV3UWfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#g,a#g#h3n#h#o,aV3uWfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#X,a#X#Y4_#Y#o,aV4hUfSWPYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#o,aV5RWfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#b,a#b#c5k#c#o,aV5tUfS|QYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#o,aV6_WfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#c,a#c#d6w#d#o,aV7OWfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#h,a#h#i7h#i#o,aV7qUfSzPYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#o,aV8[WfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#f,a#f#g8t#g#o,aV8{WfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#W,a#W#X9e#X#o,aV9lWfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#X,a#X#Y:U#Y#o,aV:]WfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#f,a#f#g:u#g#o,aV:|VfSYRpq;c}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#o,aR;fP#U#V;iR;lP#m#n;oR;tOlRV;{WfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#f,a#f#g<e#g#o,aV<lWfSYR}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#i,a#i#j3n#j#o,a~=ZO!b~~=`O!e~",
|
tokenData: "=h~R!RX^$[pq$[qr%Prs%fst&Tuv&lwx&qxy'Zyz'`z{'e{|'j|}'o}!O't!O!P'y!P!Q(O!Q![*g![!]*o!^!_*t!_!`+R!`!a+`!a!b+m!b!c+z!c!},i!}#O-k#P#Q.h#S#T.m#T#U/[#U#W,i#W#X1X#X#Y,i#Y#Z1x#Z#],i#]#^5S#^#b,i#b#c6`#c#d8]#d#h,i#h#i;|#i#o,i#o#p=^#q#r=c#y#z$[$f$g$[#BY#BZ$[$IS$I_$[$I|$JO$[$JT$JU$[$KV$KW$[&FU&FV$[~$aY!Y~X^$[pq$[#y#z$[$f$g$[#BY#BZ$[$IS$I_$[$I|$JO$[$JT$JU$[$KV$KW$[&FU&FV$[R%UP!fP!_!`%XQ%^P!kQ#r#s%aQ%fO!oQ~%iTOr%frs%xs;'S%f;'S;=`%}<%lO%f~%}OU~~&QP;=`<%l%f~&YSP~OY&TZ;'S&T;'S;=`&f<%lO&T~&iP;=`<%l&T~&qO!r~~&tTOw&qwx%xx;'S&q;'S;=`'T<%lO&q~'WP;=`<%l&q~'`O!`~~'eO!a~~'jO!p~~'oO!s~~'tO!]~~'yO!g~~(OO!_~R(TW!qQOY(mZ](m^!P(m!Q#O(m#O#P)b#P;'S(m;'S;=`*a<%lO(mP(pXOY(mZ](m^!P(m!P!Q)]!Q#O(m#O#P)b#P;'S(m;'S;=`*a<%lO(mP)bOXPP)eRO;'S(m;'S;=`)n;=`O(mP)qYOY(mZ](m^!P(m!P!Q)]!Q#O(m#O#P)b#P;'S(m;'S;=`*a;=`<%l(m<%lO(mP*dP;=`<%l(m~*lPT~!Q![*g~*tO!v~~*yP!h~!_!`*|~+RO!i~~+WP!j~#r#s+Z~+`O!n~~+eP!m~!_!`+h~+mO!l~~+rP!u~!a!b+u~+zO!t~~+}Q!c!},T#T#o,T~,YT]~}!O,T!Q![,T!c!},T#R#S,T#T#o,TV,pUfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#o,iS-XUfS}!O-S!P!Q-S!Q![-S!c!}-S#R#S-S#T#o-S~-pP!Z~!}#O-s~-vTO#P-s#P#Q.V#Q;'S-s;'S;=`.b<%lO-s~.YP#P#Q.]~.bOx~~.eP;=`<%l-s~.mO!^~R.pTO#S.m#S#T/P#T;'S.m;'S;=`/U<%lO.mR/UOYRR/XP;=`<%l.mV/cWfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#g,i#g#h/{#h#o,iV0SWfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#V,i#V#W0l#W#o,iV0uUfSoQYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#o,iV1`WfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#X,i#X#Y/[#Y#o,iV2PVfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#U2f#U#o,iV2mWfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#`,i#`#a3V#a#o,iV3^WfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#g,i#g#h3v#h#o,iV3}WfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#X,i#X#Y4g#Y#o,iV4pUfSWPYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#o,iV5ZWfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#b,i#b#c5s#c#o,iV5|UfS|QYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#o,iV6gWfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#c,i#c#d7P#d#o,iV7WWfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#h,i#h#i7p#i#o,iV7yUfSzPYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#o,iV8dWfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#f,i#f#g8|#g#o,iV9TWfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#W,i#W#X9m#X#o,iV9tWfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#X,i#X#Y:^#Y#o,iV:eWfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#f,i#f#g:}#g#o,iV;UVfSYRpq;k}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#o,iR;nP#U#V;qR;tP#m#n;wR;|OlRV<TWfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#f,i#f#g<m#g#o,iV<tWfSYR}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#i,i#i#j3v#j#o,i~=cO!b~~=hO!e~",
|
||||||
tokenizers: [0, 1, 2],
|
tokenizers: [0, 1, 2],
|
||||||
topRules: {"Program":[0,2]},
|
topRules: {"Program":[0,2]},
|
||||||
specialized: [{term: 10, get: (value) => spec_Identifier[value] || -1}],
|
specialized: [{term: 10, get: (value) => spec_Identifier[value] || -1}],
|
||||||
tokenPrec: 1151
|
tokenPrec: 1274
|
||||||
})
|
})
|
||||||
|
|
|
@ -3,16 +3,16 @@ import {LRParser} from "@lezer/lr"
|
||||||
const spec_Identifier = {__proto__:null,where:14, null:30, and:44, or:46, limit:70, select:84, as:88, render:92, each:94, all:96}
|
const spec_Identifier = {__proto__:null,where:14, null:30, and:44, or:46, limit:70, select:84, as:88, render:92, each:94, all:96}
|
||||||
export const parser = LRParser.deserialize({
|
export const parser = LRParser.deserialize({
|
||||||
version: 14,
|
version: 14,
|
||||||
states: ",fOYQPOOOpQQO'#C_QOQPOOOzQQO'#DQOOQO'#D_'#D_O!{QQO,58yOzQQO'#CaOzQQO'#DOO#VQQO'#DVO$WQQO'#DZOOQO'#Ch'#ChO$cQQO'#ClOOQO'#Ce'#CeO%tQSO'#DSOOQO'#Co'#CoOzQQO'#CpO&eQPO'#C|OzQQO'#CuO(QQSO'#CdOOQO'#Cd'#CdO(zQQO'#EROOQO,59l,59lOOQO-E7]-E7]O)fQSO,58{O*PQSO,59jO*jQSO'#DXO*qQSO'#CdO+_QQO'#ESOOQO,59q,59qOOQO,59u,59uO+yQPO,59uO,OQSO'#DhO,]QPO,59WOOQO,59W,59WO,bQQO,59YOzQQO,59cOzQQO,59cOzQQO,59cOzQQO,59eOOQO'#DT'#DTOOQO,59n,59nOzQQO,59]OzQQO,59]O,gQSO,59[O,nQPO,59`O,sQPO'#C}O,xQPO'#EQO-QQPO,59hOOQO,59h,59hO-VQSO,59aO/YQQO,59fOzQQO'#DbO/aQQO,5:mO/{QQO,59sO#VQQO'#DcO0QQQO,5:nOOQO1G/a1G/aOzQQO'#D`O0lQPO,5:SOOQO1G.r1G.rOOQO1G.t1G.tO2tQSO1G.}O4xQSO1G.}O5VQSO1G.}O5aQSO1G/PO7hQSO1G.wO7oQSO1G.wOOQO1G.v1G.vOOQO1G.z1G.zOzQQO,59iO7vQPO'#DaO7{QPO,5:lOOQO1G/S1G/SO8TQPO1G/QOOQO1G/Q1G/QOOQO,59|,59|OOQO-E7`-E7`OOQO1G/_1G/_OOQO,59},59}OOQO-E7a-E7aO8YQSO,59zOOQO-E7^-E7^OzQQO7+$kO8gQSO1G/TOOQO,59{,59{OOQO-E7_-E7_OOQO7+$l7+$lO8qQSO<<HV",
|
states: ",rOYQPOOOpQQO'#C_QOQPOOOzQQO'#DQOOQO'#D_'#D_O!{QQO,58yOzQQO'#CaOzQQO'#DOO#VQQO'#DVO$WQQO'#DZOOQO'#Ch'#ChO$cQQO'#ClOOQO'#Ce'#CeO%wQSO'#DSOOQO'#Co'#CoOzQQO'#CpO&hQPO'#C|OzQQO'#CuO(WQSO'#CdOOQO'#Cd'#CdO)QQQO'#ESOOQO,59l,59lOOQO-E7]-E7]O)lQSO,58{O*VQSO,59jO*pQSO'#DXO*wQSO'#CdO+eQQO'#ETOOQO,59q,59qOOQO,59u,59uO,PQPO,59uO,UQSO'#DhO,cQPO,59WOOQO,59W,59WO,hQQO,59YOzQQO,59cOzQQO,59cOzQQO,59cOzQQO,59cOzQQO,59eOOQO'#DT'#DTOOQO,59n,59nOzQQO,59]OzQQO,59]O,mQSO,59[O,tQPO,59`O,yQPO'#C}O-OQPO'#ERO-WQPO,59hOOQO,59h,59hO-]QSO,59aO/cQQO,59fOzQQO'#DbO/jQQO,5:nO0UQQO,59sO#VQQO'#DcO0ZQQO,5:oOOQO1G/a1G/aOzQQO'#D`O0uQPO,5:SOOQO1G.r1G.rOOQO1G.t1G.tO3QQSO1G.}O5XQSO1G.}O5fQSO1G.}O6wQSO1G.}O7zQSO1G/PO:UQSO1G.wO:]QSO1G.wOOQO1G.v1G.vOOQO1G.z1G.zOzQQO,59iO:dQPO'#DaO:iQPO,5:mOOQO1G/S1G/SO:qQPO1G/QOOQO1G/Q1G/QOOQO,59|,59|OOQO-E7`-E7`OOQO1G/_1G/_OOQO,59},59}OOQO-E7a-E7aO:vQSO,59zOOQO-E7^-E7^OzQQO7+$kO;TQSO1G/TOOQO,59{,59{OOQO-E7_-E7_OOQO7+$l7+$lO;_QSO<<HV",
|
||||||
stateData: ":}~O!YOSPOS~OSPO~OVUOsVOuROzWO!OXO~O!WRX!cRX~P_OUbOY[OZ[O]YO^[O_[OacOjaOocO!ZZO!_^O!`_O!b`O!daO!eaO~O!WRa!cRa~P_OUjOY[OZ[O]YO^[O_[OacOjaOocO!ZZO!_^O!`_O!b`O!daO!eaO~OomO!PnO!QnO~O!^qO~PzOfyOgzOlsO!_rO!euO!fsO!gsO!hsO!isO!jsO!ksO!lsO!msO!ntO!otO!ptO!quO!rvO~OxwOVvXsvXuvXzvX!OvX!WvX!]vX!cvX~P$jOSPOZ}O!c!QO~O!`!SOfWXgWXlWX!_WX!eWX!fWX!gWX!hWX!iWX!jWX!kWX!lWX!mWX!nWX!oWX!pWX!qWX!rWX|WX~OVWXsWXuWXxWXzWX!OWX!WWX!]WX!^WX!aWX!sWX!cWX~P&pO!]!TOV!uXs!uXu!uXz!uX!O!uX!W!uX!c!uX~OVTasTauTazTa!OTa!WTa!cTa~P$jOVrasraurazra!Ora!Wra!cra~P$jO|!VO~P$jOV{Xs{Xu{Xz{X!O{X!W{X!]{X!c{X~P&pO!]!WOV!vXs!vXu!vXz!vX!O!vX!W!vX!c!vX~Oo!YO~O!]!ZO!^![X!a![X~P$jO!^!]O~OU!^O~O!a!eO~P$jO!c!fO~O!s!gO~O!]!hO!c!tX~O!c!jO~O!_rOViafiagialiasiauiaxiazia!Oia!Wia!]ia!eia!fia!gia!hia!iia!jia!kia!lia!mia!nia!oia!pia!qia!ria|ia!^ia!aia!sia!cia~O!a!lO~PzO!]!TOV!uas!uau!uaz!ua!O!ua!W!ua!c!ua~OU!oO~O!]!WOV!vas!vau!vaz!va!O!va!W!va!c!va~O!]!ZO!^![a!a![a~O!_rO!ntO!otO!ptOVkifkigkilkiskiukixkizki!Oki!Wki!]ki!fki!gki!hki!iki!jki!kki!lki!mki!rki|ki!^ki!aki!ski!cki~O!euO!quO~P0wO!_rOVkifkigkilkiskiukixkizki!Oki!Wki!]ki!eki!fki!gki!hki!iki!jki!kki!lki!mki!qki!rki|ki!^ki!aki!ski!cki~O!nki!oki!pki~P3OO!eki!qki~P0wO!s!tO~P$jOlsO!_rO!euO!fsO!gsO!hsO!isO!jsO!ksO!lsO!msO!ntO!otO!ptO!quO!rvOVeigeiseiueixeizei!Oei!Wei!]ei|ei!^ei!aei!sei!cei~Ofei~P5hOfyO~P5hOZ}O~O!]!hO!c!ta~O!a!xO~O!]!Sa!^!Sa!a!Sa~P$jO!]qi!cqi~P$jOlsO!_rO!euO!fsO!gsO!hsO!isO!jsO!ksO!lsO!msO!ntO!otO!ptO!quOVmyfmygmysmyumyxmyzmy!Omy!Wmy!]my!rmy|my!^my!amy!smy!cmy~Ou]lxjUYx~",
|
stateData: "=n~O!YOSPOS~OSPO~OVUOsVOuROzWO!OXO~O!WRX!cRX~P_OUbOY[OZ[O]YO^[O_[OacOjaOocO!ZZO!_^O!`_O!b`O!daO!eaO~O!WRa!cRa~P_OUjOY[OZ[O]YO^[O_[OacOjaOocO!ZZO!_^O!`_O!b`O!daO!eaO~OomO!PnO!QnO~O!^qO~PzOfzOg{OlsO!_rO!euO!fsO!gsO!hsO!isO!jsO!ksO!lsO!msO!ntO!otO!ptO!quO!rvO!swO~OxxOVvXsvXuvXzvX!OvX!WvX!]vX!cvX~P$jOSPOZ!OO!c!RO~O!`!TOfWXgWXlWX!_WX!eWX!fWX!gWX!hWX!iWX!jWX!kWX!lWX!mWX!nWX!oWX!pWX!qWX!rWX!sWX|WX~OVWXsWXuWXxWXzWX!OWX!WWX!]WX!^WX!aWX!tWX!cWX~P&sO!]!UOV!vXs!vXu!vXz!vX!O!vX!W!vX!c!vX~OVTasTauTazTa!OTa!WTa!cTa~P$jOVrasraurazra!Ora!Wra!cra~P$jO|!WO~P$jOV{Xs{Xu{Xz{X!O{X!W{X!]{X!c{X~P&sO!]!XOV!wXs!wXu!wXz!wX!O!wX!W!wX!c!wX~Oo!ZO~O!]![O!^![X!a![X~P$jO!^!^O~OU!_O~O!a!gO~P$jO!c!hO~O!t!iO~O!]!jO!c!uX~O!c!lO~O!_rOViafiagialiasiauiaxiazia!Oia!Wia!]ia!eia!fia!gia!hia!iia!jia!kia!lia!mia!nia!oia!pia!qia!ria!sia|ia!^ia!aia!tia!cia~O!a!nO~PzO!]!UOV!vas!vau!vaz!va!O!va!W!va!c!va~OU!qO~O!]!XOV!was!wau!waz!wa!O!wa!W!wa!c!wa~O!]![O!^![a!a![a~O!_rO!ntO!otO!ptOVkifkigkilkiskiukixkizki!Oki!Wki!]ki!fki!gki!hki!iki!jki!kki!lki!mki!rki!ski|ki!^ki!aki!tki!cki~O!euO!quO~P1QO!_rOVkifkigkilkiskiukixkizki!Oki!Wki!]ki!eki!fki!gki!hki!iki!jki!kki!lki!mki!qki!rki!ski|ki!^ki!aki!tki!cki~O!nki!oki!pki~P3[O!eki!qki~P1QOfzOlsO!_rO!euO!fsO!gsO!hsO!isO!jsO!ksO!lsO!msO!ntO!otO!ptO!quO!swO~OVkigkiskiukixkizki!Oki!Wki!]ki!rki|ki!^ki!aki!tki!cki~P5pO!t!vO~P$jOlsO!_rO!euO!fsO!gsO!hsO!isO!jsO!ksO!lsO!msO!ntO!otO!ptO!quO!swOVeigeiseiueixeizei!Oei!Wei!]ei!rei|ei!^ei!aei!tei!cei~Ofei~P8ROfzO~P8ROZ!OO~O!]!jO!c!ua~O!a!zO~O!]!Sa!^!Sa!a!Sa~P$jO!]qi!cqi~P$jOlsO!_rO!euO!fsO!gsO!hsO!isO!jsO!ksO!lsO!msO!ntO!otO!ptO!quOVmyfmygmysmyumyxmyzmy!Omy!Wmy!]my!rmy!smy|my!^my!amy!tmy!cmy~Ou]lxjUYx~",
|
||||||
goto: "&i!wPPP!xP#OPP#S$XPP$nPPP$nP$X$X$X$XPP$X$XP$XP$X$XP$X%T#OP#OP%Z%aP#OP%dP#OPPP%j%p%v%|&SPPPP&YPPPPPPPPPPPPPPPPPPPPPPP&`&c&fQQOR|`TSPTS]R!TQgUQhVSiW!WSoZ!SQ{_Q!RaQ!_sQ!`tQ!auQ!bvQ!cyQ!dzQ!r!ZQ!u!gR!y!twcRUVWZ_astuvyz!S!T!W!Z!g!tw[RUVWZ_astuvyz!S!T!W!Z!g!tQ!O`R!v!hQdRR!m!TRx]QkWR!p!WQTPRfTQ![oR!s![Q!i!OR!w!iQ!UdR!n!UQ!XkR!q!XQpZR!k!SR!P`ReRRlW",
|
goto: "&o!xPPP!yP#PPP#T$]PP$sPPP$sP$]$]$]$]PP$]$]P$]P$]$]P$]%Z#PP#PP%a%gP#PP%jP#PPPP%p%v%|&S&YPPPP&`PPPPPPPPPPPPPPPPPPPPPPPP&f&i&lQQOR}`TSPTS]R!UQgUQhVSiW!XSoZ!TQ|_Q!SaQ!`sQ!atQ!buQ!cvQ!dwQ!ezQ!f{Q!t![Q!w!iR!{!vycRUVWZ_astuvwz{!T!U!X![!i!vy[RUVWZ_astuvwz{!T!U!X![!i!vQ!P`R!x!jQdRR!o!URy]QkWR!r!XQTPRfTQ!]oR!u!]Q!k!PR!y!kQ!VdR!p!VQ!YkR!s!YQpZR!m!TR!Q`ReRRlW",
|
||||||
nodeNames: "⚠ LineComment Program Query TagIdentifier WhereClause Identifier where Expression Value Number String Bool BooleanKW Regex null List GlobalIdentifier Attribute TopLevelVal ParenthesizedExpression LogicalExpression and or QueryExpression UnaryExpression NotKW BinExpression InKW TernaryExpression Call PageRef Object KeyVal LimitClause limit OrderClause Order OrderBy OrderDirection OrderKW SelectClause select Select as RenderClause render each all",
|
nodeNames: "⚠ LineComment Program Query TagIdentifier WhereClause Identifier where Expression Value Number String Bool BooleanKW Regex null List GlobalIdentifier Attribute TopLevelVal ParenthesizedExpression LogicalExpression and or QueryExpression UnaryExpression NotKW BinExpression InKW TernaryExpression Call PageRef Object KeyVal LimitClause limit OrderClause Order OrderBy OrderDirection OrderKW SelectClause select Select as RenderClause render each all",
|
||||||
maxTerm: 84,
|
maxTerm: 85,
|
||||||
skippedNodes: [0,1],
|
skippedNodes: [0,1],
|
||||||
repeatNodeCount: 5,
|
repeatNodeCount: 5,
|
||||||
tokenData: "=`~R!RX^$[pq$[qr%Prs%fst&Tuv&lwx&qxy'Zyz'`z{'e{|'j|}'o}!O't!O!P'y!P!Q(O!Q![*g![!]*o!^!_*t!_!`+R!`!a+`!a!b+m!b!c+r!c!},a!}#O-c#P#Q.`#S#T.e#T#U/S#U#W,a#W#X1P#X#Y,a#Y#Z1p#Z#],a#]#^4z#^#b,a#b#c6W#c#d8T#d#h,a#h#i;t#i#o,a#o#p=U#q#r=Z#y#z$[$f$g$[#BY#BZ$[$IS$I_$[$I|$JO$[$JT$JU$[$KV$KW$[&FU&FV$[~$aY!Y~X^$[pq$[#y#z$[$f$g$[#BY#BZ$[$IS$I_$[$I|$JO$[$JT$JU$[$KV$KW$[&FU&FV$[U%UP!dQ!_!`%XS%^P!iS#r#s%aS%fO!mS~%iTOr%frs%xs;'S%f;'S;=`%}<%lO%f~%}OZ~~&QP;=`<%l%f~&YSP~OY&TZ;'S&T;'S;=`&f<%lO&T~&iP;=`<%l&T~&qO!p~~&tTOw&qwx%xx;'S&q;'S;=`'T<%lO&q~'WP;=`<%l&q~'`O!`~~'eO!a~~'jO!n~~'oO!q~~'tO!]~~'yO!e~~(OO!_~U(TW!oSOY(mZ](m^!P(m!Q#O(m#O#P)b#P;'S(m;'S;=`*a<%lO(mQ(pXOY(mZ](m^!P(m!P!Q)]!Q#O(m#O#P)b#P;'S(m;'S;=`*a<%lO(mQ)bO^QQ)eRO;'S(m;'S;=`)n;=`O(mQ)qYOY(mZ](m^!P(m!P!Q)]!Q#O(m#O#P)b#P;'S(m;'S;=`*a;=`<%l(m<%lO(mQ*dP;=`<%l(m~*lPY~!Q![*g~*tO!s~~*yP!f~!_!`*|~+RO!g~~+WP!h~#r#s+Z~+`O!l~~+eP!k~!_!`+h~+mO!j~~+rO!r~~+uQ!c!}+{#T#o+{~,QTa~}!O+{!Q![+{!c!}+{#R#S+{#T#o+{V,hUSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#o,aP-PUSP}!O,z!P!Q,z!Q![,z!c!},z#R#S,z#T#o,z~-hP!Z~!}#O-k~-nTO#P-k#P#Q-}#Q;'S-k;'S;=`.Y<%lO-k~.QP#P#Q.T~.YOo~~.]P;=`<%l-k~.eO!^~U.hTO#S.e#S#T.w#T;'S.e;'S;=`.|<%lO.eU.|OUUU/PP;=`<%l.eV/ZWSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#g,a#g#h/s#h#o,aV/zWSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#V,a#V#W0d#W#o,aV0mUSPxSUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#o,aV1WWSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#X,a#X#Y/S#Y#o,aV1wVSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#U2^#U#o,aV2eWSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#`,a#`#a2}#a#o,aV3UWSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#g,a#g#h3n#h#o,aV3uWSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#X,a#X#Y4_#Y#o,aV4hUSP]QUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#o,aV5RWSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#b,a#b#c5k#c#o,aV5tUSPlSUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#o,aV6_WSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#c,a#c#d6w#d#o,aV7OWSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#h,a#h#i7h#i#o,aV7qUSPjQUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#o,aV8[WSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#f,a#f#g8t#g#o,aV8{WSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#W,a#W#X9e#X#o,aV9lWSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#X,a#X#Y:U#Y#o,aV:]WSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#f,a#f#g:u#g#o,aV:|VSPUUpq;c}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#o,aU;fP#U#V;iU;lP#m#n;oU;tOuUV;{WSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#f,a#f#g<e#g#o,aV<lWSPUU}!O,a!P!Q,z!Q![,a!c!},a#R#S,a#T#i,a#i#j3n#j#o,a~=ZO!b~~=`O!c~",
|
tokenData: "=h~R!RX^$[pq$[qr%Prs%fst&Tuv&lwx&qxy'Zyz'`z{'e{|'j|}'o}!O't!O!P'y!P!Q(O!Q![*g![!]*o!^!_*t!_!`+R!`!a+`!a!b+m!b!c+z!c!},i!}#O-k#P#Q.h#S#T.m#T#U/[#U#W,i#W#X1X#X#Y,i#Y#Z1x#Z#],i#]#^5S#^#b,i#b#c6`#c#d8]#d#h,i#h#i;|#i#o,i#o#p=^#q#r=c#y#z$[$f$g$[#BY#BZ$[$IS$I_$[$I|$JO$[$JT$JU$[$KV$KW$[&FU&FV$[~$aY!Y~X^$[pq$[#y#z$[$f$g$[#BY#BZ$[$IS$I_$[$I|$JO$[$JT$JU$[$KV$KW$[&FU&FV$[U%UP!dQ!_!`%XS%^P!iS#r#s%aS%fO!mS~%iTOr%frs%xs;'S%f;'S;=`%}<%lO%f~%}OZ~~&QP;=`<%l%f~&YSP~OY&TZ;'S&T;'S;=`&f<%lO&T~&iP;=`<%l&T~&qO!p~~&tTOw&qwx%xx;'S&q;'S;=`'T<%lO&q~'WP;=`<%l&q~'`O!`~~'eO!a~~'jO!n~~'oO!q~~'tO!]~~'yO!e~~(OO!_~U(TW!oSOY(mZ](m^!P(m!Q#O(m#O#P)b#P;'S(m;'S;=`*a<%lO(mQ(pXOY(mZ](m^!P(m!P!Q)]!Q#O(m#O#P)b#P;'S(m;'S;=`*a<%lO(mQ)bO^QQ)eRO;'S(m;'S;=`)n;=`O(mQ)qYOY(mZ](m^!P(m!P!Q)]!Q#O(m#O#P)b#P;'S(m;'S;=`*a;=`<%l(m<%lO(mQ*dP;=`<%l(m~*lPY~!Q![*g~*tO!t~~*yP!f~!_!`*|~+RO!g~~+WP!h~#r#s+Z~+`O!l~~+eP!k~!_!`+h~+mO!j~~+rP!s~!a!b+u~+zO!r~~+}Q!c!},T#T#o,T~,YTa~}!O,T!Q![,T!c!},T#R#S,T#T#o,TV,pUSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#o,iP-XUSP}!O-S!P!Q-S!Q![-S!c!}-S#R#S-S#T#o-S~-pP!Z~!}#O-s~-vTO#P-s#P#Q.V#Q;'S-s;'S;=`.b<%lO-s~.YP#P#Q.]~.bOo~~.eP;=`<%l-s~.mO!^~U.pTO#S.m#S#T/P#T;'S.m;'S;=`/U<%lO.mU/UOUUU/XP;=`<%l.mV/cWSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#g,i#g#h/{#h#o,iV0SWSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#V,i#V#W0l#W#o,iV0uUSPxSUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#o,iV1`WSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#X,i#X#Y/[#Y#o,iV2PVSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#U2f#U#o,iV2mWSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#`,i#`#a3V#a#o,iV3^WSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#g,i#g#h3v#h#o,iV3}WSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#X,i#X#Y4g#Y#o,iV4pUSP]QUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#o,iV5ZWSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#b,i#b#c5s#c#o,iV5|USPlSUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#o,iV6gWSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#c,i#c#d7P#d#o,iV7WWSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#h,i#h#i7p#i#o,iV7yUSPjQUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#o,iV8dWSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#f,i#f#g8|#g#o,iV9TWSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#W,i#W#X9m#X#o,iV9tWSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#X,i#X#Y:^#Y#o,iV:eWSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#f,i#f#g:}#g#o,iV;UVSPUUpq;k}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#o,iU;nP#U#V;qU;tP#m#n;wU;|OuUV<TWSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#f,i#f#g<m#g#o,iV<tWSPUU}!O,i!P!Q-S!Q![,i!c!},i#R#S,i#T#i,i#i#j3v#j#o,i~=cO!b~~=hO!c~",
|
||||||
tokenizers: [0, 1, 2],
|
tokenizers: [0, 1, 2],
|
||||||
topRules: {"Program":[0,2]},
|
topRules: {"Program":[0,2]},
|
||||||
specialized: [{term: 6, get: (value) => spec_Identifier[value] || -1}],
|
specialized: [{term: 6, get: (value) => spec_Identifier[value] || -1}],
|
||||||
tokenPrec: 1186
|
tokenPrec: 1309
|
||||||
})
|
})
|
||||||
|
|
|
@ -99,6 +99,8 @@ BinExpression {
|
||||||
| Expression !mulop "%" Expression
|
| Expression !mulop "%" Expression
|
||||||
| Expression !addop "+" Expression
|
| Expression !addop "+" Expression
|
||||||
| Expression !addop "-" Expression
|
| Expression !addop "-" Expression
|
||||||
|
|
||||||
|
| Expression !or "??" Expression
|
||||||
}
|
}
|
||||||
|
|
||||||
TernaryExpression {
|
TernaryExpression {
|
||||||
|
|
|
@ -18,7 +18,7 @@ Deno.test("Test template", () => {
|
||||||
]], "}"]],
|
]], "}"]],
|
||||||
]]]);
|
]]]);
|
||||||
|
|
||||||
assertEquals(parseTemplate(`{{escapeRegexp @page.name}}`), ["Template", [
|
assertEquals(parseTemplate(`{{escapeRegexp(@page.name)}}`), ["Template", [
|
||||||
"TemplateElement",
|
"TemplateElement",
|
||||||
["ExpressionDirective", ["Expression", [
|
["ExpressionDirective", ["Expression", [
|
||||||
"Call",
|
"Call",
|
||||||
|
|
|
@ -41,17 +41,8 @@ function processTree(tree: AST): AST {
|
||||||
case "TemplateElement":
|
case "TemplateElement":
|
||||||
return ["TemplateElement", ...(tree.slice(1) as AST[]).map(processTree)];
|
return ["TemplateElement", ...(tree.slice(1) as AST[]).map(processTree)];
|
||||||
case "ExpressionDirective": {
|
case "ExpressionDirective": {
|
||||||
let exprString = tree[2][1] as string;
|
const exprString = tree[2][1] as string;
|
||||||
const legacyCallSyntax = /^([A-Za-z]+)\s+([^(]+$)/.exec(exprString);
|
|
||||||
if (legacyCallSyntax) {
|
|
||||||
// Translates "escapeRegex @page.name" -> "escapeRegex(@page.name)"
|
|
||||||
const [_, fn, args] = legacyCallSyntax;
|
|
||||||
exprString = `${fn}(${args})`;
|
|
||||||
console.warn(
|
|
||||||
"Translated legacy function call to new syntax",
|
|
||||||
exprString,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
const expressionTree = parseTreeToAST(parse(
|
const expressionTree = parseTreeToAST(parse(
|
||||||
expressionLanguage,
|
expressionLanguage,
|
||||||
exprString,
|
exprString,
|
||||||
|
|
|
@ -25,7 +25,7 @@ export function evalQueryExpression(
|
||||||
} else if (op1Val) {
|
} else if (op1Val) {
|
||||||
return evalQueryExpression(val[2], obj, variables, functionMap);
|
return evalQueryExpression(val[2], obj, variables, functionMap);
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return op1Val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case "or": {
|
case "or": {
|
||||||
|
@ -41,7 +41,7 @@ export function evalQueryExpression(
|
||||||
evalQueryExpression(val[2], obj, variables, functionMap)
|
evalQueryExpression(val[2], obj, variables, functionMap)
|
||||||
);
|
);
|
||||||
} else if (op1Val) {
|
} else if (op1Val) {
|
||||||
return true;
|
return op1Val;
|
||||||
} else {
|
} else {
|
||||||
return evalQueryExpression(val[2], obj, variables, functionMap);
|
return evalQueryExpression(val[2], obj, variables, functionMap);
|
||||||
}
|
}
|
||||||
|
@ -274,6 +274,8 @@ function evalSimpleExpression(type: string, val1: any, val2: any, val3: any) {
|
||||||
return val2.includes(val1);
|
return val2.includes(val1);
|
||||||
case "?":
|
case "?":
|
||||||
return val1 ? val2 : val3;
|
return val1 ? val2 : val3;
|
||||||
|
case "??":
|
||||||
|
return val1 ?? val2;
|
||||||
default:
|
default:
|
||||||
throw new Error(`Unupported operator: ${type}`);
|
throw new Error(`Unupported operator: ${type}`);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,10 +28,11 @@ Attribute of variable: {{@page.name}}
|
||||||
|
|
||||||
# Function calls
|
# Function calls
|
||||||
* `functionName(argument1, argument2, ...)`: call function `functionName`
|
* `functionName(argument1, argument2, ...)`: call function `functionName`
|
||||||
* `functionName`: call `functionName` without any arguments
|
* `functionName()` or `functionName`: call function `functionName` without arguments
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
```template
|
```template
|
||||||
|
contains with argument list: {{contains("FizzBuzz", "Fizz")}}
|
||||||
Today with argument list: {{today()}}
|
Today with argument list: {{today()}}
|
||||||
Today without an argument list: {{today}}
|
Today without an argument list: {{today}}
|
||||||
```
|
```
|
||||||
|
|
|
@ -13,13 +13,13 @@ To import this library, run the {[Library: Import]} command in your SilverBullet
|
||||||
# Included templates
|
# Included templates
|
||||||
```query
|
```query
|
||||||
template
|
template
|
||||||
where name =~ /^{{escapeRegexp @page.name}}\//
|
where name =~ /^{{escapeRegexp(@page.name)}}\//
|
||||||
render [[Library/Core/Query/Template]]
|
render [[Library/Core/Query/Template]]
|
||||||
```
|
```
|
||||||
|
|
||||||
# Included utility pages
|
# Included utility pages
|
||||||
```query
|
```query
|
||||||
page
|
page
|
||||||
where name =~ /^{{escapeRegexp @page.name}}\// and tags != "template"
|
where name =~ /^{{escapeRegexp(@page.name)}}\// and tags != "template"
|
||||||
render [[Library/Core/Query/Page]]
|
render [[Library/Core/Query/Page]]
|
||||||
```
|
```
|
||||||
|
|
|
@ -8,7 +8,7 @@ To import this library, run the {[Library: Import]} command in your SilverBullet
|
||||||
# Included templates
|
# Included templates
|
||||||
```query
|
```query
|
||||||
page
|
page
|
||||||
where name =~ /^{{escapeRegexp @page.name}}\//
|
where name =~ /^{{escapeRegexp(@page.name)}}\//
|
||||||
render [[Library/Core/Query/Page]]
|
render [[Library/Core/Query/Page]]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue