support byacc in addition to bison

Use -b to explicitly set file prefix, so that byacc generates files with
the same names as bison.

Add %locations to dtc-parser.y to explicitly enable location tracking
for byacc, and define YYERROR_CALL to prevent byacc from defining it to
call yyerror with 2 parameters because of the locations directive,
because dtc-parser.y defines yyerror to accept one parameter.

Signed-off-by: Ethan Sommer <e5ten.arch@gmail.com>
Message-Id: <20191029162619.32561-1-e5ten.arch@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
Ethan Sommer 2019-10-29 12:26:19 -04:00 committed by David Gibson
parent fdf3f6d897
commit 7150286225
2 changed files with 5 additions and 1 deletions

View file

@ -368,6 +368,6 @@ clean: libfdt_clean pylibfdt_clean tests_clean
%.tab.c %.tab.h %.output: %.y %.tab.c %.tab.h %.output: %.y
@$(VECHO) BISON $@ @$(VECHO) BISON $@
$(BISON) -d $< $(BISON) -b $(basename $(basename $@)) -d $<
FORCE: FORCE:

View file

@ -2,6 +2,8 @@
/* /*
* (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005. * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005.
*/ */
%locations
%{ %{
#include <stdio.h> #include <stdio.h>
#include <inttypes.h> #include <inttypes.h>
@ -17,6 +19,8 @@ extern void yyerror(char const *s);
treesource_error = true; \ treesource_error = true; \
} while (0) } while (0)
#define YYERROR_CALL(msg) yyerror(msg)
extern struct dt_info *parser_output; extern struct dt_info *parser_output;
extern bool treesource_error; extern bool treesource_error;
%} %}