diff options
Diffstat (limited to 'ghc/compiler/parser/Parser.y')
-rw-r--r-- | ghc/compiler/parser/Parser.y | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/ghc/compiler/parser/Parser.y b/ghc/compiler/parser/Parser.y index f97ff966db..3348da9d3c 100644 --- a/ghc/compiler/parser/Parser.y +++ b/ghc/compiler/parser/Parser.y @@ -1,6 +1,6 @@ {- ----------------------------------------------------------------------------- -$Id: Parser.y,v 1.8 1999/06/28 15:42:33 simonmar Exp $ +$Id: Parser.y,v 1.9 1999/06/28 16:42:23 simonmar Exp $ Haskell grammar. @@ -61,6 +61,7 @@ Conflicts: 14 shift/reduce %token '_' { ITunderscore } -- Haskell keywords + 'as' { ITas } 'case' { ITcase } 'class' { ITclass } 'data' { ITdata } @@ -68,6 +69,7 @@ Conflicts: 14 shift/reduce 'deriving' { ITderiving } 'do' { ITdo } 'else' { ITelse } + 'hiding' { IThiding } 'if' { ITif } 'import' { ITimport } 'in' { ITin } @@ -79,6 +81,7 @@ Conflicts: 14 shift/reduce 'module' { ITmodule } 'newtype' { ITnewtype } 'of' { ITof } + 'qualified' { ITqualified } 'then' { ITthen } 'type' { ITtype } 'where' { ITwhere } @@ -857,6 +860,9 @@ qvarid :: { RdrName } varid :: { RdrName } : VARID { mkSrcUnqual varName $1 } + | 'as' { as_var_RDR } + | 'qualified' { qualified_var_RDR } + | 'hiding' { hiding_var_RDR } | 'forall' { forall_var_RDR } | 'export' { export_var_RDR } | 'label' { label_var_RDR } @@ -865,16 +871,14 @@ varid :: { RdrName } varid_no_unsafe :: { RdrName } : VARID { mkSrcUnqual varName $1 } + | 'as' { as_var_RDR } + | 'qualified' { qualified_var_RDR } + | 'hiding' { hiding_var_RDR } | 'forall' { forall_var_RDR } | 'export' { export_var_RDR } | 'label' { label_var_RDR } | 'dynamic' { dynamic_var_RDR } --- ``special'' Ids -'as' :: { () } : VARID {% checkAs $1 } -'qualified' :: { () } : VARID {% checkQualified $1 } -'hiding' :: { () } : VARID {% checkHiding $1 } - ----------------------------------------------------------------------------- -- ConIds @@ -966,6 +970,9 @@ qtycls :: { RdrName } tyvar :: { RdrName } : VARID { mkSrcUnqual tvName $1 } + | 'as' { as_tyvar_RDR } + | 'qualified' { qualified_tyvar_RDR } + | 'hiding' { hiding_tyvar_RDR } | 'export' { export_var_RDR } | 'label' { label_var_RDR } | 'dynamic' { dynamic_var_RDR } |