svoid test_agiBlue_parseQueryScript() { assertEqualsVerbose(unstruct([=[ [ALQLTriple(triple=T3(a="word types", b="is plural of", c="$x")), ALQLTriple(triple=T3(a="$y", b="is a", c="$x")), ALQLReturn(var="$y")] ]=]), agiBlue_parseQueryScript([[ word types / is plural of / $x $y / is a / $x return $y ]])); assertEqualsVerbose(unstruct([=[ [ALQLLockStatement(triple=T3(a="word types", b="is plural of", c="*"))] ]=]), agiBlue_parseQueryScript([[ lock { word types / is plural of / * } ]])); assertEqualsVerbose(unstruct([=[ [ALQLPage(page="delete slice $x", matchMethod="flexMatchDollarVarsIC_first")] ]=]), agiBlue_parseQueryScript([[ page { delete slice $x } ]])); assertEqualsVerbose(unstruct([=[ [ALQLPage(page="bla", matchMethod="eqic")] ]=]), agiBlue_parseQueryScript([[ page { bla } ]])); assertEqualsVerbose(unstruct([=[ [ ALQLSlice(slice="hello", contents=[ ALQLPage(page="bla", matchMethod="eqic"), ALQLPage(page="blubb", matchMethod="eqic") ])] ] ]=]), agiBlue_parseQueryScript([[ slice "hello" { page { bla } page { blubb } } ]])); // tuple return assertEqualsVerbose(unstruct([=[ [ALQLReturnTuple(vars=["$x", "$y"])] ]=]), agiBlue_parseQueryScript([[ return $x, $y ]])); }