trait TermsParsers extends RegexParsers with RegexCompletionSupport with TermsParsingHelpers with AlphabeticalSortingSupport
This trait adds specialized parsers for dealing with large lists of terms, both in terms of parsing (using a fast trie-based lookup) and completion (supporting fuzzy matching)
- Alphabetic
- By Inheritance
- TermsParsers
- AlphabeticalSortingSupport
- TermsParsingHelpers
- RegexCompletionSupport
- CompletionSupport
- CompletionTypes
- RegexParsers
- Parsers
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
abstract
class
Parser[+T] extends CompletionSupport.Parser[T]
The root class of completion parsers, overloading the
Parser
class.The root class of completion parsers, overloading the
Parser
class. Completion parsers are functions from the Input type to ParseResult, with the addition of acompletions
function from the Input type to an instance ofCompletions
- Definition Classes
- CompletionSupport
-
case class
Completion(value: Elems, score: Int = DefaultCompletionScore, meta: Option[String] = None) extends Product with Serializable
Completion entry
Completion entry
- value
entry value (e.g. string literal)
- score
entry score (defines the order of entries within a set, the higher the better)
- meta
entry meta (e.g. visual style)
- Definition Classes
- CompletionTypes
-
case class
CompletionSet(tag: CompletionTag, completions: HashMap[Elems, Completion]) extends Product with Serializable
Set of related completion entries
Set of related completion entries
- tag
set tag
- completions
set of unique completion entries
- Definition Classes
- CompletionTypes
-
case class
CompletionTag(label: String, score: Int, description: Option[String], meta: Option[String]) extends Product with Serializable
Tag defining identification and attributes of a set of completion entries
Tag defining identification and attributes of a set of completion entries
- label
tag label
- score
tag score (the higher the better, 0 by default)
- description
tag description (optional) - can be used for additional information e.g. for a tooltip
- meta
tag meta (optional) - can be used e.g. to define visual style
- Definition Classes
- CompletionTypes
-
case class
Completions(position: Position, meta: Option[String], sets: HashMap[String, CompletionSet]) extends Product with Serializable
Result of parser completion, listing the possible entry alternatives at a certain input position
Result of parser completion, listing the possible entry alternatives at a certain input position
- position
position in the input where completion entries apply
- sets
completion entries, grouped per tag
- Definition Classes
- CompletionTypes
-
type
Elem = Char
- Definition Classes
- RegexParsers → Parsers
-
type
Elems = Seq[Elem]
- Definition Classes
- CompletionTypes
-
case class
Error extends NoSuccess with Product with Serializable
- Definition Classes
- Parsers
-
case class
Failure extends NoSuccess with Product with Serializable
- Definition Classes
- Parsers
-
type
Input = Reader[Elem]
- Definition Classes
- Parsers
-
sealed abstract
class
NoSuccess extends ParseResult[Nothing]
- Definition Classes
- Parsers
-
trait
OnceParser[+T] extends scala.util.parsing.combinator.Parsers.Parser[T]
- Definition Classes
- Parsers
-
sealed abstract
class
ParseResult[+T] extends AnyRef
- Definition Classes
- Parsers
-
case class
Success[+T] extends ParseResult[T] with Product with Serializable
- Definition Classes
- Parsers
-
case class
~[+a, +b] extends Product with Serializable
- Definition Classes
- Parsers
-
case class
MatchingTerm(term: String, column: Int) extends Product with Serializable
- Definition Classes
- TermsParsingHelpers
-
case class
MatchingTerms(terms: Seq[(TermsParsingHelpers.this)#MatchingTerm], finalColumn: Int) extends Product with Serializable
- Definition Classes
- TermsParsingHelpers
Value Members
-
object
Completion extends Product with Serializable
- Definition Classes
- CompletionTypes
-
object
CompletionSet extends Product with Serializable
- Definition Classes
- CompletionTypes
-
object
CompletionTag extends Product with Serializable
- Definition Classes
- CompletionTypes
-
object
Completions extends Product with Serializable
- Definition Classes
- CompletionTypes
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
val
DefaultCompletionScore: Int
- Definition Classes
- CompletionTypes
-
val
DefaultCompletionTag: String
- Definition Classes
- CompletionTypes
-
def
OnceParser[T](f: (Input) ⇒ ParseResult[T]): TermsParsers.Parser[T] with OnceParser[T]
- Definition Classes
- Parsers
-
def
Parser[T](f: (Input) ⇒ ParseResult[T], c: (Input) ⇒ Completions): Parser[T]
- Definition Classes
- CompletionSupport
-
def
Parser[T](f: (Input) ⇒ ParseResult[T]): TermsParsers.Parser[T]
- Definition Classes
- Parsers
-
def
accept[U](expected: String, f: PartialFunction[Elem, U], completions: Set[Elem] = Set()): Parser[U]
The parser that matches an element in the domain of the partial function
f
.The parser that matches an element in the domain of the partial function
f
.If
f
is defined on the first element in the input,f
is applied to it to produce this parser's result.Example: The parser
accept("name", {case Identifier(n) => Name(n)})
accepts anIdentifier(n)
and returns aName(n)
- expected
a description of the kind of element this parser expects (for error messages)
- f
a partial function that determines when this parser is successful and what its output is
- completions
Possible alternatives (for completion)
- returns
A parser that succeeds if
f
is applicable to the first element of the input, applyingf
to it to produce the result.
- Definition Classes
- CompletionSupport
-
def
accept[ES](es: ES)(implicit arg0: (ES) ⇒ List[Elem]): Parser[List[Elem]]
A parser that matches only the given list of element
es
.A parser that matches only the given list of element
es
.accept(es)
succeeds if the input subsequently provides the elements in the listes
.- es
the list of expected elements
- returns
a Parser that recognizes a specified list of elements
- Definition Classes
- CompletionSupport → Parsers
-
implicit
def
accept(e: Elem): Parser[Elem]
A parser that matches only the given element
e
.A parser that matches only the given element
e
.The method is implicit so that elements can automatically be lifted to their parsers. For example, when parsing
Token
s,Identifier("new")
(which is aToken
) can be used directly, instead of first creating aParser
usingaccept(Identifier("new"))
.- e
the
Elem
that must be the next piece of input for the returned parser to succeed- returns
a
tParser
that succeeds ife
is the next available input.
- Definition Classes
- CompletionSupport → Parsers
-
def
accept[U](expected: String, f: PartialFunction[Elem, U]): TermsParsers.Parser[U]
- Definition Classes
- Parsers
-
def
acceptIf(p: (Elem) ⇒ Boolean, completions: Set[Elem])(err: (Elem) ⇒ String): Parser[Elem]
A parser matching input elements that satisfy a given predicate.
A parser matching input elements that satisfy a given predicate.
acceptIf(p)(el => "Unexpected "+el)
succeeds if the input starts with an elemente
for whichp(e)
is true.- p
A predicate that determines which elements match.
- completions
Possible completions
- err
A function from the received element into an error message.
- returns
A parser for elements satisfying p(e).
- Definition Classes
- CompletionSupport
-
def
acceptIf(p: (Elem) ⇒ Boolean)(err: (Elem) ⇒ String): TermsParsers.Parser[Elem]
- Definition Classes
- Parsers
-
def
acceptMatch[U](expected: String, f: PartialFunction[Elem, U], completions: Set[Completion]): Parser[U]
- Definition Classes
- CompletionSupport
-
def
acceptMatch[U](expected: String, f: PartialFunction[Elem, U]): TermsParsers.Parser[U]
- Definition Classes
- Parsers
-
def
acceptSeq[ES](es: ES)(implicit arg0: (ES) ⇒ Iterable[Elem]): Parser[List[Elem]]
A parser that matches only the given scala.collection.Iterable collection of elements
es
.A parser that matches only the given scala.collection.Iterable collection of elements
es
.acceptSeq(es)
succeeds if the input subsequently provides the elements in the iterablees
.- es
the list of expected elements
- returns
a Parser that recognizes a specified list of elements
- Definition Classes
- CompletionSupport → Parsers
-
def
alphabeticallySortedCompletions(terms: Iterable[String], maxCompletionsCount: Int): CompletionSet
- Definition Classes
- AlphabeticalSortingSupport
-
val
areLiteralsCaseSensitive: Boolean
- Attributes
- protected
- Definition Classes
- RegexCompletionSupport
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
chainl1[T, U](first: ⇒ Parser[T], p: ⇒ Parser[U], q: ⇒ Parser[(T, U) ⇒ T]): Parser[T]
A parser generator that, roughly, generalises the
rep1sep
generator so thatq
, which parses the separator, produces a left-associative function that combines the elements it separates.A parser generator that, roughly, generalises the
rep1sep
generator so thatq
, which parses the separator, produces a left-associative function that combines the elements it separates.- first
a parser that parses the first element
- p
a parser that parses the subsequent elements
- q
a parser that parses the token(s) separating the elements, yielding a left-associative function that combines two elements into one
- Definition Classes
- CompletionSupport
-
def
chainl1[T](p: ⇒ Parser[T], q: ⇒ Parser[(T, T) ⇒ T]): Parser[T]
A parser generator that, roughly, generalises the rep1sep generator so that
q
, which parses the separator, produces a left-associative function that combines the elements it separates.A parser generator that, roughly, generalises the rep1sep generator so that
q
, which parses the separator, produces a left-associative function that combines the elements it separates.From: J. Fokker. Functional parsers. In J. Jeuring and E. Meijer, editors, Advanced Functional Programming, volume 925 of Lecture Notes in Computer Science, pages 1--23. Springer, 1995.
- p
a parser that parses the elements
- q
a parser that parses the token(s) separating the elements, yielding a left-associative function that combines two elements into one
- Definition Classes
- CompletionSupport
-
def
chainl1[T, U](first: ⇒ TermsParsers.Parser[T], p: ⇒ TermsParsers.Parser[U], q: ⇒ TermsParsers.Parser[(T, U) ⇒ T]): TermsParsers.Parser[T]
- Definition Classes
- Parsers
-
def
chainl1[T](p: ⇒ TermsParsers.Parser[T], q: ⇒ TermsParsers.Parser[(T, T) ⇒ T]): TermsParsers.Parser[T]
- Definition Classes
- Parsers
-
def
chainr1[T, U](p: ⇒ Parser[T], q: ⇒ Parser[(T, U) ⇒ U], combine: (T, U) ⇒ U, first: U): Parser[U]
A parser generator that generalises the
rep1sep
generator so thatq
, which parses the separator, produces a right-associative function that combines the elements it separates.A parser generator that generalises the
rep1sep
generator so thatq
, which parses the separator, produces a right-associative function that combines the elements it separates. Additionally, the right-most (last) element and the left-most combining function have to be supplied.rep1sep(p: Parser[T], q) corresponds to chainr1(p, q ^^ cons, cons, Nil) (where val cons = (x: T, y: List[T]) => x :: y)
- p
a parser that parses the elements
- q
a parser that parses the token(s) separating the elements, yielding a right-associative function that combines two elements into one
- combine
the "last" (left-most) combination function to be applied
- first
the "first" (right-most) element to be combined
- Definition Classes
- CompletionSupport
-
def
chainr1[T, U](p: ⇒ TermsParsers.Parser[T], q: ⇒ TermsParsers.Parser[(T, U) ⇒ U], combine: (T, U) ⇒ U, first: U): TermsParsers.Parser[U]
- Definition Classes
- Parsers
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
commit[T](p: ⇒ Parser[T]): Parser[T]
Wrap a parser so that its failures become errors (the
|
combinator will give up as soon as it encounters an error, on failure it simply tries the next alternative).Wrap a parser so that its failures become errors (the
|
combinator will give up as soon as it encounters an error, on failure it simply tries the next alternative).- Definition Classes
- CompletionSupport
-
def
commit[T](p: ⇒ TermsParsers.Parser[T]): TermsParsers.Parser[T]
- Definition Classes
- Parsers
-
def
complete[T](p: Parser[T], in: CharSequence): Completions
Returns completions for character sequence
in
with parserp
.Returns completions for character sequence
in
with parserp
.- Definition Classes
- RegexCompletionSupport
-
def
complete[T](p: Parser[T], in: Reader[Char]): Completions
Returns completions for read
in
with parserp
.Returns completions for read
in
with parserp
.- Definition Classes
- RegexCompletionSupport
-
def
completeString[T](p: Parser[T], input: String): Seq[String]
Returns flattened string completions for character sequence
in
with parserp
.Returns flattened string completions for character sequence
in
with parserp
.- Definition Classes
- RegexCompletionSupport
-
def
dropAnyWhiteSpace(input: Input): Input
- Attributes
- protected
- Definition Classes
- RegexCompletionSupport
-
def
elem(e: Elem): Parser[Elem]
A parser that matches only the given element
e
.A parser that matches only the given element
e
.elem(e)
succeeds if the input starts with an elemente
.- e
the
Elem
that must be the next piece of input for the returned parser to succeed- returns
a
Parser
that succeeds ife
is the next available input (and returns it).
- Definition Classes
- CompletionSupport → Parsers
-
def
elem(kind: String, p: (Elem) ⇒ Boolean, completions: Set[Elem] = Set()): Parser[Elem]
A parser matching input elements that satisfy a given predicate.
A parser matching input elements that satisfy a given predicate.
elem(kind, p)
succeeds if the input starts with an elemente
for whichp(e)
is true.- kind
The element kind, used for error messages
- p
A predicate that determines which elements match.
- completions
Possible alternatives (for completion)
- Definition Classes
- CompletionSupport
-
def
elem(kind: String, p: (Elem) ⇒ Boolean): TermsParsers.Parser[Elem]
- Definition Classes
- Parsers
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
err(msg: String): Parser[Nothing]
A parser that results in an error.
A parser that results in an error.
- msg
The error message describing the failure.
- returns
A parser that always fails with the specified error message.
- Definition Classes
- CompletionSupport → Parsers
-
def
failure(msg: String): Parser[Nothing]
A parser that always fails.
A parser that always fails.
- msg
The error message describing the failure.
- returns
A parser that always fails with the specified error message.
- Definition Classes
- CompletionSupport → Parsers
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
findAllMatchingTerms(in: Input, offset: Int, map: Trie): MatchingTerms
- Attributes
- protected
- Definition Classes
- TermsParsingHelpers
-
def
findAllTermsWithPrefix(in: Input, offset: Int, map: Trie): Stream[String]
- Attributes
- protected
- Definition Classes
- TermsParsingHelpers
-
def
findMatchOffsets(s: String, in: Input): (Int, Int)
- Attributes
- protected
- Definition Classes
- RegexCompletionSupport
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
guard[T](p: ⇒ Parser[T]): Parser[T]
A parser generator for guard expressions.
A parser generator for guard expressions. The resulting parser will fail or succeed just like the one given as parameter but it will not consume any input.
- p
a
Parser
that is to be applied to the input- returns
A parser that returns success if and only if
p
succeeds but never consumes any input
- Definition Classes
- CompletionSupport
-
def
guard[T](p: ⇒ TermsParsers.Parser[T]): TermsParsers.Parser[T]
- Definition Classes
- Parsers
-
def
handleWhiteSpace(input: Input): Int
- Attributes
- protected
- Definition Classes
- RegexCompletionSupport
-
def
handleWhiteSpace(source: CharSequence, offset: Int): Int
- Attributes
- protected
- Definition Classes
- RegexParsers
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
implicit
def
literal(s: String): Parser[String]
- Definition Classes
- RegexCompletionSupport → RegexParsers
-
def
log[T](p: ⇒ Parser[T])(name: String): Parser[T]
A helper method that turns a
Parser
into one that will print debugging information to stdout before and after being applied.A helper method that turns a
Parser
into one that will print debugging information to stdout before and after being applied.- Definition Classes
- CompletionSupport
-
def
log[T](p: ⇒ TermsParsers.Parser[T])(name: String): TermsParsers.Parser[T]
- Definition Classes
- Parsers
-
def
mkList[T]: (~[T, List[T]]) ⇒ List[T]
- Definition Classes
- Parsers
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
not[T](p: ⇒ Parser[T]): Parser[Unit]
Wrap a parser so that its failures and errors become success and vice versa -- it never consumes any input.
Wrap a parser so that its failures and errors become success and vice versa -- it never consumes any input.
- Definition Classes
- CompletionSupport
-
def
not[T](p: ⇒ TermsParsers.Parser[T]): TermsParsers.Parser[Unit]
- Definition Classes
- Parsers
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
oneOfTerms(terms: Seq[String], maxCompletionsCount: Int): Parser[String]
This defines a parser which parses any of the specified terms.
This defines a parser which parses any of the specified terms. The parser performs a fast match by means of a trie data structure, initialized upon creation. Completions will return all available terms below the matching trie node, in alphabetical order (if any)
- terms
the list of terms to build the parser for
- maxCompletionsCount
maximum number of completions returned by the parser
- returns
parser instance
-
def
oneOfTermsFuzzy(terms: Seq[String], maxCompletionsCount: Int, similarityMeasure: (String, String) ⇒ Double = diceSorensenSimilarity, similarityThreshold: Int = DefaultSimilarityThreshold): Parser[String]
This defines a parser which parses any of the specified terms, and is capable of fuzzing completion on the input.
This defines a parser which parses any of the specified terms, and is capable of fuzzing completion on the input.
Parsing itself requires an exact match and is using the same trie-based technique as
oneOfTerms
.For fuzzy completion, terms are decomposed in their trigrams and stored in a map indexed by the corresponding trigrams. This allows fast lookup of a set of completion candidates which share the same trigrams as the input. These candidates are ranked by the number of shared trigrams with the input, and a subset of the highest ranked candidates are kept. These candidates are then re-evaluated with a more precise (but slower) specified similarity metric (Dice-Sorensen by default, see com.nexthink.utils.parsing.distance.DiceSorensenDistance). The top candidates according to a specified maximum number are returned as completions.
Note that terms are affixed so that the starting and ending two characters count more than the others in order to favor completions which start or end with the same characters as the input.
This approach is described in "Taming Text", chapter 4 "Fuzzy string matching", https://www.manning.com/books/taming-text
- terms
the list of terms to build the parser for
- maxCompletionsCount
maximum number of completions returned by the parser
- similarityMeasure
the string similarity metric to be used. Any
(String, String) => Double
function can be passed in. Various implementations are provided: com.nexthink.utils.parsing.distance.DiceSorensenDistance (default), com.nexthink.utils.parsing.distance.JaroWinklerDistance, com.nexthink.utils.parsing.distance.LevenshteinDistance & com.nexthink.utils.parsing.distance.NgramDistance. Metric choice depends on factors such as type of terms, performance, etc.- similarityThreshold
the minimum similarity score for an entry to be considered as a completion candidate
- returns
parser instance
-
def
opt[T](p: ⇒ Parser[T]): Parser[Option[T]]
A parser generator for optional sub-phrases.
A parser generator for optional sub-phrases.
opt(p)
is a parser that returnsSome(x)
ifp
returnsx
andNone
ifp
fails.- p
A
Parser
that is tried on the input- returns
a
Parser
that always succeeds: either with the result provided byp
or with the empty result
- Definition Classes
- CompletionSupport
-
def
opt[T](p: ⇒ TermsParsers.Parser[T]): TermsParsers.Parser[Option[T]]
- Definition Classes
- Parsers
-
def
parse[T](p: TermsParsers.Parser[T], in: Reader): ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parse[T](p: TermsParsers.Parser[T], in: CharSequence): ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parse[T](p: TermsParsers.Parser[T], in: Reader[Char]): ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parseAll[T](p: TermsParsers.Parser[T], in: CharSequence): ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parseAll[T](p: TermsParsers.Parser[T], in: Reader): ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parseAll[T](p: TermsParsers.Parser[T], in: Reader[Char]): ParseResult[T]
- Definition Classes
- RegexParsers
-
def
phrase[T](p: Parser[T]): Parser[T]
A parser generator delimiting whole phrases (i.e.
A parser generator delimiting whole phrases (i.e. programs).
phrase(p)
succeeds ifp
succeeds and no input is left over afterp
.- p
the parser that must consume all input for the resulting parser to succeed.
- returns
a parser that has the same result as
p
, but that only succeeds ifp
consumed all the input.
- Definition Classes
- CompletionSupport
-
def
phrase[T](p: TermsParsers.Parser[T]): TermsParsers.Parser[T]
- Definition Classes
- RegexParsers → Parsers
-
def
positioned[T <: Positional](p: ⇒ Parser[T]): Parser[T]
positioned
decorates a parser's result with the start position of the input it consumed.positioned
decorates a parser's result with the start position of the input it consumed.- p
a
Parser
whose result conforms toPositional
.- returns
A parser that has the same behaviour as
p
, but which marks its result with the start position of the input it consumed, if it didn't already have a position.
- Definition Classes
- RegexCompletionSupport → CompletionSupport
-
def
positioned[T <: Positional](p: ⇒ TermsParsers.Parser[T]): TermsParsers.Parser[T]
- Definition Classes
- RegexParsers → Parsers
-
implicit
def
regex(r: Regex): Parser[String]
- Definition Classes
- RegexCompletionSupport → RegexParsers
-
def
remainder[T](reader: Reader[T]): String
- Definition Classes
- TermsParsingHelpers
-
def
rep[T](p: ⇒ Parser[T]): Parser[List[T]]
A parser generator for repetitions.
A parser generator for repetitions.
rep(p)
repeatedly usesp
to parse the input untilp
fails (the result is a List of the consecutive results ofp
).- p
a
Parser
that is to be applied successively to the input- returns
A parser that returns a list of results produced by repeatedly applying
p
to the input.
- Definition Classes
- CompletionSupport
-
def
rep[T](p: ⇒ TermsParsers.Parser[T]): TermsParsers.Parser[List[T]]
- Definition Classes
- Parsers
-
def
rep1[T](first: ⇒ Parser[T], p0: ⇒ Parser[T]): Parser[List[T]]
A parser generator for non-empty repetitions.
A parser generator for non-empty repetitions.
rep1(f, p)
first usesf
(which must succeed) and then repeatedly usesp
to parse the input untilp
fails (the result is aList
of the consecutive results off
andp
)- first
a
Parser
that parses the first piece of input- p0
a
Parser
that is to be applied successively to the rest of the input (if any) -- evaluated at most once, and only when necessary- returns
A parser that returns a list of results produced by first applying
f
and then repeatedlyp
to the input (it only succeeds iff
matches).
- Definition Classes
- CompletionSupport
-
def
rep1[T](p: ⇒ Parser[T]): Parser[List[T]]
A parser generator for non-empty repetitions.
A parser generator for non-empty repetitions.
rep1(p)
repeatedly usesp
to parse the input untilp
fails --p
must succeed at least once (the result is aList
of the consecutive results ofp
)- p
a
Parser
that is to be applied successively to the input- returns
A parser that returns a list of results produced by repeatedly applying
p
to the input (and that only succeeds ifp
matches at least once).
- Definition Classes
- CompletionSupport
-
def
rep1[T](first: ⇒ TermsParsers.Parser[T], p0: ⇒ TermsParsers.Parser[T]): TermsParsers.Parser[List[T]]
- Definition Classes
- Parsers
- Annotations
- @migration
- Migration
(Changed in version 2.9.0) The
p0
call-by-name arguments is evaluated at most once per constructed Parser object, instead of on every need that arises during parsing.
-
def
rep1[T](p: ⇒ TermsParsers.Parser[T]): TermsParsers.Parser[List[T]]
- Definition Classes
- Parsers
-
def
rep1sep[T](p: ⇒ Parser[T], q: ⇒ Parser[Any]): Parser[List[T]]
A parser generator for non-empty repetitions.
A parser generator for non-empty repetitions.
rep1sep(p, q)
repeatedly appliesp
interleaved withq
to parse the input, untilp
fails. The parserp
must succeed at least once.- p
a
Parser
that is to be applied successively to the input- q
a
Parser
that parses the elements that separate the elements parsed byp
(interleaved withq
)- returns
A parser that returns a list of results produced by repeatedly applying
p
to the input (and that only succeeds ifp
matches at least once). The results ofp
are collected in a list. The results ofq
are discarded.
- Definition Classes
- CompletionSupport
-
def
rep1sep[T](p: ⇒ TermsParsers.Parser[T], q: ⇒ TermsParsers.Parser[Any]): TermsParsers.Parser[List[T]]
- Definition Classes
- Parsers
-
def
repN[T](num: Int, p0: ⇒ Parser[T]): Parser[List[T]]
A parser generator for a specified number of repetitions.
A parser generator for a specified number of repetitions.
repN(n, p)
usesp
exactlyn
time to parse the input (the result is aList
of then
consecutive results ofp
).- num
the exact number of times
p
must succeed- p0
a
Parser
that is to be applied successively to the input- returns
A parser that returns a list of results produced by repeatedly applying
p
to the input (and that only succeeds ifp
matches exactlyn
times).
- Definition Classes
- CompletionSupport
-
def
repN[T](num: Int, p: ⇒ TermsParsers.Parser[T]): TermsParsers.Parser[List[T]]
- Definition Classes
- Parsers
-
def
repsep[T](p: ⇒ Parser[T], q: ⇒ Parser[Any]): Parser[List[T]]
A parser generator for interleaved repetitions.
A parser generator for interleaved repetitions.
repsep(p, q)
repeatedly usesp
interleaved withq
to parse the input, untilp
fails. (The result is aList
of the results ofp
.)Example:
repsep(term, ",")
parses a comma-separated list of term's, yielding a list of these terms.- p
a
Parser
that is to be applied successively to the input- q
a
Parser
that parses the elements that separate the elements parsed byp
- returns
A parser that returns a list of results produced by repeatedly applying
p
(interleaved withq
) to the input. The results ofp
are collected in a list. The results ofq
are discarded.
- Definition Classes
- CompletionSupport
-
def
repsep[T](p: ⇒ TermsParsers.Parser[T], q: ⇒ TermsParsers.Parser[Any]): TermsParsers.Parser[List[T]]
- Definition Classes
- Parsers
-
def
skipWhitespace: Boolean
- Definition Classes
- RegexParsers
-
def
subSequence[T](reader: Reader[T], end: Int): String
- Definition Classes
- TermsParsingHelpers
-
def
success[T](v: T): Parser[T]
A parser that always succeeds.
A parser that always succeeds.
- v
The result for the parser
- returns
A parser that always succeeds, with the given result
v
- Definition Classes
- CompletionSupport → Parsers
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
val
whiteSpace: Regex
- Attributes
- protected
- Definition Classes
- RegexParsers
-
object
NoSuccess
- Definition Classes
- Parsers