diff options
author | Li Haoyi <haoyi@dropbox.com> | 2014-11-28 08:38:25 -0800 |
---|---|---|
committer | Li Haoyi <haoyi@dropbox.com> | 2014-11-28 08:38:25 -0800 |
commit | 75171b45d7fd2674f4d7e5a86e673f86cdfe4b9a (patch) | |
tree | 11166ee2d1db66c4b13e77d3420b1ac9c3480140 /scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala | |
parent | 79bc1de1c79558710c332b4b3683388a4ad758e6 (diff) | |
download | hands-on-scala-js-75171b45d7fd2674f4d7e5a86e673f86cdfe4b9a.tar.gz hands-on-scala-js-75171b45d7fd2674f4d7e5a86e673f86cdfe4b9a.tar.bz2 hands-on-scala-js-75171b45d7fd2674f4d7e5a86e673f86cdfe4b9a.zip |
Minor reshuffling
Diffstat (limited to 'scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala')
-rw-r--r-- | scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala | 18 |
1 files changed, 10 insertions, 8 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 } } |