diff options
author | lewie <unknown> | 2000-02-09 18:32:10 +0000 |
---|---|---|
committer | lewie <unknown> | 2000-02-09 18:32:10 +0000 |
commit | 461f1fb54915b564141ec07ce6f2ea284dc6cea8 (patch) | |
tree | 9b7df2e776bff1503eb9fabef75f173be3cea8c5 /ghc/compiler/parser/Parser.y | |
parent | 0198d56193b0e77eb39b050d314485c0f79c7f48 (diff) | |
download | haskell-461f1fb54915b564141ec07ce6f2ea284dc6cea8.tar.gz |
[project @ 2000-02-09 18:32:09 by lewie]
Misc. fixes to implicit parameters support.
Diffstat (limited to 'ghc/compiler/parser/Parser.y')
-rw-r--r-- | ghc/compiler/parser/Parser.y | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/ghc/compiler/parser/Parser.y b/ghc/compiler/parser/Parser.y index 759c2dcff1..a94edffad1 100644 --- a/ghc/compiler/parser/Parser.y +++ b/ghc/compiler/parser/Parser.y @@ -1,6 +1,6 @@ {- ----------------------------------------------------------------------------- -$Id: Parser.y,v 1.19 2000/01/28 20:52:39 lewie Exp $ +$Id: Parser.y,v 1.20 2000/02/09 18:32:10 lewie Exp $ Haskell grammar. @@ -35,6 +35,7 @@ import GlaExts {- ----------------------------------------------------------------------------- Conflicts: 14 shift/reduce + (note: it's currently 21 -- JRL, 31/1/2000) 8 for abiguity in 'if x then y else z + 1' (shift parses as 'if x then y else (z + 1)', as per longest-parse rule) @@ -85,7 +86,6 @@ Conflicts: 14 shift/reduce 'then' { ITthen } 'type' { ITtype } 'where' { ITwhere } - 'with' { ITwith } '_scc_' { ITscc } 'forall' { ITforall } -- GHC extension keywords @@ -94,6 +94,7 @@ Conflicts: 14 shift/reduce 'label' { ITlabel } 'dynamic' { ITdynamic } 'unsafe' { ITunsafe } + 'with' { ITwith } 'stdcall' { ITstdcallconv } 'ccall' { ITccallconv } '_ccall_' { ITccall (False, False, False) } @@ -174,7 +175,8 @@ Conflicts: 14 shift/reduce QCONID { ITqconid $$ } QVARSYM { ITqvarsym $$ } QCONSYM { ITqconsym $$ } - IPVARID { ITipvarid $$ } + + IPVARID { ITipvarid $$ } -- GHC extension PRAGMA { ITpragma $$ } @@ -489,6 +491,7 @@ type :: { RdrNameHsType } btype :: { RdrNameHsType } : btype atype { MonoTyApp $1 $2 } + | IPVARID '::' type { MonoIParamTy (mkSrcUnqual ipName $1) $3 } | atype { $1 } atype :: { RdrNameHsType } |