summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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