detect 0.3.0

Expression-based file search combining name, content, metadata, and structured data predicates
Documentation
// Grammar for structured data path expressions
// Parses paths like: .spec.replicas, [0].name, .items[*].id

WHITESPACE = _{ " " | "\t" }

path = { SOI ~ component+ ~ EOI }

component = _{ recursive_key | key_access | index_access | wildcard_access }

// Recursive descent: ..fieldname
recursive_key = { ".." ~ identifier }

// Key access: .fieldname
key_access = { "." ~ identifier }
identifier = @{ (ASCII_ALPHA | "_") ~ (ASCII_ALPHANUMERIC | "_" | "-" | "/")* }

// Array index: [42]
index_access = { "[" ~ number ~ "]" }
number = @{ ASCII_DIGIT+ }

// Wildcard array access: [*]
wildcard_access = { "[" ~ "*" ~ "]" }