diff --git a/5.0/api-guide/combinator.html b/5.0/api-guide/combinator.html index 3f546bfc1..e5de056d8 100644 --- a/5.0/api-guide/combinator.html +++ b/5.0/api-guide/combinator.html @@ -177,7 +177,7 @@
The above example shows that the string
combinator is much faster than the "classic" definition
in terms of traverse
and char
(not even accounting for its improved error messages!). However,
diff --git a/5.0/api-guide/errors/combinator.html b/5.0/api-guide/errors/combinator.html
index 3707543dc..319098109 100644
--- a/5.0/api-guide/errors/combinator.html
+++ b/5.0/api-guide/errors/combinator.html
@@ -310,7 +310,7 @@
import parsley.errors.combinator.ErrorMethods
val digit = satisfy(_.isDigit).label("digit")
-// digit: parsley.Parsley[Char] = parsley.Parsley@3731a3c8
+// digit: parsley.Parsley[Char] = parsley.Parsley@3dc5367
digit.parse("a")
// res9: parsley.Result[String, Char] = Failure((line 1, column 1):
// unexpected "a"
@@ -328,7 +328,7 @@ val twoDigits = (digit *> digit).label("two digits")
-// twoDigits: parsley.Parsley[Char] = parsley.Parsley@61980c0c
+// twoDigits: parsley.Parsley[Char] = parsley.Parsley@56910917
twoDigits.parse("a")
// res10: parsley.Result[String, Char] = Failure((line 1, column 1):
// unexpected "a"
diff --git a/5.0/api-guide/errors/patterns.html b/5.0/api-guide/errors/patterns.html
index fe6bb2415..8b60a600e 100644
--- a/5.0/api-guide/errors/patterns.html
+++ b/5.0/api-guide/errors/patterns.html
@@ -184,10 +184,10 @@ // assume that a `lexer` is available
val float = lexer.nonlexeme.floating.decimal
-// float: parsley.Parsley[BigDecimal] = parsley.Parsley@588bbf81
+// float: parsley.Parsley[BigDecimal] = parsley.Parsley@d67ff3b
val _noFloat =
float.verifiedExplain("floating-point values may not be used as array indices")
-// _noFloat: parsley.Parsley[Nothing] = parsley.Parsley@634cb576
+// _noFloat: parsley.Parsley[Nothing] = parsley.Parsley@66bdd22a
_noFloat.parse("hello")
// res0: parsley.Result[String, Nothing] = Failure((line 1, column 1):
@@ -202,11 +202,11 @@ val
int = lexer.nonlexeme.unsigned.decimal
-// int: parsley.Parsley[BigInt] = parsley.Parsley@40e096b2
+// int: parsley.Parsley[BigInt] = parsley.Parsley@378ccfaf
val _noPlus = (char('+') ~> int).verifiedFail { n =>
Seq(s"the number $n may not be preceeded by \"+\"")
}
-// _noPlus: parsley.Parsley[Nothing] = parsley.Parsley@6c386845
+// _noPlus: parsley.Parsley[Nothing] = parsley.Parsley@23382e54
_noPlus.parse("+10")
// res2: parsley.Result[String, Nothing] = Failure((line 1, column 1):
// the number 10 may not be preceeded by "+"
@@ -225,7 +225,7 @@ override
def adjustWidth(x: BigInt, width: Int) = 1
}
}
-// _noPlus: parsley.Parsley[Nothing] = parsley.Parsley@15f1d552
+// _noPlus: parsley.Parsley[Nothing] = parsley.Parsley@4bbd5747
_noPlus.parse("+10")
// res3: parsley.Result[String, Nothing] = Failure((line 1, column 1):
// a number may not be preceeded by "+"
@@ -244,7 +244,7 @@ // _noFloat: parsley.Parsley[Nothing] = parsley.Parsley@65ae37c5
+
// _noFloat: parsley.Parsley[Nothing] = parsley.Parsley@69ab65e7
_noFloat.parse("3.142")
// res4: parsley.Result[String, Nothing] = Failure((line 1, column 1):
@@ -276,11 +276,11 @@ import parsley.errors.patterns.PreventativeErrors
val ident = lexer.nonlexeme.names.identifier
-// ident: parsley.Parsley[String] = parsley.Parsley@396586fe
+// ident: parsley.Parsley[String] = parsley.Parsley@78e7084e
val _noDot = (char('.') ~> ident).preventativeFail { v =>
Seq(s"accessing field $v is not permitted here")
}
-// _noDot: parsley.Parsley[Unit] = parsley.Parsley@27047811
+// _noDot: parsley.Parsley[Unit] = parsley.Parsley@2d808dde
_noDot.parse("hi")
// res5: parsley.Result[String, Unit] = Success(())
_noDot.parse(".foo")
diff --git a/5.0/api-guide/expr/precedence.html b/5.0/api-guide/expr/precedence.html
index f1048e899..06467b0f4 100644
--- a/5.0/api-guide/expr/precedence.html
+++ b/5.0/api-guide/expr/precedence.html
@@ -214,7 +214,7 @@ Ops(InfixL)("*" as Mul),
Ops(InfixL)("+" as Add, "-" as Sub)
)
-// expr: Parsley[Expr] = parsley.Parsley@195d14f4
+// expr: Parsley[Expr] = parsley.Parsley@1c24b545
expr.parse("x+5*y")
// res0: parsley.Result[String, Expr] = Success(Add(Var(x),Mul(Num(5),Var(y))))
@@ -294,7 +294,7 @@ These work fine for the most part, however, there are couple of problems with this:
Foo(_, _)
actually needs to be written as Foo.apply
, which introduces some (minor) noise;
@@ -198,7 +198,7 @@ Foo
has been turned into such a
bridge (definition below), the above example can be written as:
val q = Foo(px, py)
-// q: Parsley[Foo] = parsley.Parsley@47d358ca
+// q: Parsley[Foo] = parsley.Parsley@4547e0e2
In this version, the act of constructing the Foo
value has been abstracted behind the bridge, Foo
:
this means that the underlying implementation can vary without changing the parser.
What are Generic Bridges? @@ -270,7 +270,7 @@
val nullLit = NullLit <# "null"
-// nullLit: Parsley[Expr] = parsley.Parsley@347b555d
+// nullLit: Parsley[Expr] = parsley.Parsley@344ee1b5
nullLit.parse("null")
// res2: parsley.Result[String, Expr] = Success(NullLit)
Without any further configuration, notice that the result of parsing "null"
is indeed NullLit
,
@@ -351,7 +351,7 @@
// from `parsley-cats`, produces `NonEmptyList` instead of `List`
import parsley.cats.combinator.sepBy1
val tupleOrParens = TupleOrParens("(" ~> sepBy1(nullLit, ",") <~ ")")
-// tupleOrParens: Parsley[Expr] = parsley.Parsley@370251ec
+// tupleOrParens: Parsley[Expr] = parsley.Parsley@6afd0aef
tupleOrParens.parse("(null)")
// res4: parsley.Result[String, Expr] = Success(NullLit)
tupleOrParens.parse("(null,null)")
diff --git a/5.0/api-guide/state.html b/5.0/api-guide/state.html
index 3dd280f63..bed2b091d 100644
--- a/5.0/api-guide/state.html
+++ b/5.0/api-guide/state.html
@@ -243,9 +243,9 @@ import
parsley.syntax.character.{charLift, stringLift}
val openTag = atomic('<' <~ notFollowedBy('/'))
-// openTag: Parsley[Char] = parsley.Parsley@39d32546
+// openTag: Parsley[Char] = parsley.Parsley@754c45c3
val tagName = stringOfSome(letter)
-// tagName: Parsley[String] = parsley.Parsley@4a1da27
+// tagName: Parsley[String] = parsley.Parsley@2d79cb3b
lazy val content: Parsley[Unit] = optional(tag)
lazy val tag: Parsley[Unit] = (openTag ~> tagName <~ '>').fillRef { name =>
@@ -328,7 +328,7 @@ Verified Error to report a message based on the last opened bracket. The results are below:
val p = brackets
-// p: Parsley[Unit] = parsley.Parsley@5bbd7498
+// p: Parsley[Unit] = parsley.Parsley@4c1e3570
p.parse("()()()")
// res5: parsley.Result[String, Unit] = Success(())
@@ -407,7 +407,7 @@ i
.get <~ eof
}
-// abcs: Parsley[Int] = parsley.Parsley@325edf80
+// abcs: Parsley[Int] = parsley.Parsley@39ddd9b0
abcs.parse("aabbcc")
// res12: parsley.Result[String, Int] = Success(2)
diff --git a/5.0/api-guide/syntax.html b/5.0/api-guide/syntax.html
index f9c28addd..fdf905870 100644
--- a/5.0/api-guide/syntax.html
+++ b/5.0/api-guide/syntax.html
@@ -166,7 +166,7 @@ import parsley.syntax.character._
val p = 'a' ~> "bc"
-// p: parsley.Parsley[String] = parsley.Parsley@1443b889
+// p: parsley.Parsley[String] = parsley.Parsley@7a0a990
p.parse("abc")
// res0: parsley.Result[String, String] = Success(bc)
p.parse("axy")
diff --git a/5.0/api-guide/token/Lexer.html b/5.0/api-guide/token/Lexer.html
index 32512d81d..9c58d62c6 100644
--- a/5.0/api-guide/token/Lexer.html
+++ b/5.0/api-guide/token/Lexer.html
@@ -316,7 +316,7 @@ 345
. For signed
, each of these may be preceded by a +
sign, but this is not required; if positiveSign
is set to PlusSignPresence.Compulsory
, positive literals would always require a +
; and if it is set to PlusSignPrecense.Illegal
, the +
prefix can never be used (but -
is fine regardless). By default, 023
is legal, but this can be
disabled by setting leadingZerosAllowed
to false
.
val num = lexer.lexeme.signed.number
-// num: parsley.Parsley[BigInt] = parsley.Parsley@1f929147
+// num: parsley.Parsley[BigInt] = parsley.Parsley@3e2db3de
num.parse("0")
// res0: parsley.Result[String, BigInt] = Success(x = 0)
num.parse("0xff")
@@ -333,9 +333,9 @@ numericDesc = NumericDesc.plain.copy(
literalBreakChar = BreakCharDesc.Supported('_', allowedAfterNonDecimalPrefix = true))
))
-// lexerWithBreak: Lexer = parsley.token.Lexer@6469f96d
+// lexerWithBreak: Lexer = parsley.token.Lexer@1dfa7379
val withBreak = lexerWithBreak.lexeme.signed.number
-// withBreak: parsley.Parsley[BigInt] = parsley.Parsley@61ea4822
+// withBreak: parsley.Parsley[BigInt] = parsley.Parsley@6ea5427a
withBreak.parse("1_000")
// res4: parsley.Result[String, BigInt] = Success(x = 1000)
withBreak.parse("1_")
@@ -357,7 +357,7 @@ 2000
. Notice that literals do not require a point, so long as they do have
an exponent.
val real = lexer.lexeme.real
-// real: parsley.token.numeric.RealParsers = parsley.token.numeric.LexemeReal@63d65793
+// real: parsley.token.numeric.RealParsers = parsley.token.numeric.LexemeReal@6ed8dfea
real.hexadecimalDouble.parse("0x3.142")
// res7: parsley.Result[String, Double] = Failure(
// ...
@@ -448,9 +448,9 @@ nonlexeme.string
val fullUnicode = stringParsers(aboveSpace)
-// fullUnicode: parsley.token.text.StringParsers = parsley.token.text.ConcreteString@7fe6c98c
+// fullUnicode: parsley.token.text.StringParsers = parsley.token.text.ConcreteString@7a2f3825
val latin1Limited = stringParsers(predicate.Basic(c => c >= 0x20 && c <= 0xcf))
-// latin1Limited: parsley.token.text.StringParsers = parsley.token.text.ConcreteString@4ce1afc9
+// latin1Limited: parsley.token.text.StringParsers = parsley.token.text.ConcreteString@62c9e867
fullUnicode.latin1.parse("\"hello α\"")
// res13: parsley.Result[String, String] = Failure((line 1, column 2):
@@ -518,7 +518,7 @@
val withGaps = stringParsers(escapeDesc = EscapeDesc.plain.copy(gapsSupported = true))
-// withGaps: parsley.token.text.StringParsers = parsley.token.text.ConcreteString@1dda0309
+// withGaps: parsley.token.text.StringParsers = parsley.token.text.ConcreteString@4a464c5b
withGaps.ascii.parse(""""Hello \
\World!" """)
diff --git a/5.0/tutorial/basics-of-combinators.html b/5.0/tutorial/basics-of-combinators.html
index e98996436..27c32a3d4 100644
--- a/5.0/tutorial/basics-of-combinators.html
+++ b/5.0/tutorial/basics-of-combinators.html
@@ -536,10 +536,10 @@ import
parsley.debug._
val p = "abc" | atomic("def") | "dead"
-// p: Parsley[String] = parsley.Parsley@4d0fe454
+// p: Parsley[String] = parsley.Parsley@2e54a9b5
val q = "abc" | (atomic("def".debug("reading def")).debug("backtrack!") |
"dead".debug("reading dead")).debug("branch")
-// q: Parsley[String] = parsley.Parsley@cc372e0
+// q: Parsley[String] = parsley.Parsley@4332ab89
p.parse("dead")
// res37: parsley.Result[String, String] = Success(dead)
@@ -587,9 +587,9 @@
val eof = notFollowedBy(item)
-// eof: Parsley[Unit] = parsley.Parsley@68937bfe
+// eof: Parsley[Unit] = parsley.Parsley@77498b21
val abcOnly = "abc" <~ eof
-// abcOnly: Parsley[String] = parsley.Parsley@29b29246
+// abcOnly: Parsley[String] = parsley.Parsley@15eafa5
abcOnly.parse("abc")
// res39: parsley.Result[String, String] = Success(abc)
@@ -600,7 +600,7 @@
val p = "abc".debug("abc") <~ lookAhead("!!".debug("!!")).debug("lookahead")
-// p: Parsley[String] = parsley.Parsley@2f44dcf9
+// p: Parsley[String] = parsley.Parsley@92a96e1
p.parse("abc!!")
// >abc> (1, 1): abc!!•
diff --git a/5.0/tutorial/effective-whitespace-parsing.html b/5.0/tutorial/effective-whitespace-parsing.html
index cfe670cf8..5859da915 100644
--- a/5.0/tutorial/effective-whitespace-parsing.html
+++ b/5.0/tutorial/effective-whitespace-parsing.html
@@ -206,7 +206,7 @@ import parsley.expr.{precedence, Ops, InfixL}
val number = token(digit.foldLeft1[BigInt](0)((n, d) => n * 10 + d.asDigit))
-// number: Parsley[BigInt] = parsley.Parsley@38e4077
+// number: Parsley[BigInt] = parsley.Parsley@560b024e
lazy val atom: Parsley[BigInt] = "(" ~> expr <~ ")" | number
lazy val expr = precedence[BigInt](atom)(
diff --git a/downloads.html b/downloads.html
index 4bc1b7e11..7eb264e16 100644
--- a/downloads.html
+++ b/downloads.html
@@ -150,7 +150,7 @@ Documentation Downloads
diff --git a/downloads/docs-5.0-768c7e4-SNAPSHOT.pdf b/downloads/docs-5.0-768c7e4-SNAPSHOT.pdf
new file mode 100644
index 000000000..96d913c72
Binary files /dev/null and b/downloads/docs-5.0-768c7e4-SNAPSHOT.pdf differ
diff --git a/index.html b/index.html
index f42b918cb..d47174c5e 100644
--- a/index.html
+++ b/index.html
@@ -133,7 +133,7 @@ Getting Started
// mill
ivy"com.github.j-mie6::parsley:4.5.1"
Alternatively, the most up-to-date development pre-release is 5.0.0-M6
and the
- most bleeding-edge snapshot is 5.0-9e0d86e-SNAPSHOT
.
+ most bleeding-edge snapshot is 5.0-768c7e4-SNAPSHOT
.
Examples
Parsley can leverage string and character literals in Scala by implicit conversions, keeping the
@@ -142,7 +142,7 @@
<
import parsley.syntax.character.{charLift, stringLift}
val hello: Parsley[Unit] = ('h' ~> ("ello" | "i") ~> " world!").void
-// hello: Parsley[Unit] = parsley.Parsley@f5eb9aa
+// hello: Parsley[Unit] = parsley.Parsley@1a12f85a
hello.parse("hello world!")
// res0: parsley.Result[String, Unit] = Success(())
hello.parse("hi world!")
@@ -157,7 +157,7 @@ <
definitions of simple numbers:
import parsley.character.digit
val natural: Parsley[Int] = digit.foldLeft1(0)((n, d) => n * 10 + d.asDigit)
-// natural: Parsley[Int] = parsley.Parsley@15c978f2
+// natural: Parsley[Int] = parsley.Parsley@46e9db58
natural.parse("0")
// res3: parsley.Result[String, Int] = Success(0)
natural.parse("123")