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:
parent
fdf3f6d897
commit
7150286225
2 changed files with 5 additions and 1 deletions
2
Makefile
2
Makefile
|
@ -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:
|
||||||
|
|
|
@ -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;
|
||||||
%}
|
%}
|
||||||
|
|
Loading…
Reference in a new issue