Using categories with numbers in the name with separator results in errors when compiling the Par... files. For example, the following grammar:
Foo. Bar2 ::= Ident ;
terminator Bar2 "," ;
Results in the following errors:
$ bnfc -m Foo.cf
3 rules accepted
Use Alex 3.0 to compile LexFoo.x.
ParFoo.y Tested with Happy 1.15
writing new file ./AbsFoo.hs
writing new file ./LexFoo.x
writing new file ./ParFoo.y
writing new file ./TestFoo.hs
writing new file ./DocFoo.txt
writing new file ./SkelFoo.hs
writing new file ./PrintFoo.hs
writing new file ./ErrM.hs
writing new file ./Makefile
$ make
happy -gca ParFoo.y
alex -g LexFoo.x
ghc --make TestFoo.hs -o TestFoo
[1 of 7] Compiling LexFoo ( LexFoo.hs, LexFoo.o )
[2 of 7] Compiling ErrM ( ErrM.hs, ErrM.o )
[3 of 7] Compiling AbsFoo ( AbsFoo.hs, AbsFoo.o )
[4 of 7] Compiling ParFoo ( ParFoo.hs, ParFoo.o )
ParFoo.hs:28:14: error:
Not in scope: type constructor or class ‘Bar’
ParFoo.hs:31:33: error:
Not in scope: type constructor or class ‘Bar’
ParFoo.hs:34:15: error:
Not in scope: type constructor or class ‘Bar’
ParFoo.hs:37:34: error:
Not in scope: type constructor or class ‘Bar’
ParFoo.hs:100:19: error:
Not in scope: data constructor ‘AbsFoo.Foo’
Module ‘AbsFoo’ does not export ‘Foo’.
make: *** [Makefile:4: all] Error 1
This was tested with GHC 8.0.2, alex 3.1.7, and 1.19.7, on ArchLinux, but it also occurred on a MacOS system. Changing Bar2 to some name not containing any digits resolves the error.
Using categories with numbers in the name with
separatorresults in errors when compiling thePar...files. For example, the following grammar:Results in the following errors:
This was tested with GHC 8.0.2, alex 3.1.7, and 1.19.7, on ArchLinux, but it also occurred on a MacOS system. Changing
Bar2to some name not containing any digits resolves the error.