[project @ 1999-06-01 16:40:41 by simonmar]
authorsimonmar <unknown>
Tue, 1 Jun 1999 16:41:09 +0000 (16:41 +0000)
committersimonmar <unknown>
Tue, 1 Jun 1999 16:41:09 +0000 (16:41 +0000)
commit904f158f9fe208b8154029dff655a6eab4b2828e
tree6672415bda27fbb353fa85f09a3b03cedc505cf2
parent6ee2f67e582427f931c21c1fc58f62f8619d40b7
[project @ 1999-06-01 16:40:41 by simonmar]
This commit replaces the old yacc parser with a Happy-generated one.
Notes:

- The generated .hs file is *big*.  Best to use a recent
  version of Happy, and even better to add the -c flag
  to use unsafeCoerce# with ghc (versions 4.02+ please).

- The lexer has grown all sorts of unsightly growths and
  should be put down as soon as possible.

- Parse errors may result in strange diagnostics.  I'm looking
  into this.

- HsSyn now contains a few extra constructors due to the way
  patterns are parsed as expressions in the parser.

- The layout rule is implemented according to the Haskell
  report.  I found a couple of places in the libraries where
  we previously weren't adhering to this - in particular the
  rule about "nested contexts must be more indented than
  outer contexts".  The rule is necessary to disambiguate
  in the presence of empty declaration lists.
55 files changed:
ghc/compiler/Makefile
ghc/compiler/basicTypes/Const.lhs
ghc/compiler/basicTypes/RdrName.lhs
ghc/compiler/basicTypes/SrcLoc.lhs
ghc/compiler/hsSyn/HsExpr.lhs
ghc/compiler/main/CmdLineOpts.lhs
ghc/compiler/main/Main.lhs
ghc/compiler/parser/Lex.lhs [new file with mode: 0644]
ghc/compiler/parser/MAIL.byacc [deleted file]
ghc/compiler/parser/ParseUtil.lhs [new file with mode: 0644]
ghc/compiler/parser/Parser.y [new file with mode: 0644]
ghc/compiler/parser/README.debug [deleted file]
ghc/compiler/parser/RdrHsSyn.lhs [moved from ghc/compiler/reader/RdrHsSyn.lhs with 50% similarity]
ghc/compiler/parser/UgenAll.lhs [deleted file]
ghc/compiler/parser/UgenUtil.lhs [deleted file]
ghc/compiler/parser/binding.ugn [deleted file]
ghc/compiler/parser/constants.h [deleted file]
ghc/compiler/parser/constr.ugn [deleted file]
ghc/compiler/parser/either.ugn [deleted file]
ghc/compiler/parser/entidt.ugn [deleted file]
ghc/compiler/parser/gdexp.ugn [deleted file]
ghc/compiler/parser/grhsb.ugn [deleted file]
ghc/compiler/parser/hsclink.c [deleted file]
ghc/compiler/parser/hslexer.flex [deleted file]
ghc/compiler/parser/hsparser.y [deleted file]
ghc/compiler/parser/hspincl.h [deleted file]
ghc/compiler/parser/id.c [deleted file]
ghc/compiler/parser/id.h [deleted file]
ghc/compiler/parser/infix.c [deleted file]
ghc/compiler/parser/list.ugn [deleted file]
ghc/compiler/parser/literal.ugn [deleted file]
ghc/compiler/parser/main.c [deleted file]
ghc/compiler/parser/match.ugn [deleted file]
ghc/compiler/parser/maybe.ugn [deleted file]
ghc/compiler/parser/printtree.c [deleted file]
ghc/compiler/parser/qid.ugn [deleted file]
ghc/compiler/parser/rulevar.ugn [deleted file]
ghc/compiler/parser/syntax.c [deleted file]
ghc/compiler/parser/tree.ugn [deleted file]
ghc/compiler/parser/ttype.ugn [deleted file]
ghc/compiler/parser/type2context.c [deleted file]
ghc/compiler/parser/util.c [deleted file]
ghc/compiler/parser/utils.h [deleted file]
ghc/compiler/prelude/PrelMods.lhs
ghc/compiler/reader/Lex.lhs [deleted file]
ghc/compiler/reader/PrefixSyn.lhs [deleted file]
ghc/compiler/reader/PrefixToHs.lhs [deleted file]
ghc/compiler/reader/ReadPrefix.lhs [deleted file]
ghc/compiler/rename/ParseIface.y
ghc/compiler/rename/RnExpr.lhs
ghc/compiler/rename/RnIfaces.lhs
ghc/compiler/typecheck/TcPat.lhs
ghc/compiler/utils/FastString.lhs
ghc/compiler/utils/StringBuffer.lhs
ghc/compiler/utils/Util.lhs