mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-30 05:40:06 +00:00
Make work with devel/bison-3.6.X
PR: 247363 Submitted by: aryeh.friedman@gmail.com (maintainer)
This commit is contained in:
parent
e358f4b17b
commit
e160973700
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=539592
@ -4,7 +4,7 @@
|
||||
PORTNAME= aegis
|
||||
PORTVERSION= 4.25
|
||||
DISTVERSIONSUFFIX= .D510
|
||||
PORTREVISION= 11
|
||||
PORTREVISION= 12
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= SF
|
||||
|
||||
@ -16,7 +16,7 @@ LICENSE= GPLv3
|
||||
LIB_DEPENDS= libcurl.so:ftp/curl
|
||||
RUN_DEPENDS= tkdiff:textproc/tkdiff
|
||||
|
||||
USES= gettext ghostscript gnome groff perl5 tk
|
||||
USES= gettext ghostscript gnome groff perl5 tk bison
|
||||
USE_GNOME= libxml2
|
||||
GNU_CONFIGURE= yes
|
||||
CPPFLAGS+= "-I${LOCALBASE}/include"
|
||||
|
18
devel/aegis/files/patch-aefind_cmdline_y
Normal file
18
devel/aegis/files/patch-aefind_cmdline_y
Normal file
@ -0,0 +1,18 @@
|
||||
--- aefind/cmdline.y.orig 2020-06-17 17:53:49.450461000 -0400
|
||||
+++ aefind/cmdline.y 2020-06-17 17:54:14.484267000 -0400
|
||||
@@ -2,6 +2,7 @@
|
||||
* aegis - project change supervisor
|
||||
* Copyright (C) 1997-1999, 2001-2008, 2011, 2012 Peter Miller
|
||||
* Copyright (C) 2007 Walter Franzini
|
||||
+ * Copyright (C) 2020 Aryeh M. Friedman
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -17,6 +18,7 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
+%define api.prefix {cmdline_}
|
||||
%{
|
||||
|
||||
#include <common/ac/assert.h>
|
18
devel/aegis/files/patch-aeimport_format_rcs_gram_y
Normal file
18
devel/aegis/files/patch-aeimport_format_rcs_gram_y
Normal file
@ -0,0 +1,18 @@
|
||||
--- aeimport/format/rcs/gram.y.orig 2020-06-17 17:55:08.321101000 -0400
|
||||
+++ aeimport/format/rcs/gram.y 2020-06-17 17:55:44.146287000 -0400
|
||||
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
* aegis - project change supervisor
|
||||
* Copyright (C) 2001-2006, 2008, 2012 Peter Miller
|
||||
+ * Copyright (C) 2020 Aryeh M. Friedman
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -17,6 +18,7 @@
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
+%define api.prefix {format_rcs_gram_}
|
||||
%{
|
||||
|
||||
#include <common/ac/assert.h>
|
18
devel/aegis/files/patch-aeimport_format_sccs_gram_y
Normal file
18
devel/aegis/files/patch-aeimport_format_sccs_gram_y
Normal file
@ -0,0 +1,18 @@
|
||||
--- aeimport/format/sccs/gram.y.orig 2020-06-17 17:56:11.007600000 -0400
|
||||
+++ aeimport/format/sccs/gram.y 2020-06-17 17:56:29.944250000 -0400
|
||||
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
* aegis - project change supervisor
|
||||
* Copyright (C) 2001-2008, 2012 Peter Miller
|
||||
+ * Copyright (C) 2020 Aryeh M. Friedman
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -16,6 +17,7 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
+%define api.prefix {format_sccs_gram_}
|
||||
%{
|
||||
|
||||
#include <common/ac/assert.h>
|
18
devel/aegis/files/patch-common_gettime_y
Normal file
18
devel/aegis/files/patch-common_gettime_y
Normal file
@ -0,0 +1,18 @@
|
||||
--- common/gettime.y.orig 2020-06-17 17:45:06.095616000 -0400
|
||||
+++ common/gettime.y 2020-06-17 17:45:33.928740000 -0400
|
||||
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
* aegis - project change supervisor
|
||||
* Copyright (C) 1991-1995, 1997-1999, 2002-2008, 2012 Peter Miller
|
||||
+ * Copyright (C) 2020 Aryeh M. Friedman
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -21,6 +22,7 @@
|
||||
* Steven Bellovin <smb@cs.unc.edu>
|
||||
*/
|
||||
|
||||
+%define api.prefix {gettime_}
|
||||
%token AGO
|
||||
%token COLON
|
||||
%token COMMA
|
19
devel/aegis/files/patch-fmtgen_lex_cc
Normal file
19
devel/aegis/files/patch-fmtgen_lex_cc
Normal file
@ -0,0 +1,19 @@
|
||||
--- fmtgen/lex.cc.orig 2020-06-17 17:44:00.521184000 -0400
|
||||
+++ fmtgen/lex.cc 2020-06-17 17:44:09.243453000 -0400
|
||||
@@ -1,6 +1,7 @@
|
||||
//
|
||||
// aegis - project change supervisor
|
||||
// Copyright (C) 1991-1995, 1997, 1999, 2002-2008, 2012 Peter Miller
|
||||
+// Copyright (C) 2020 Aryeh M. Friedman
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
@@ -48,7 +49,7 @@
|
||||
|
||||
static file_ty *file;
|
||||
static int error_count;
|
||||
-extern parse_STYPE parse_lval;
|
||||
+extern PARSE_STYPE parse_lval;
|
||||
static nstring_list ifiles;
|
||||
static nstring_list include_path;
|
||||
static symtab<int> keyword;
|
35
devel/aegis/files/patch-fmtgen_parse_y
Normal file
35
devel/aegis/files/patch-fmtgen_parse_y
Normal file
@ -0,0 +1,35 @@
|
||||
--- fmtgen/parse.y.orig 2020-06-17 17:42:24.867502000 -0400
|
||||
+++ fmtgen/parse.y 2020-06-17 17:43:25.898841000 -0400
|
||||
@@ -2,6 +2,7 @@
|
||||
* aegis - project change supervisor
|
||||
* Copyright (C) 1991-1994, 1997-1999, 2001-2008, 2012 Peter Miller
|
||||
* Copyright (C) 2007 Walter Franzini
|
||||
+ * Copyright (C) 2020 Aryeh M. Friedman
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -17,8 +18,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
+%define api.prefix {parse_}
|
||||
%{
|
||||
-
|
||||
#include <common/ac/ctype.h>
|
||||
#include <common/ac/stdio.h>
|
||||
#include <common/ac/stdlib.h>
|
||||
@@ -208,12 +209,12 @@
|
||||
trace(("}\n"));
|
||||
}
|
||||
|
||||
+int yyparse(void);
|
||||
+extern int yylex(void);
|
||||
|
||||
void
|
||||
parse(const generator::pointer &g, const nstring &definition_file)
|
||||
{
|
||||
- extern int yyparse(void);
|
||||
-
|
||||
/*
|
||||
* initial name is the basename of the definition file
|
||||
*/
|
19
devel/aegis/files/patch-libaegis_aer_lex_cc
Normal file
19
devel/aegis/files/patch-libaegis_aer_lex_cc
Normal file
@ -0,0 +1,19 @@
|
||||
--- libaegis/aer/lex.cc.orig 2020-06-17 18:13:58.645709000 -0400
|
||||
+++ libaegis/aer/lex.cc 2020-06-17 18:14:15.245886000 -0400
|
||||
@@ -1,6 +1,7 @@
|
||||
//
|
||||
// aegis - project change supervisor
|
||||
// Copyright (C) 1991-1996, 1998, 1999, 2001-2008, 2012 Peter Miller
|
||||
+// Copyright (C) 2020 Aryeh M. Friedman
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
@@ -40,7 +41,7 @@
|
||||
|
||||
static input ip;
|
||||
static int error_count;
|
||||
-extern aer_report_STYPE aer_report_lval;
|
||||
+extern AER_REPORT_STYPE aer_report_lval;
|
||||
static nstring_accumulator buffer;
|
||||
static symtab_ty *stp;
|
||||
|
18
devel/aegis/files/patch-libaegis_aer_report_y
Normal file
18
devel/aegis/files/patch-libaegis_aer_report_y
Normal file
@ -0,0 +1,18 @@
|
||||
--- libaegis/aer/report.y.orig 2020-06-17 17:46:55.348947000 -0400
|
||||
+++ libaegis/aer/report.y 2020-06-17 17:47:40.813660000 -0400
|
||||
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
* aegis - project change supervisor
|
||||
* Copyright (C) 1994-1996, 1999, 2002, 2005-2008, 2012 Peter Miller
|
||||
+ * Copyright (C) 2020 Aryeh M. Friedman
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -17,6 +18,7 @@
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
+%define api.prefix {aer_report_}
|
||||
%{
|
||||
|
||||
#include <common/ac/assert.h>
|
18
devel/aegis/files/patch-libaegis_gram_y
Normal file
18
devel/aegis/files/patch-libaegis_gram_y
Normal file
@ -0,0 +1,18 @@
|
||||
--- libaegis/gram.y.orig 2020-06-17 17:49:20.265476000 -0400
|
||||
+++ libaegis/gram.y 2020-06-17 17:49:37.193953000 -0400
|
||||
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
* aegis - project change supervisor
|
||||
* Copyright (C) 1991-1994, 1999, 2002, 2004-2006, 2008, 2012 Peter Miller
|
||||
+ * Copyright (C) 2020 Aryeh M. Friedman
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -17,6 +18,7 @@
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
+%define api.prefix {gram_}
|
||||
%{
|
||||
|
||||
#include <common/ac/stdio.h>
|
19
devel/aegis/files/patch-libaegis_meta_lex_cc
Normal file
19
devel/aegis/files/patch-libaegis_meta_lex_cc
Normal file
@ -0,0 +1,19 @@
|
||||
--- libaegis/meta_lex.cc.orig 2020-06-17 18:16:18.858528000 -0400
|
||||
+++ libaegis/meta_lex.cc 2020-06-17 18:16:45.666339000 -0400
|
||||
@@ -1,6 +1,7 @@
|
||||
//
|
||||
// aegis - project change supervisor
|
||||
// Copyright (C) 1991-1996, 1998, 1999, 2001-2008, 2010, 2012 Peter Miller
|
||||
+// Copyright (C) 2020 Aryeh M. Friedman
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
@@ -46,7 +47,7 @@
|
||||
static input source;
|
||||
|
||||
static int error_count;
|
||||
-extern gram_STYPE gram_lval;
|
||||
+extern GRAM_STYPE gram_lval;
|
||||
static nstring_accumulator buffer;
|
||||
|
||||
|
149
devel/aegis/files/patch-libaegis_sub_expr_gram_y
Normal file
149
devel/aegis/files/patch-libaegis_sub_expr_gram_y
Normal file
@ -0,0 +1,149 @@
|
||||
--- libaegis/sub/expr_gram.y.orig 2020-06-17 17:51:38.214116000 -0400
|
||||
+++ libaegis/sub/expr_gram.y 2020-06-17 17:52:02.149971000 -0400
|
||||
@@ -1,22 +1,24 @@
|
||||
/*
|
||||
- * aegis - project change supervisor
|
||||
- * Copyright (C) 1996, 1999, 2002, 2003, 2005-2008 Peter Miller
|
||||
+ * aegis - project change supervisor
|
||||
+ * Copyright (C) 1996, 1999, 2002, 2003, 2005-2008 Peter Miller
|
||||
+ * Copyright (C) 2020 Aryeh M. Friedman
|
||||
*
|
||||
- * This program is free software; you can redistribute it and/or modify
|
||||
- * it under the terms of the GNU General Public License as published by
|
||||
- * the Free Software Foundation; either version 3 of the License, or
|
||||
- * (at your option) any later version.
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 3 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
*
|
||||
- * This program is distributed in the hope that it will be useful,
|
||||
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- * GNU General Public License for more details.
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
*
|
||||
- * You should have received a copy of the GNU General Public License
|
||||
- * along with this program. If not, see
|
||||
- * <http://www.gnu.org/licenses/>.
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program. If not, see
|
||||
+ * <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
+%define api.prefix {sub_expr_gram_}
|
||||
%{
|
||||
|
||||
#include <common/ac/stdarg.h>
|
||||
@@ -57,7 +59,7 @@
|
||||
|
||||
%union
|
||||
{
|
||||
- long lv_number;
|
||||
+ long lv_number;
|
||||
}
|
||||
|
||||
%type <lv_number> NUMBER expr
|
||||
@@ -94,7 +96,7 @@
|
||||
|
||||
trace(("}\n"));
|
||||
if (bad)
|
||||
- return "";
|
||||
+ return "";
|
||||
return nstring::format("%ld", result);
|
||||
}
|
||||
|
||||
@@ -112,21 +114,21 @@
|
||||
/*
|
||||
* jiggery-pokery for yacc
|
||||
*
|
||||
- * Replace all calls to printf with a call to trace_printf. The
|
||||
- * trace_where_ is needed to set the location, and is safe, because
|
||||
- * yacc only invokes the printf with an if (be careful, the printf
|
||||
- * is not in a compound statement).
|
||||
+ * Replace all calls to printf with a call to trace_printf. The
|
||||
+ * trace_where_ is needed to set the location, and is safe, because
|
||||
+ * yacc only invokes the printf with an if (be careful, the printf
|
||||
+ * is not in a compound statement).
|
||||
*/
|
||||
#define printf trace_where_, trace_printf
|
||||
|
||||
/*
|
||||
* jiggery-pokery for bison
|
||||
*
|
||||
- * Replace all calls to fprintf with a call to yydebugger. Ignore
|
||||
- * the first argument, it will be "stderr". The trace_where_ is
|
||||
- * needed to set the location, and is safe, because bison only
|
||||
- * invokes the printf with an if (be careful, the fprintf is not in
|
||||
- * a compound statement).
|
||||
+ * Replace all calls to fprintf with a call to yydebugger. Ignore
|
||||
+ * the first argument, it will be "stderr". The trace_where_ is
|
||||
+ * needed to set the location, and is safe, because bison only
|
||||
+ * invokes the printf with an if (be careful, the fprintf is not in
|
||||
+ * a compound statement).
|
||||
*/
|
||||
#define fprintf trace_where_, yydebugger
|
||||
|
||||
@@ -151,40 +153,41 @@
|
||||
|
||||
grammar:
|
||||
expr
|
||||
- { result = $1; }
|
||||
+ { result = $1; }
|
||||
;
|
||||
|
||||
expr
|
||||
: LP expr RP
|
||||
- { $$ = $2; trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = $2; trace(("$$ = %ld;\n", $$)); }
|
||||
| NUMBER
|
||||
- { $$ = $1; trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = $1; trace(("$$ = %ld;\n", $$)); }
|
||||
| MINUS expr
|
||||
- %prec UNARY
|
||||
- { $$ = -$2; trace(("$$ = %ld;\n", $$)); }
|
||||
+ %prec UNARY
|
||||
+ { $$ = -$2; trace(("$$ = %ld;\n", $$)); }
|
||||
| expr PLUS expr
|
||||
- { $$ = $1 + $3; trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = $1 + $3; trace(("$$ = %ld;\n", $$)); }
|
||||
| expr MINUS expr
|
||||
- { $$ = $1 - $3; trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = $1 - $3; trace(("$$ = %ld;\n", $$)); }
|
||||
| expr MUL expr
|
||||
- { $$ = $1 * $3; trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = $1 * $3; trace(("$$ = %ld;\n", $$)); }
|
||||
| expr DIV expr
|
||||
- { $$ = $3 ? $1 / $3 : 0; trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = $3 ? $1 / $3 : 0; trace(("$$ = %ld;\n", $$)); }
|
||||
| expr MOD expr
|
||||
- { $$ = $3 ? $1 % $3 : 0; trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = $3 ? $1 % $3 : 0; trace(("$$ = %ld;\n", $$)); }
|
||||
| expr EQ expr
|
||||
- { $$ = ($1 == $3); trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = ($1 == $3); trace(("$$ = %ld;\n", $$)); }
|
||||
| expr NE expr
|
||||
- { $$ = ($1 != $3); trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = ($1 != $3); trace(("$$ = %ld;\n", $$)); }
|
||||
| expr LT expr
|
||||
- { $$ = ($1 < $3); trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = ($1 < $3); trace(("$$ = %ld;\n", $$)); }
|
||||
| expr LE expr
|
||||
- { $$ = ($1 <= $3); trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = ($1 <= $3); trace(("$$ = %ld;\n", $$)); }
|
||||
| expr GT expr
|
||||
- { $$ = ($1 > $3); trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = ($1 > $3); trace(("$$ = %ld;\n", $$)); }
|
||||
| expr GE expr
|
||||
- { $$ = ($1 >= $3); trace(("$$ = %ld;\n", $$)); }
|
||||
+ { $$ = ($1 >= $3); trace(("$$ = %ld;\n", $$)); }
|
||||
| NOT expr
|
||||
- %prec UNARY
|
||||
- { $$ = (!$2); trace(("$$ = %ld;\n", $$)); }
|
||||
+ %prec UNARY
|
||||
+ { $$ = (!$2); trace(("$$ = %ld;\n", $$)); }
|
||||
;
|
||||
+// vim: set ts=8 sw=4 et :
|
373
devel/aegis/files/patch-libaegis_sub_plural_gram_y
Normal file
373
devel/aegis/files/patch-libaegis_sub_plural_gram_y
Normal file
@ -0,0 +1,373 @@
|
||||
--- libaegis/sub/plural_gram.y.orig 2020-06-17 17:52:35.548476000 -0400
|
||||
+++ libaegis/sub/plural_gram.y 2020-06-17 17:52:46.221850000 -0400
|
||||
@@ -1,22 +1,24 @@
|
||||
/*
|
||||
- * aegis - project change supervisor
|
||||
- * Copyright (C) 2002-2008 Peter Miller
|
||||
+ * aegis - project change supervisor
|
||||
+ * Copyright (C) 2002-2008 Peter Miller
|
||||
+ * Copyright (C) 2020 Aryeh M. Friedman
|
||||
*
|
||||
- * This program is free software; you can redistribute it and/or modify
|
||||
- * it under the terms of the GNU General Public License as published by
|
||||
- * the Free Software Foundation; either version 3 of the License, or
|
||||
- * (at your option) any later version.
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 3 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
*
|
||||
- * This program is distributed in the hope that it will be useful,
|
||||
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- * GNU General Public License for more details.
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
*
|
||||
- * You should have received a copy of the GNU General Public License
|
||||
- * along with this program. If not, see
|
||||
- * <http://www.gnu.org/licenses/>.
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program. If not, see
|
||||
+ * <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
+%define api.prefix {sub_plural_gram_}
|
||||
%{
|
||||
|
||||
#include <common/ac/stdarg.h>
|
||||
@@ -114,9 +116,9 @@
|
||||
|
||||
trace(("}\n"));
|
||||
if (bad)
|
||||
- return 0;
|
||||
+ return 0;
|
||||
if (plural >= nplurals)
|
||||
- return 0;
|
||||
+ return 0;
|
||||
return plural;
|
||||
}
|
||||
|
||||
@@ -132,35 +134,35 @@
|
||||
/*
|
||||
* jiggery-pokery for yacc
|
||||
*
|
||||
- * Replace all calls to printf with a call to trace_printf. The
|
||||
- * trace_where_ is needed to set the location, and is safe, because
|
||||
- * yacc only invokes the printf with an if (be careful, the printf
|
||||
- * is not in a compound statement).
|
||||
+ * Replace all calls to printf with a call to trace_printf. The
|
||||
+ * trace_where_ is needed to set the location, and is safe, because
|
||||
+ * yacc only invokes the printf with an if (be careful, the printf
|
||||
+ * is not in a compound statement).
|
||||
*/
|
||||
#define printf trace_where_, trace_printf
|
||||
|
||||
/*
|
||||
* jiggery-pokery for bison
|
||||
*
|
||||
- * Replace all calls to fprintf with a call to yydebugger. Ignore
|
||||
- * the first argument, it will be "stderr". The trace_where_ is
|
||||
- * needed to set the location, and is safe, because bison only
|
||||
- * invokes the printf with an if (be careful, the fprintf is not in
|
||||
- * a compound statement).
|
||||
+ * Replace all calls to fprintf with a call to yydebugger. Ignore
|
||||
+ * the first argument, it will be "stderr". The trace_where_ is
|
||||
+ * needed to set the location, and is safe, because bison only
|
||||
+ * invokes the printf with an if (be careful, the fprintf is not in
|
||||
+ * a compound statement).
|
||||
*/
|
||||
#define fprintf trace_where_, yydebugger
|
||||
|
||||
static void
|
||||
yydebugger(void *, const char *fmt, ...)
|
||||
{
|
||||
- va_list ap;
|
||||
- string_ty *s;
|
||||
+ va_list ap;
|
||||
+ string_ty *s;
|
||||
|
||||
- va_start(ap, fmt);
|
||||
- s = str_vformat(fmt, ap);
|
||||
- va_end(ap);
|
||||
- trace_printf("%s", s->str_text);
|
||||
- str_free(s);
|
||||
+ va_start(ap, fmt);
|
||||
+ s = str_vformat(fmt, ap);
|
||||
+ va_end(ap);
|
||||
+ trace_printf("%s", s->str_text);
|
||||
+ str_free(s);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -170,138 +172,139 @@
|
||||
%%
|
||||
|
||||
grammar:
|
||||
- nplurals SEMI plural
|
||||
- ;
|
||||
+ nplurals SEMI plural
|
||||
+ ;
|
||||
|
||||
nplurals
|
||||
- : NPLURALS EQU INTEGER
|
||||
- {
|
||||
- nplurals = $3;
|
||||
- }
|
||||
- ;
|
||||
+ : NPLURALS EQU INTEGER
|
||||
+ {
|
||||
+ nplurals = $3;
|
||||
+ }
|
||||
+ ;
|
||||
|
||||
plural
|
||||
- : PLURAL EQU expr
|
||||
- {
|
||||
- plural = $3;
|
||||
- }
|
||||
- ;
|
||||
+ : PLURAL EQU expr
|
||||
+ {
|
||||
+ plural = $3;
|
||||
+ }
|
||||
+ ;
|
||||
|
||||
expr
|
||||
- : LP expr RP
|
||||
- {
|
||||
- $$ = $2;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | NUMBER
|
||||
- {
|
||||
- $$ = number;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | INTEGER
|
||||
- {
|
||||
- $$ = $1;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | MINUS expr
|
||||
- %prec UNARY
|
||||
- {
|
||||
- $$ = -$2;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr PLUS expr
|
||||
- {
|
||||
- $$ = $1 + $3;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr MINUS expr
|
||||
- {
|
||||
- $$ = $1 - $3;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr MUL expr
|
||||
- {
|
||||
- $$ = $1 * $3;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr DIV expr
|
||||
- {
|
||||
- $$ = $3 ? $1 / $3 : 0;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr MOD expr
|
||||
- {
|
||||
- $$ = $3 ? $1 % $3 : 0;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr EQ expr
|
||||
- {
|
||||
- $$ = ($1 == $3);
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr NE expr
|
||||
- {
|
||||
- $$ = ($1 != $3);
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr LT expr
|
||||
- {
|
||||
- $$ = ($1 < $3);
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr LE expr
|
||||
- {
|
||||
- $$ = ($1 <= $3);
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr GT expr
|
||||
- {
|
||||
- $$ = ($1 > $3);
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr GE expr
|
||||
- {
|
||||
- $$ = ($1 >= $3);
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | NOT expr
|
||||
- {
|
||||
- $$ = (!$2);
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | BITNOT expr
|
||||
- {
|
||||
- $$ = ~$2;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr ANDAND expr
|
||||
- {
|
||||
- $$ = $1 && $3;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr BITAND expr
|
||||
- {
|
||||
- $$ = $1 & $3;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr OROR expr
|
||||
- {
|
||||
- $$ = $1 || $3;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr BITOR expr
|
||||
- {
|
||||
- $$ = $1 | $3;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr BITXOR expr
|
||||
- {
|
||||
- $$ = $1 ^ $3;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- | expr QUEST expr COLON expr
|
||||
- {
|
||||
- $$ = $1 ? $3 : $5;
|
||||
- trace(("$$ = %u;\n", $$));
|
||||
- }
|
||||
- ;
|
||||
+ : LP expr RP
|
||||
+ {
|
||||
+ $$ = $2;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | NUMBER
|
||||
+ {
|
||||
+ $$ = number;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | INTEGER
|
||||
+ {
|
||||
+ $$ = $1;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | MINUS expr
|
||||
+ %prec UNARY
|
||||
+ {
|
||||
+ $$ = -$2;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr PLUS expr
|
||||
+ {
|
||||
+ $$ = $1 + $3;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr MINUS expr
|
||||
+ {
|
||||
+ $$ = $1 - $3;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr MUL expr
|
||||
+ {
|
||||
+ $$ = $1 * $3;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr DIV expr
|
||||
+ {
|
||||
+ $$ = $3 ? $1 / $3 : 0;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr MOD expr
|
||||
+ {
|
||||
+ $$ = $3 ? $1 % $3 : 0;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr EQ expr
|
||||
+ {
|
||||
+ $$ = ($1 == $3);
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr NE expr
|
||||
+ {
|
||||
+ $$ = ($1 != $3);
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr LT expr
|
||||
+ {
|
||||
+ $$ = ($1 < $3);
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr LE expr
|
||||
+ {
|
||||
+ $$ = ($1 <= $3);
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr GT expr
|
||||
+ {
|
||||
+ $$ = ($1 > $3);
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr GE expr
|
||||
+ {
|
||||
+ $$ = ($1 >= $3);
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | NOT expr
|
||||
+ {
|
||||
+ $$ = (!$2);
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | BITNOT expr
|
||||
+ {
|
||||
+ $$ = ~$2;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr ANDAND expr
|
||||
+ {
|
||||
+ $$ = $1 && $3;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr BITAND expr
|
||||
+ {
|
||||
+ $$ = $1 & $3;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr OROR expr
|
||||
+ {
|
||||
+ $$ = $1 || $3;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr BITOR expr
|
||||
+ {
|
||||
+ $$ = $1 | $3;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr BITXOR expr
|
||||
+ {
|
||||
+ $$ = $1 ^ $3;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ | expr QUEST expr COLON expr
|
||||
+ {
|
||||
+ $$ = $1 ? $3 : $5;
|
||||
+ trace(("$$ = %u;\n", $$));
|
||||
+ }
|
||||
+ ;
|
||||
+// vim: set ts=8 sw=4 et :
|
Loading…
Reference in New Issue
Block a user