* Replaced the SDF parser by a substantially faster Bison/Flex

parser (roughly 80x faster).

  The absolutely latest version of Bison (1.875c) is required for
  reentrant GLR support, as well as a recent version of Flex (say,
  2.5.31).  Note that most Unix distributions ship with the
  prehistoric Flex 2.5.4, which doesn't support reentrancy.
This commit is contained in:
Eelco Dolstra 2004-01-30 15:21:42 +00:00
parent abd1878b26
commit c5baaafae6
6 changed files with 261 additions and 252 deletions

View file

@ -1,20 +1,22 @@
noinst_LIBRARIES = libexpr.a
libexpr_a_SOURCES = nixexpr.cc nixexpr.hh parser.cc parser.hh \
eval.cc eval.hh primops.cc primops.hh nix.sdf
eval.cc eval.hh primops.cc primops.hh \
lexer-tab.c lexer-tab.h parser-tab.c parser-tab.h
AM_CXXFLAGS = \
-I.. -I../../externals/inst/include -I../libutil -I../libstore
AM_CFLAGS = \
-I../../externals/inst/include
# Parse table generation.
# Parser generation.
parser.o: parse-table.h
parser-tab.c parser-tab.h: parser.y
../grammartest/inst/bin/bison -v -o parser-tab.c parser.y -d
parse-table.h: nix.tbl
../bin2c/bin2c nixParseTable < $< > $@ || (rm $@ && exit 1)
lexer-tab.c lexer-tab.h: lexer.l
flex --outfile lexer-tab.c --header-file=lexer-tab.h lexer.l
%.tbl: %.sdf
../../externals/inst/bin/sdf2table -s -i $< -o $@
CLEANFILES = parse-table.h nix.tbl
CLEANFILES =