haskell / haskell/happy

Old TODO

Open
#208 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
322
Forks
86
PR merge metrics
No merged PRs in 30d

Description

This was the contents of the old TODO file. We should triage these at some point and put in their own issues.
```
* happyError should take the current token as an argument in %lexer mode;
it's silly not to, because it means the monad has to keep track of the
previous token in order to report it in the error message.

* BUG in error handling without %lexer: see tests/ParGF.y

* allow polymorphic type signatures for productions.
* allow omitted semnatic values, defaulting to $1?

* unlit properly

* maintain indentation in code between { } so that layout works.

-OLD-------------------------------------------------------------------------

1. Add in a simple lexical analyser

2. Add in choice for lexical analyis

%lexerstyle original -- the default
%lexerstyle auto
%lexerstyle monadic

---[1] :: [Token] -> a ---------------------------------------------------------

As things are now :-(

---[2] :: String -> a ----------------------------------------------------------

Using the special lexer, as defined using

%macro letter ( [A-Z][a-z] )
%autotoken
id ( {letter}({digit}|{letter}) )

---[3] :: ParseM Token -> ParseM a ---------------------------------------------

This presumes the exsitance of the defintions:

type ParseM a b c = a -> ParseR a b
data ParseR a b c = ParseSucc a b | ParseFail c
thenPM :: a -> ParseM a b c
returnPM :: ParseM a b c -> (a -> ParseM d b c) -> ParseM d b c ->

and is intended for *serious* parsers, like our Haskell parser.

You need to give a %eof

-----------------------------------------------------------------------------

******************************************************************************

ToAdd:

--magic-name Sad

allows other names to be used as the *Magic* name, currently
only Happy.
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.