summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Haoyi <haoyi@dropbox.com>2014-11-28 06:24:55 -0800
committerLi Haoyi <haoyi@dropbox.com>2014-11-28 06:24:55 -0800
commitccd7035677b30d0707dfded548a9830855335573 (patch)
tree0719afc7d8d95f321e29928916760849325275d6
parent9270f9ada72fa36ebe2b6907b2e8f330cc7e7996 (diff)
downloadhands-on-scala-js-ccd7035677b30d0707dfded548a9830855335573.tar.gz
hands-on-scala-js-ccd7035677b30d0707dfded548a9830855335573.tar.bz2
hands-on-scala-js-ccd7035677b30d0707dfded548a9830855335573.zip
Down to ArraySAMTest.scala
-rw-r--r--scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala7
-rw-r--r--scalaParser/src/test/resources/test.scala6
2 files changed, 6 insertions, 7 deletions
diff --git a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala b/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
index f99e016..0792fd9 100644
--- a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
+++ b/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
@@ -74,7 +74,7 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
def Ids = rule { oneOrMore(Id) separatedBy ',' }
def NotNewline: R0 = rule{ &( WS ~ noneOf("\n") )}
- def OneNewlineMax: R0 = rule{ optional(Basic.Newline) ~ NotNewline}
+ def OneNewlineMax: R0 = rule{ WS ~ optional(Basic.Newline) ~ NotNewline}
def StableId: R0 = {
def ClassQualifier = rule { '[' ~ Id ~ ']' }
rule {
@@ -200,10 +200,11 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
def PostfixExpr(G: Boolean = false): R0 = {
def PrefixExpr = rule { optional(WL ~ anyOf("-+~!")) ~ SimpleExpr }
def Check = if (G) OneNewlineMax else MATCH
+ def Check0 = if (G) NotNewline else MATCH
def InfixExpr: R0 = rule {
PrefixExpr ~
zeroOrMore(
- NotNewline ~
+ Check0 ~
Id ~
Check ~
PrefixExpr
@@ -392,7 +393,7 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
}
def PatVarDef: R0 = {
- def PatDef: R0 = rule { oneOrMore(Pattern2).separatedBy(',') ~ optional(K.O(":") ~ Type) ~ K.O("=") ~ Expr }
+ def PatDef: R0 = rule { oneOrMore(Pattern2).separatedBy(',') ~ optional(K.O(":") ~ Type) ~ K.O("=") ~ Expr0(true) }
def VarDef: R0 = rule { Ids ~ K.O(":") ~ Type ~ K.O("=") ~ K.W("_") | PatDef }
rule { K.W("val") ~ PatDef | K.W("var") ~ VarDef }
}
diff --git a/scalaParser/src/test/resources/test.scala b/scalaParser/src/test/resources/test.scala
index 69f1f1a..60f93d8 100644
--- a/scalaParser/src/test/resources/test.scala
+++ b/scalaParser/src/test/resources/test.scala
@@ -1,5 +1,3 @@
-object L{
- a.b = c
- a().b = c
-} \ No newline at end of file
+@RawJSType // Don't do this at home!
+sealed trait UndefOr[A]