Use "%option prefix" to set API names in ecpg's lexer.
authorTom Lane
Sun, 11 Dec 2016 19:54:25 +0000 (14:54 -0500)
committerTom Lane
Sun, 11 Dec 2016 19:54:25 +0000 (14:54 -0500)
commit89d1dfa49aaff7c0b90de2c91dbb314e1a57eb62
tree8103fe349f6a7db9c367b04ce9180c28a243b005
parentc8bfe055be9c688d7084546245c59f7f12a7c606
Use "%option prefix" to set API names in ecpg's lexer.

Clean up some technical debt left behind by commit 72b1e3a21: instead of
quickly hacking the name of base_yylex() with a #define, set it properly
with "%option prefix".  This causes the names of pgc.l's other exported
symbols to change as well, so run around and modify the outside references
to them as needed.  Similarly, make pgc.l's external references to
base_yylval use that variable's true name instead of a macro.

The reason for doing this now is that the quick-hack solution will fail
with future versions of flex, as reported by Дилян Палаузов.
Hence, back-patch into 9.6 where the previous commit appeared, since
it's likely people will build 9.6 with newer flex versions during
its lifetime.

Discussion: https://postgr.es/m/d845c1af-e18d-6651-178f-9f08cdf37e10@aegee.org
src/interfaces/ecpg/preproc/descriptor.c
src/interfaces/ecpg/preproc/ecpg.addons
src/interfaces/ecpg/preproc/ecpg.c
src/interfaces/ecpg/preproc/ecpg.header
src/interfaces/ecpg/preproc/ecpg.trailer
src/interfaces/ecpg/preproc/extern.h
src/interfaces/ecpg/preproc/output.c
src/interfaces/ecpg/preproc/parser.c
src/interfaces/ecpg/preproc/pgc.l
src/interfaces/ecpg/preproc/variable.c