projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 1999-06-28 16:42:22 by simonmar]
[ghc-hetmet.git]
/
ghc
/
compiler
/
parser
/
Parser.y
diff --git
a/ghc/compiler/parser/Parser.y
b/ghc/compiler/parser/Parser.y
index
f97ff96
..
3348da9
100644
(file)
--- 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.
Haskell grammar.
@@
-61,6
+61,7
@@
Conflicts: 14 shift/reduce
%token
'_' { ITunderscore } -- Haskell keywords
%token
'_' { ITunderscore } -- Haskell keywords
+ 'as' { ITas }
'case' { ITcase }
'class' { ITclass }
'data' { ITdata }
'case' { ITcase }
'class' { ITclass }
'data' { ITdata }
@@
-68,6
+69,7
@@
Conflicts: 14 shift/reduce
'deriving' { ITderiving }
'do' { ITdo }
'else' { ITelse }
'deriving' { ITderiving }
'do' { ITdo }
'else' { ITelse }
+ 'hiding' { IThiding }
'if' { ITif }
'import' { ITimport }
'in' { ITin }
'if' { ITif }
'import' { ITimport }
'in' { ITin }
@@
-79,6
+81,7
@@
Conflicts: 14 shift/reduce
'module' { ITmodule }
'newtype' { ITnewtype }
'of' { ITof }
'module' { ITmodule }
'newtype' { ITnewtype }
'of' { ITof }
+ 'qualified' { ITqualified }
'then' { ITthen }
'type' { ITtype }
'where' { ITwhere }
'then' { ITthen }
'type' { ITtype }
'where' { ITwhere }
@@
-857,6
+860,9
@@
qvarid :: { RdrName }
varid :: { RdrName }
: VARID { mkSrcUnqual varName $1 }
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 }
| '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 }
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 }
| '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
-----------------------------------------------------------------------------
-- ConIds
@@
-966,6
+970,9
@@
qtycls :: { RdrName }
tyvar :: { RdrName }
: VARID { mkSrcUnqual tvName $1 }
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 }
| 'export' { export_var_RDR }
| 'label' { label_var_RDR }
| 'dynamic' { dynamic_var_RDR }