summaryrefslogtreecommitdiff
path: root/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
diff options
context:
space:
mode:
authorHaoyi Li <haoyi@haoyi-mbp.corp.dropbox.com>2014-11-26 00:44:40 -0800
committerHaoyi Li <haoyi@haoyi-mbp.corp.dropbox.com>2014-11-26 00:44:40 -0800
commitc50f0d417b34d7a8be432c34bac92088734a14ca (patch)
tree1fee0dc07793e900b6c1b848fac2b7d6fd86b04b /scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
parent8e76b69d7576877ce5d706651b57d8e1d6ecd717 (diff)
downloadhands-on-scala-js-c50f0d417b34d7a8be432c34bac92088734a14ca.tar.gz
hands-on-scala-js-c50f0d417b34d7a8be432c34bac92088734a14ca.tar.bz2
hands-on-scala-js-c50f0d417b34d7a8be432c34bac92088734a14ca.zip
tweaks
Diffstat (limited to 'scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala')
-rw-r--r--scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala31
1 files changed, 16 insertions, 15 deletions
diff --git a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala b/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
index b164ec4..de9f039 100644
--- a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
+++ b/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
@@ -189,7 +189,7 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
def SimpleExpr1 = rule{
K.W("new") ~ (ClassTemplate | TemplateBody) |
BlockExpr |
- Literal ~ drop[String] |
+ Literal |
Path |
K.W("_") |
'(' ~ optional(Exprs) ~ ")"
@@ -208,9 +208,8 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
def Block: R0 = rule {
optional(Semis) ~
(
+ BlockStats ~ optional(Semis ~ ResultExpr) ~ BlockEnd |
ResultExpr ~ BlockEnd |
- BlockStats ~ Semis ~ ResultExpr ~ BlockEnd |
- BlockStats ~ BlockEnd |
MATCH ~ BlockEnd
)
}
@@ -245,17 +244,17 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
}
def SimplePattern: R0 = rule {
K.W("_") |
- Literal ~ drop[String] |
- '(' ~ optional(Patterns) ~ ')' |
- (
- StableId ~
- optional(
- '(' ~
- (optional(Patterns ~ ',') ~ optional(VarId ~ '@') ~ K.W("_") ~ '*' | optional(Patterns)) ~
- ')'
- )
- ) |
- VarId
+ Literal |
+ '(' ~ optional(Patterns) ~ ')' |
+ (
+ StableId ~
+ optional(
+ '(' ~
+ (optional(Patterns ~ ',') ~ optional(VarId ~ '@') ~ K.W("_") ~ '*' | optional(Patterns)) ~
+ ')'
+ )
+ ) |
+ VarId
}
def Patterns: R0 = rule { K.W("_") ~ '*' | oneOrMore(Pattern).separatedBy(',') }
@@ -408,8 +407,10 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
pr("CompulationUnit 0") ~
optional(Semis) ~
pr("CompulationUnit 1") ~
- (TopPackageSeq ~ Semis ~ TopStatSeq | TopPackageSeq | TopStatSeq) ~
+ (TopPackageSeq ~ optional(Semis ~ TopStatSeq) | TopStatSeq) ~
+ optional(Semis) ~
WL
+
)
}
}