class
TestQueryParser extends AnyRef
Instance Constructors
-
new
TestQueryParser(input: String)
Type Members
-
type
Parsed[T] = Either[String, (T, Int)]
-
type
Trees = Seq[Tree[String]]
Value Members
-
final
def
!=(arg0: AnyRef): Boolean
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: AnyRef): Boolean
-
final
def
==(arg0: Any): Boolean
-
final
def
asInstanceOf[T0]: T0
-
def
chain(index: Int): Parsed[Tree[String]]
-
def
clone(): AnyRef
-
def
commas(index: Int): Parsed[Trees]
-
def
curlies(index: Int): Parsed[Trees]
-
val
delimiters: Set[Char]
-
final
def
eq(arg0: AnyRef): Boolean
-
def
equals(arg0: Any): Boolean
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
final
def
isInstanceOf[T0]: Boolean
-
def
item(index: Int): Parsed[String]
-
final
def
ne(arg0: AnyRef): Boolean
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
def
repSep[T](index0: Int, p: (Int) ⇒ Parsed[T], sep: Char): Parsed[Seq[T]]
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
def
treeify(s: Seq[String], end: Trees): Tree[String]
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Inherited from AnyRef
Inherited from Any
Parses query strings.
Fastparse grammar:
val quoted: P[String] = P("\"" ~/ CharsWhile(_ != '"').! ~ "\"") val ident: P[String] = P(CharIn('a' to 'z', 'A' to 'Z', "_-").rep(1).!) val item: P[String] = P(quoted | ident) val chain: P[Any] = P(item.rep(1, sep="." ~/) ~ ("." ~/ parseCurlies).?) val commas: P[Any] = P(chain.rep(1, sep=","~/)) val curlies: P[Any] = P(commas | "{" ~/ curlies ~ "}")
But here written manually to avoid the dependency on FastParse.