searchql v2.0.0 SearchQL.LogicalParser
Parses logical expressions in a SearchQL query.
Summary
Functions
Parses a list of tokens and returns that list with logical expressions replaced by logical tokens. Note that logical parsing is case-insensitive
Functions
Parses a list of tokens and returns that list with logical expressions replaced by logical tokens. Note that logical parsing is case-insensitive.
iex> SearchQL.LogicalParser.parse([data: "foo and bar"])
[and: {[data: "foo"], [data: "bar"]}]
This function parses tokens in reverse order, “OR”s before “AND”s. This results in a parsing where “AND” has the higher precedence, and where operator precedence is left-associative:
iex> SearchQL.LogicalParser.parse([data: "foo or bar and baz and qux"])
[or: {
[data: "foo"],
[and: {
[and: {
[data: "bar"],
[data: "baz"]}],
[data: "qux"]}]}]