JavaTokenParsers
JavaTokenParsers
differs from scala.util.parsing.combinator.RegexParsers
by adding the following definitions:
ident
wholeNumber
decimalNumber
stringLiteral
floatingPointNumber
Type members
Inherited classlikes
The fatal failure case of ParseResult: contains an error-message and
the remaining input.
No back-tracking is done when a parser returns an Error
.
The fatal failure case of ParseResult: contains an error-message and
the remaining input.
No back-tracking is done when a parser returns an Error
.
- Value parameters:
- msg
An error message string describing the error.
- next
The parser's unconsumed input at the point where the error occurred.
- Inherited from:
- Parsers
The failure case of ParseResult
: contains an error-message and the remaining input.
Parsing will back-track when a failure occurs.
The failure case of ParseResult
: contains an error-message and the remaining input.
Parsing will back-track when a failure occurs.
- Value parameters:
- msg
An error message string describing the failure.
- next
The parser's unconsumed input at the point where the failure occurred.
- Inherited from:
- Parsers
A common super-class for unsuccessful parse results.
A common super-class for unsuccessful parse results.
- Inherited from:
- Parsers
An extractor so NoSuccess(msg, next)
can be used in matches.
An extractor so NoSuccess(msg, next)
can be used in matches.
- Inherited from:
- Parsers
A parser whose ~
combinator disallows back-tracking.
A parser whose ~
combinator disallows back-tracking.
- Inherited from:
- Parsers
A base class for parser results. A result is either successful or not
(failure may be fatal, i.e., an Error, or not, i.e., a Failure). On
success, provides a result of type T
which consists of some result
(and the rest of the input).
A base class for parser results. A result is either successful or not
(failure may be fatal, i.e., an Error, or not, i.e., a Failure). On
success, provides a result of type T
which consists of some result
(and the rest of the input).
- Inherited from:
- Parsers
The root class of parsers. Parsers are functions from the Input type to ParseResult.
The root class of parsers. Parsers are functions from the Input type to ParseResult.
- Inherited from:
- Parsers
The success case of ParseResult
: contains the result and the remaining input.
The success case of ParseResult
: contains the result and the remaining input.
- Value parameters:
- next
The parser's remaining input
- result
The parser's output
- Inherited from:
- Parsers
A wrapper over sequence of matches.
A wrapper over sequence of matches.
Given p1: Parser[A]
and p2: Parser[B]
, a parser composed with
p1 ~ p2
will have type Parser[~[A, B]]
. The successful result
of the parser can be extracted from this case class.
It also enables pattern matching, so something like this is possible:
def concat(p1: Parser[String], p2: Parser[String]): Parser[String] =
p1 ~ p2 ^^ { case a ~ b => a + b }
- Inherited from:
- Parsers
Inherited types
Value members
Concrete methods
Number following one of these rules:
Number following one of these rules:
- An integer. For example:
13
- An integer followed by a decimal point. For example:
3.
- An integer followed by a decimal point and fractional part. For example:
3.14
- A decimal point followed by a fractional part. For example:
.1
A number following the rules of decimalNumber
, with the following
optional additions:
A number following the rules of decimalNumber
, with the following
optional additions:
- Preceded by a negative sign
- Followed by
e
orE
and an optionally signed integer - Followed by
f
,f
,d
orD
(after the above rule, if both are used)
Anything that is a valid Java identifier, according to The Java Language Spec. Generally, this means a letter, followed by zero or more letters or numbers.
Anything that is a valid Java identifier, according to The Java Language Spec. Generally, this means a letter, followed by zero or more letters or numbers.
Double quotes ("
) enclosing a sequence of:
Double quotes ("
) enclosing a sequence of:
- Any character except double quotes, control characters or backslash (
\
) - A backslash followed by another backslash, a single or double quote, or one
of the letters
b
,f
,n
,r
ort
\
followed byu
followed by four hexadecimal digits
Inherited methods
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 an Identifier(n)
and returns a Name(n)
- Value parameters:
- 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
- Returns:
A parser that succeeds if
f
is applicable to the first element of the input, applyingf
to it to produce the result.- Inherited from:
- Parsers
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 list es
.
- Value parameters:
- es
the list of expected elements
- Returns:
a Parser that recognizes a specified list of elements
- Inherited from:
- Parsers
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 element e
for which p(e)
is true.
- Value parameters:
- err
A function from the received element into an error message.
- p
A predicate that determines which elements match.
- Returns:
A parser for elements satisfying p(e).
- Inherited from:
- Parsers
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 acceptMatch("name", {case Identifier(n) => Name(n)})
accepts an Identifier(n)
and returns a Name(n)
- Value parameters:
- 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
- Returns:
A parser that succeeds if
f
is applicable to the first element of the input, applyingf
to it to produce the result.- Inherited from:
- Parsers
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 iterable es
.
- Value parameters:
- es
the list of expected elements
- Returns:
a Parser that recognizes a specified list of elements
- Inherited from:
- Parsers
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.
- Value parameters:
- 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
- Inherited from:
- Parsers
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.''
- Value parameters:
- 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
- Inherited from:
- Parsers
A parser generator that generalises the rep1sep
generator so that q
,
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.
A parser generator that generalises the rep1sep
generator so that q
,
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)
- Value parameters:
- combine
the "last" (left-most) combination function to be applied
- first
the "first" (right-most) element to be combined
- 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
- Inherited from:
- Parsers
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).
- Inherited from:
- Parsers
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 element e
.
- Value parameters:
- 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).- Inherited from:
- Parsers
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 element e
for which p(e)
is true.
- Value parameters:
- kind
The element kind, used for error messages
- p
A predicate that determines which elements match.
- Inherited from:
- Parsers
A parser that results in an error.
A parser that results in an error.
This parser additionally skips whitespace if skipWhitespace
returns true.
- Definition Classes
- Inherited from:
- RegexParsers
A parser that always fails.
A parser that always fails.
- Value parameters:
- msg
The error message describing the failure.
- Returns:
A parser that always fails with the specified error message.
- Inherited from:
- Parsers
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.
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.
- Value parameters:
- 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- Inherited from:
- Parsers
Method called to handle whitespace before parsers.
Method called to handle whitespace before parsers.
It checks skipWhitespace
and, if true, skips anything
matching whiteSpace
starting from the current offset.
- Value parameters:
- offset
The offset into
source
from which to match.- source
The input being parsed.
- Returns:
The offset to be used for the next parser.
- Inherited from:
- RegexParsers
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.
- Inherited from:
- Parsers
Given a concatenation with a repetition (list), move the concatenated element into the list
Given a concatenation with a repetition (list), move the concatenated element into the list
- Inherited from:
- Parsers
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.
- Inherited from:
- Parsers
A parser generator for optional sub-phrases.
A parser generator for optional sub-phrases.
opt(p)
is a parser that returns Some(x)
if p
returns x
and None
if p
fails.
- Value parameters:
- 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- Inherited from:
- Parsers
Parse some prefix of reader in
with parser p
.
Parse some prefix of reader in
with parser p
.
- Inherited from:
- RegexParsers
Parse some prefix of character sequence in
with parser p
.
Parse some prefix of character sequence in
with parser p
.
- Inherited from:
- RegexParsers
Parse some prefix of reader in
with parser p
.
Parse some prefix of reader in
with parser p
.
- Inherited from:
- RegexParsers
Parse all of character sequence in
with parser p
.
Parse all of character sequence in
with parser p
.
- Inherited from:
- RegexParsers
Parse all of reader in
with parser p
.
Parse all of reader in
with parser p
.
- Inherited from:
- RegexParsers
Parse all of reader in
with parser p
.
Parse all of reader in
with parser p
.
- Inherited from:
- RegexParsers
A parser generator delimiting whole phrases (i.e. programs).
A parser generator delimiting whole phrases (i.e. programs).
phrase(p)
succeeds if p
succeeds and no input is left over after p
.
- Value parameters:
- 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
- Inherited from:
- RegexParsers
positioned
decorates a parser's result with the start position of the input it consumed.
If whitespace is being skipped, then it is skipped before the start position is recorded.
positioned
decorates a parser's result with the start position of the input it consumed.
If whitespace is being skipped, then it is skipped before the start position is recorded.
- Value parameters:
- 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 after whitespace has been skipped, if it didn't already have a position.- Definition Classes
- Inherited from:
- RegexParsers
A parser generator for repetitions.
A parser generator for repetitions.
rep(p)
repeatedly uses p
to parse the input until p
fails
(the result is a List of the consecutive results of p
).
- Value parameters:
- 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.- Inherited from:
- Parsers
A parser generator for non-empty repetitions.
A parser generator for non-empty repetitions.
rep1(f, p)
first uses f
(which must succeed) and then repeatedly
uses p
to parse the input until p
fails
(the result is a List
of the consecutive results of f
and p
)
- Value parameters:
- 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).- Inherited from:
- Parsers
A parser generator for non-empty repetitions.
A parser generator for non-empty repetitions.
rep1(p)
repeatedly uses p
to parse the input until p
fails -- p
must succeed at least
once (the result is a List
of the consecutive results of p
)
- Value parameters:
- 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).- Inherited from:
- Parsers
A parser generator for non-empty repetitions.
A parser generator for non-empty repetitions.
rep1sep(p, q)
repeatedly applies p
interleaved with q
to parse the
input, until p
fails. The parser p
must succeed at least once.
- Value parameters:
- 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.- Inherited from:
- Parsers
A parser generator for a specified number of repetitions.
A parser generator for a specified number of repetitions.
repN(n, p)
uses p
exactly n
time to parse the input
(the result is a List
of the n
consecutive results of p
).
- Value parameters:
- num
the exact number of times
p
must succeed- 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 exactlyn
times).- Inherited from:
- Parsers
A parser generator for a specified range of repetitions interleaved by a separator.
A parser generator for a specified range of repetitions interleaved by a separator.
repNM(n, m, p, s)
uses p
at least n
times and up to m
times, interleaved
with separator s
, to parse the input
(the result is a List
of at least n
consecutive results of p
and up to m
results).
- Value parameters:
- m
maximum number of repetitions
- n
minimum number of repetitions
- p
a
Parser
that is to be applied successively to the input- sep
a
Parser
that interleaves with p
- Returns:
A parser that returns a list of results produced by repeatedly applying
p
interleaved withsep
to the input. The list has a size betweenn
and up tom
(and that only succeeds ifp
matches at leastn
times).- Inherited from:
- Parsers
A parser generator for interleaved repetitions.
A parser generator for interleaved repetitions.
repsep(p, q)
repeatedly uses p
interleaved with q
to parse the input, until p
fails.
(The result is a List
of the results of p
.)
Example: repsep(term, ",")
parses a comma-separated list of term's, yielding a list of these terms.
- Value parameters:
- 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.- Inherited from:
- Parsers
Inherited fields
Implicits
Inherited implicits
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 a Token
) can be used directly,
instead of first creating a Parser
using accept(Identifier("new"))
.
- Value parameters:
- 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.- Inherited from:
- Parsers
A parser that matches a literal string
A parser that matches a literal string
- Inherited from:
- RegexParsers
A parser that matches a regex string
A parser that matches a regex string
- Inherited from:
- RegexParsers