1* happyError should take the current token as an argument in %lexer mode;
2  it's silly not to, because it means the monad has to keep track of the
3  previous token in order to report it in the error message.
4
5* BUG in error handling without %lexer: see tests/ParGF.y
6
7* allow polymorphic type signatures for productions.
8* allow omitted semnatic values, defaulting to $1?
9
10* unlit properly
11
12* maintain indentation in code between { } so that layout works.
13
14-OLD-------------------------------------------------------------------------
15
161. Add in a simple lexical analyser
17
182. Add in choice for lexical analyis
19
20%lexerstyle original		-- the default
21%lexerstyle auto
22%lexerstyle monadic
23
24---[1] :: [Token] -> a ---------------------------------------------------------
25
26 As things are now :-(
27
28---[2] :: String -> a ----------------------------------------------------------
29
30 Using the special lexer, as defined using
31
32  %macro letter		( [A-Z][a-z] )
33  %autotoken
34	id		( {letter}({digit}|{letter}) )
35
36---[3] :: ParseM Token -> ParseM a ---------------------------------------------
37
38    This presumes the exsitance of the defintions:
39
40	type ParseM a b c = a -> ParseR a b
41	data ParseR a b c = ParseSucc a b | ParseFail c
42	thenPM :: a -> ParseM a b c
43	returnPM :: ParseM a b c -> (a -> ParseM d b c) -> ParseM d b c ->
44
45    and is intended for *serious* parsers, like our Haskell parser.
46
47
48    You need to give a %eof
49
50-----------------------------------------------------------------------------
51
52******************************************************************************
53
54ToAdd:
55
56	--magic-name Sad
57
58	allows other names to be used as the *Magic* name, currently
59	only Happy.
60