searchql v2.1.2 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

parse(tokens)

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"])
[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"],
  [data: "bar", data: "baz", data: "qux"]}]