View Source Dequel.Parser.Predicates (Dequel v0.6.0)
Parses predicates (operators) in field expressions.
Syntax
Predicates appear after the colon in field expressions:
title:foobar # equality (implicit)
title:*foobar # contains (shorthand)
title:contains(foobar) # contains (explicit)Available Predicates
| Predicate | Shorthand | Example |
|---|---|---|
== | : | title:value |
contains | * | title:*value |
starts_with | ^ | title:^value |
ends_with | $ | title:$value |
one_of | [...] | title:[a, b, c] |
Multi-Value Expansion
Comma-separated values in parentheses expand to OR conditions:
name:contains(foo, bar)
# expands to: name:contains(foo) OR name:contains(bar)Think of it like the distributive property: p(a, b) = p(a) OR p(b).
Predicate Options
Options follow the value, separated by whitespace:
name:contains(frodo i)
# ^ case-insensitive flagThe parser accepts any options; validation is handled by the linter.
Summary
Functions
@spec between_call(binary(), keyword()) :: {:ok, [term()], rest, context, line, byte_offset} | {:error, reason, rest, context, line, byte_offset} when line: {pos_integer(), byte_offset}, byte_offset: pos_integer(), rest: binary(), reason: String.t(), context: map()
Parses the given binary as between_call.
Returns {:ok, [token], rest, context, position, byte_offset} or
{:error, reason, rest, context, line, byte_offset} where position
describes the location of the between_call (start position) as {line, offset_to_start_of_line}.
To column where the error occurred can be inferred from byte_offset - offset_to_start_of_line.
Options
:byte_offset- the byte offset for the whole binary, defaults to 0:line- the line and the byte offset into that line, defaults to{1, byte_offset}:context- the initial context value. It will be converted to a map
between_call__0(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__7(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__8(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__13(arg, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__15(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__16(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__23(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__25(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__26(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__32(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__33(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__38(arg, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__40(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__41(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__48(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__50(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__51(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__62(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__63(rest, acc, stack, context, comb__line, comb__offset)
View Sourcebetween_call__68(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__4(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__9(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__10(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__21(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__22(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__32(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__33(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__42(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__47(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__48(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__59(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__60(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__65(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__70(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__71(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__81(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__86(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__87(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__98(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__99(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__104(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__109(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__110(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__120(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__125(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__126(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__137(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__138(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__143(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__148(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparator__149(rest, acc, stack, context, comb__line, comb__offset)
View Sourcecomparison_op__0(rest, acc, stack, context, comb__line, comb__offset)
View Source@spec function_call(binary(), keyword()) :: {:ok, [term()], rest, context, line, byte_offset} | {:error, reason, rest, context, line, byte_offset} when line: {pos_integer(), byte_offset}, byte_offset: pos_integer(), rest: binary(), reason: String.t(), context: map()
Parses the given binary as function_call.
Returns {:ok, [token], rest, context, position, byte_offset} or
{:error, reason, rest, context, line, byte_offset} where position
describes the location of the function_call (start position) as {line, offset_to_start_of_line}.
To column where the error occurred can be inferred from byte_offset - offset_to_start_of_line.
Options
:byte_offset- the byte offset for the whole binary, defaults to 0:line- the line and the byte offset into that line, defaults to{1, byte_offset}:context- the initial context value. It will be converted to a map