mirror of
https://github.com/php/php-src.git
synced 2024-11-23 18:04:36 +08:00
4cbffd89d9
Prefer '%define api.value.type' to '#define YYSTYPE', so that Bison know the type. Use '%code requires' to declare what is needed to define the api.value.type (that code is output in the generated header before the generated definition of YYSTYPE). Prefer '%define api.prefix' inside the grammar file to '-p' outside, as anyway the functions defined in the file actually use this prefix. Prefer `%param` to both `%parse-param` and `%lex-param`. Closes GH-5138
38 lines
2.0 KiB
Makefile
38 lines
2.0 KiB
Makefile
#
|
|
# Zend
|
|
#
|
|
|
|
$(builddir)/zend_language_scanner.lo: $(srcdir)/zend_language_parser.h
|
|
$(builddir)/zend_ini_scanner.lo: $(srcdir)/zend_ini_parser.h
|
|
|
|
$(srcdir)/zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
|
|
@(cd $(top_srcdir); $(RE2C) $(RE2C_FLAGS) --no-generation-date --case-inverted -cbdFt Zend/zend_language_scanner_defs.h -oZend/zend_language_scanner.c Zend/zend_language_scanner.l)
|
|
|
|
$(srcdir)/zend_language_parser.h: $(srcdir)/zend_language_parser.c
|
|
$(srcdir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y
|
|
# Tweak zendparse to be exported through ZEND_API. This has to be revisited once
|
|
# bison supports foreign skeletons and that bison version is used. Read
|
|
# https://git.savannah.gnu.org/cgit/bison.git/tree/data/README.md for more.
|
|
@$(YACC) $(YFLAGS) -v -d $(srcdir)/zend_language_parser.y -o $@
|
|
@$(SED) -e 's,^int zendparse\(.*\),ZEND_API int zendparse\1,g' < $@ \
|
|
> $@.tmp && \
|
|
mv $@.tmp $@
|
|
@$(SED) -e 's,^int zendparse\(.*\),ZEND_API int zendparse\1,g' < $(srcdir)/zend_language_parser.h \
|
|
> $(srcdir)/zend_language_parser.h.tmp && \
|
|
mv $(srcdir)/zend_language_parser.h.tmp $(srcdir)/zend_language_parser.h
|
|
@nlinit=`echo 'nl="'; echo '"'`; eval "$$nlinit"; \
|
|
$(SED) -e "s/^#ifndef YYTOKENTYPE/#include \"zend.h\"\\$${nl}#ifndef YYTOKENTYPE/" < $(srcdir)/zend_language_parser.h \
|
|
> $(srcdir)/zend_language_parser.h.tmp && \
|
|
mv $(srcdir)/zend_language_parser.h.tmp $(srcdir)/zend_language_parser.h
|
|
|
|
$(srcdir)/zend_ini_parser.h: $(srcdir)/zend_ini_parser.c
|
|
$(srcdir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
|
|
$(YACC) $(YFLAGS) -v -d $(srcdir)/zend_ini_parser.y -o $@
|
|
|
|
$(srcdir)/zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
|
|
@(cd $(top_srcdir); $(RE2C) $(RE2C_FLAGS) --no-generation-date --case-inverted -cbdFt Zend/zend_ini_scanner_defs.h -oZend/zend_ini_scanner.c Zend/zend_ini_scanner.l)
|
|
|
|
$(builddir)/zend_highlight.lo $(builddir)/zend_compile.lo: $(srcdir)/zend_language_parser.h
|
|
|
|
Zend/zend_execute.lo: $(srcdir)/zend_vm_execute.h $(srcdir)/zend_vm_opcodes.h
|