summaryrefslogtreecommitdiff
path: root/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi@dropbox.com>2014-11-28 06:19:55 -0800
committerLi Haoyi <haoyi@dropbox.com>2014-11-28 06:19:55 -0800
commit9270f9ada72fa36ebe2b6907b2e8f330cc7e7996 (patch)
treedc2c7cab07c0ffe48fd65ce5eb110d92b1ee568c /scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
parent097b5f24938bfb59471da7415be6523a7dfa03f9 (diff)
downloadhands-on-scala-js-9270f9ada72fa36ebe2b6907b2e8f330cc7e7996.tar.gz
hands-on-scala-js-9270f9ada72fa36ebe2b6907b2e8f330cc7e7996.tar.bz2
hands-on-scala-js-9270f9ada72fa36ebe2b6907b2e8f330cc7e7996.zip
Raw structural type syntax works
Diffstat (limited to 'scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala')
-rw-r--r--scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala b/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
index 7770bca..f99e016 100644
--- a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
+++ b/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
@@ -108,7 +108,8 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
OneNewlineMax ~ '{' ~ oneOrMore(RefineStat).separatedBy(Semi) ~ "}"
}
rule {
- oneOrMore(AnnotType).separatedBy(K.W("with")) ~ optional(Refinement)
+ oneOrMore(AnnotType).separatedBy(K.W("with")) ~ optional(Refinement) |
+ Refinement
}
}
def AnnotType = rule {
@@ -304,7 +305,7 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
def TypeParamClause: R0 = {
- def VariantTypeParam: R0 = rule { zeroOrMore(Annotation) ~ optional(anyOf("+-")) ~ TypeParam }
+ def VariantTypeParam: R0 = rule { zeroOrMore(Annotation) ~ optional(WL ~ anyOf("+-")) ~ TypeParam }
rule { '[' ~ oneOrMore(VariantTypeParam).separatedBy(',') ~ ']' }
}
def FunTypeParamClause: R0 = rule {
@@ -356,7 +357,7 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
def TemplateStat: R0 = rule {
Import |
zeroOrMore(Annotation ~ OneNewlineMax) ~ zeroOrMore(Modifier) ~ (Def | Dcl) |
- Expr
+ Expr0(true)
}
def SelfType: R0 = rule { K.W("this") ~ K.O(":") ~ Type ~ K.O("=>") | Id ~ optional(K.O(":") ~ Type) ~ K.O("=>") }