summaryrefslogtreecommitdiff
path: root/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
diff options
context:
space:
mode:
Diffstat (limited to 'scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala')
-rw-r--r--scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala20
1 files changed, 12 insertions, 8 deletions
diff --git a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala b/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
index 644c545..29bff1e 100644
--- a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
+++ b/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala
@@ -101,12 +101,18 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
"forSome" ~ '{' ~ oneOrMore(ExistentialDcl).separatedBy(Semi) ~ '}'
}
def Type: R0 = {
- def WildcardType: R0 = rule{ `_` }
-
+ def FunctionArgTypes = rule {
+ '(' ~ optional(oneOrMore(ParamType) separatedBy ',') ~ ')'
+ }
rule {
- (WildcardType |
- FunctionArgTypes ~ `=>` ~ Type |
- InfixType ~ optional(ExistentialClause)) ~ TypeBounds
+ (
+ `_` |
+ FunctionArgTypes ~ `=>` ~ Type |
+ InfixType ~ (
+ `=>` ~ Type |
+ optional(ExistentialClause)
+ )
+ ) ~ TypeBounds
}
}
@@ -138,9 +144,7 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
def TypePat = rule { CompoundType }
- def FunctionArgTypes = rule {
- InfixType | '(' ~ optional(oneOrMore(ParamType) separatedBy ',') ~ ')'
- }
+
def Ascription = rule {
":" ~ ("_" ~ "*" | Type | oneOrMore(Annotation))
}