summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Haoyi <haoyi@dropbox.com>2014-11-28 08:38:25 -0800
committerLi Haoyi <haoyi@dropbox.com>2014-11-28 08:38:25 -0800
commit75171b45d7fd2674f4d7e5a86e673f86cdfe4b9a (patch)
tree11166ee2d1db66c4b13e77d3420b1ac9c3480140
parent79bc1de1c79558710c332b4b3683388a4ad758e6 (diff)
downloadhands-on-scala-js-75171b45d7fd2674f4d7e5a86e673f86cdfe4b9a.tar.gz
hands-on-scala-js-75171b45d7fd2674f4d7e5a86e673f86cdfe4b9a.tar.bz2
hands-on-scala-js-75171b45d7fd2674f4d7e5a86e673f86cdfe4b9a.zip
Minor reshuffling
-rw-r--r--scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala18
-rw-r--r--scalaParser/src/test/resources/test.scala7
2 files changed, 15 insertions, 10 deletions
diff --git a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala b/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
index 534782b..593f341 100644
--- a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
+++ b/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
@@ -320,18 +320,20 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
def SimplePattern: R0 = {
def Patterns: R0 = rule { `_` ~ '*' | oneOrMore(Pattern).separatedBy(',') }
+ def ExtractorArgs = rule{
+ optional(Patterns ~ ',') ~ optional(VarId ~ '@') ~ `_` ~ '*'
+ }
+ def Extractor: R0 = rule{
+ StableId ~
+ optional(
+ '(' ~ (ExtractorArgs | optional(Patterns)) ~ ')'
+ )
+ }
rule {
`_` ~ optional(`:` ~ TypePat) |
Literal |
'(' ~ optional(Patterns) ~ ')' |
- (
- StableId ~
- optional(
- '(' ~
- (optional(Patterns ~ ',') ~ optional(VarId ~ '@') ~ `_` ~ '*' | optional(Patterns)) ~
- ')'
- )
- ) |
+ Extractor |
VarId
}
}
diff --git a/scalaParser/src/test/resources/test.scala b/scalaParser/src/test/resources/test.scala
index 3a3c124..d31a51f 100644
--- a/scalaParser/src/test/resources/test.scala
+++ b/scalaParser/src/test/resources/test.scala
@@ -1,2 +1,5 @@
-
-import java.util.concurrent.TimeUnit.{ NANOSECONDS => NANOS, MILLISECONDS ⇒ MILLIS }
+object EmitHtml {
+ args match{
+ case Array(file, _*) => 1
+ }
+} \ No newline at end of file