- Update bison to 2.4.1, see announcements for important changes:

http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00000.html
  http://lists.gnu.org/archive/html/bug-bison/2008-12/msg00000.html
- Take over bison maintainership - as approved by portmgr (marcus)
- Add patches for ports to compile with new bison:
  Replace %{ .. %} with %code { .. } where required
  and accommodate stricter typing requirements
Thanks to pav for an exp-run on pointyhat

PR:		ports/131640
Approved by:	portmgr (pav)
This commit is contained in:
Johan van Selst 2009-03-06 12:04:11 +00:00
parent c99d0d7337
commit ec2d095bd0
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=229566
9 changed files with 411 additions and 124 deletions

View File

@ -6,14 +6,13 @@
#
PORTNAME= bison
PORTVERSION= 2.3
PORTREVISION= 4
PORTVERSION= 2.4.1
PORTEPOCH= 1
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU}
MASTER_SITE_SUBDIR= ${PORTNAME}
MAINTAINER= ade@FreeBSD.org
MAINTAINER= johans@stack.nl
COMMENT= A parser generator from FSF, (mostly) compatible with Yacc
BUILD_DEPENDS= gm4:${PORTSDIR}/devel/m4
@ -44,6 +43,7 @@ PLIST_SUB+= NLS=""
post-extract:
@${RM} -f ${WRKSRC}/doc/bison.info*
@${REINPLACE_CMD} 's/MANS = yacc.1/MANS =/' ${WRKSRC}/doc/Makefile.in
#
# Requires texinfo 4.8 or above

View File

@ -1,3 +1,3 @@
MD5 (bison-2.3.tar.bz2) = c18640c6ec31a169d351e3117ecce3ec
SHA256 (bison-2.3.tar.bz2) = b10d7e9e354be72aee4e4911cf19dd27b5c527d4e7200857365b5fcdeea0dffb
SIZE (bison-2.3.tar.bz2) = 1080319
MD5 (bison-2.4.1.tar.bz2) = 84e80a2a192c1a4c02d43fbf2bcc4ca4
SHA256 (bison-2.4.1.tar.bz2) = 2354469782149e36c644ae7c3e5105895424ed21cda5c05b591cb3dc17068e6b
SIZE (bison-2.4.1.tar.bz2) = 1467784

View File

@ -1,13 +1,24 @@
bin/bison
share/aclocal/bison-i18n.m4
%%DATADIR%%/README
%%DATADIR%%/bison.m4
%%DATADIR%%/c++-skel.m4
%%DATADIR%%/c++.m4
%%DATADIR%%/c-skel.m4
%%DATADIR%%/c.m4
%%DATADIR%%/glr.c
%%DATADIR%%/glr.cc
%%DATADIR%%/java-skel.m4
%%DATADIR%%/java.m4
%%DATADIR%%/lalr1.cc
%%DATADIR%%/lalr1.java
%%DATADIR%%/location.cc
%%DATADIR%%/m4sugar/foreach.m4
%%DATADIR%%/m4sugar/m4sugar.m4
%%DATADIR%%/xslt/bison.xsl
%%DATADIR%%/xslt/xml2dot.xsl
%%DATADIR%%/xslt/xml2text.xsl
%%DATADIR%%/xslt/xml2xhtml.xsl
%%DATADIR%%/yacc.c
%%PORTDOCS%%%%EXAMPLESDIR%%/calc++/calc++-driver.cc
%%PORTDOCS%%%%EXAMPLESDIR%%/calc++/calc++-driver.hh
@ -24,10 +35,13 @@ share/aclocal/bison-i18n.m4
%%NLS%%share/locale/da/LC_MESSAGES/bison.mo
%%NLS%%share/locale/de/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/de/LC_MESSAGES/bison.mo
%%NLS%%share/locale/el/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/el/LC_MESSAGES/bison.mo
%%NLS%%share/locale/es/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/es/LC_MESSAGES/bison.mo
%%NLS%%share/locale/et/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/et/LC_MESSAGES/bison.mo
%%NLS%%share/locale/fi/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/fr/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/fr/LC_MESSAGES/bison.mo
%%NLS%%share/locale/ga/LC_MESSAGES/bison-runtime.mo
@ -40,6 +54,8 @@ share/aclocal/bison-i18n.m4
%%NLS%%share/locale/it/LC_MESSAGES/bison.mo
%%NLS%%share/locale/ja/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/ja/LC_MESSAGES/bison.mo
%%NLS%%share/locale/ky/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/lt/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/ms/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/ms/LC_MESSAGES/bison.mo
%%NLS%%share/locale/nb/LC_MESSAGES/bison-runtime.mo
@ -54,19 +70,23 @@ share/aclocal/bison-i18n.m4
%%NLS%%share/locale/ro/LC_MESSAGES/bison.mo
%%NLS%%share/locale/ru/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/ru/LC_MESSAGES/bison.mo
%%NLS%%share/locale/rw/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/rw/LC_MESSAGES/bison.mo
%%NLS%%share/locale/sl/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/sv/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/sv/LC_MESSAGES/bison.mo
%%NLS%%share/locale/th/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/tr/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/tr/LC_MESSAGES/bison.mo
%%NLS%%share/locale/uk/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/uk/LC_MESSAGES/bison.mo
%%NLS%%share/locale/vi/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/vi/LC_MESSAGES/bison.mo
%%NLS%%share/locale/zh_CN/LC_MESSAGES/bison-runtime.mo
%%NLS%%share/locale/zh_TW/LC_MESSAGES/bison-runtime.mo
%%NLS%%@dirrmtry share/locale/rw/LC_MESSAGES
%%NLS%%@dirrmtry share/locale/rw
%%PORTDOCS%%@dirrmtry %%EXAMPLESDIR%%/calc++
%%PORTDOCS%%@dirrmtry %%EXAMPLESDIR%%
@dirrmtry %%DATADIR%%/m4sugar
@dirrmtry %%DATADIR%%
%%NLS%%share/locale/zh_TW/LC_MESSAGES/bison.mo
%%NLS%%@dirrmtry share/locale/ky/LC_MESSAGES
%%NLS%%@dirrmtry share/locale/ky
%%PORTDOCS%%@dirrm %%EXAMPLESDIR%%/calc++
%%PORTDOCS%%@dirrm %%EXAMPLESDIR%%
@dirrm %%DATADIR%%/m4sugar
@dirrm %%DATADIR%%/xslt
@dirrm %%DATADIR%%

View File

@ -0,0 +1,257 @@
http://sourceforge.net/tracker/index.php?func=detail&aid=2615264&group_id=33473&atid=408391
diff -up assembler.y.midrule assembler.y
--- assembler.y.midrule 2008-12-20 22:44:50.000000000 +0100
+++ assembler.y 2008-12-20 22:54:03.000000000 +0100
@@ -605,24 +605,24 @@ finally_opt
trycatchfinally
: TRY name_opt {
- $$ = writeByte(SWFACTION_TRY);
+ $<num>$ = writeByte(SWFACTION_TRY);
/* action length */
- $$ += writeShort(strlen($2)+8);
+ $<num>$ += writeShort(strlen($2)+8);
/* zero flag */
- $$ += writeByte(0);
+ $<num>$ += writeByte(0);
/* zero try length */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
/* zero catch length */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
/* zero finally length */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
/* error variable name */
- $$ += writeString($2);
+ $<num>$ += writeString($2);
}
- statements_opt { $$ = $<num>3 + $4; patchLength($$ - 6, $4); }
- catch_opt { $$ = $<num>5 + $6; patchLength($$ - 8, $6); }
- finally_opt { $$ = $<num>7 + $8; patchLength($$ - 10, $8); }
+ statements_opt { $<num>$ = $<num>3 + $4; patchLength($<num>$ - 6, $4); }
+ catch_opt { $<num>$ = $<num>5 + $6; patchLength($<num>$ - 8, $6); }
+ finally_opt { $<num>$ = $<num>7 + $8; patchLength($<num>$ - 10, $8); }
END {
byte flag = 0;
$$ = $<num>9;
@@ -634,24 +634,24 @@ trycatchfinally
}
| TRY register {
- $$ = writeByte(SWFACTION_TRY);
+ $<num>$ = writeByte(SWFACTION_TRY);
/* action length */
- $$ += writeShort(8);
+ $<num>$ += writeShort(8);
/* zero flag */
- $$ += writeByte(0);
+ $<num>$ += writeByte(0);
/* zero try length */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
/* zero catch length */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
/* zero finally length */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
/* error register number */
- $$ += writeByte((byte) $2);
+ $<num>$ += writeByte((byte) $2);
}
- statements_opt { $$ = $<num>3 + $4; patchLength($$ - 6, $4); }
- catch_opt { $$ = $<num>5 + $6; patchLength($$ - 8, $6); }
- finally_opt { $$ = $<num>7 + $8; patchLength($$ - 10, $8); }
+ statements_opt { $<num>$ = $<num>3 + $4; patchLength($<num>$ - 6, $4); }
+ catch_opt { $<num>$ = $<num>5 + $6; patchLength($<num>$ - 8, $6); }
+ finally_opt { $<num>$ = $<num>7 + $8; patchLength($<num>$ - 10, $8); }
END {
byte flag = 4;
$$ = $<num>9;
@@ -707,25 +707,25 @@ name_opt
function
: FUNCTION name_opt {
- $$ = writeByte(SWFACTION_DEFINEFUNCTION);
+ $<num>$ = writeByte(SWFACTION_DEFINEFUNCTION);
/* zero block length */
- $$ += writeShort(0);
- $$ += writeString($2);
+ $<num>$ += writeShort(0);
+ $<num>$ += writeString($2);
}
'(' function_args ')' {
unsigned int i;
numArgs = $5;
- $$ = $<num>3 + writeShort(numArgs);
+ $<num>$ = $<num>3 + writeShort(numArgs);
for(i = 0; i < numArgs; ++i)
- $$ += writeString(func_args[i]);
+ $<num>$ += writeString(func_args[i]);
/* zero function length */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
/* patch block length */
- patchLength($$-3, $$-3);
+ patchLength($<num>$-3, $<num>$-3);
}
statements_opt END {
@@ -837,25 +837,25 @@ autoregarglist
function2
: FUNCTION2 name_opt {
- $$ = writeByte(SWFACTION_DEFINEFUNCTION2);
+ $<num>$ = writeByte(SWFACTION_DEFINEFUNCTION2);
/* zero block length */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
/* function name */
- $$ += writeString($2);
+ $<num>$ += writeString($2);
curFunc++;
memset(regfunc_args[curFunc], 0, sizeof (regfunc_args[curFunc]));
numArgs = 0;
/* zero num of function arguments */
- $$ += writeShort(numArgs);
+ $<num>$ += writeShort(numArgs);
/* allocate zero registers */
numRegisters[curFunc] = 0;
- $$ += writeByte(numRegisters[curFunc]);
+ $<num>$ += writeByte(numRegisters[curFunc]);
/* zero automatic register flags */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
}
'(' regarglist ')' {
- $$ = $<num>3 + $5;
+ $<num>$ = $<num>3 + $5;
/* patch num of function arguments */
patchLength($5 + 3, numArgs);
autoregFlags = 0;
@@ -866,9 +866,9 @@ function2
byte curautoreg = 1;
unsigned int i;
- $$ = $<num>7;
+ $<num>$ = $<num>7;
/* zero body length */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
/* make sure auto registers are allocated in the right order */
for (i = 0; i < MAX_AUTO_REGS; i++) {
@@ -883,9 +883,9 @@ function2
}
/* patch automatic register flags */
- patchLength($$ - $<num>3, autoregFlags);
+ patchLength($<num>$ - $<num>3, autoregFlags);
/* patch block length */
- patchLength($$ - 3, $$ - 3);
+ patchLength($<num>$ - 3, $<num>$ - 3);
}
statements_opt END {
@@ -905,11 +905,11 @@ function2
with
: WITH {
- $$ = writeByte(SWFACTION_WITH);
+ $<num>$ = writeByte(SWFACTION_WITH);
/* length of with action */
- $$ += writeShort(2);
+ $<num>$ += writeShort(2);
/* length of with block - will be patched */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
}
statements_opt END {
@@ -921,9 +921,9 @@ with
settarget
: SETTARGET STRING {
- $$ = writeByte(SWFACTION_SETTARGET);
- $$ += writeShort(strlen($2)+1);
- $$ += writeString($2);
+ $<num>$ = writeByte(SWFACTION_SETTARGET);
+ $<num>$ += writeShort(strlen($2)+1);
+ $<num>$ += writeString($2);
}
statements_opt END {
@@ -934,7 +934,7 @@ settarget
;
settargetexpression
- : SETTARGETEXPR { $$ = writeByte(SWFACTION_SETTARGETEXPRESSION); }
+ : SETTARGETEXPR { $<num>$ = writeByte(SWFACTION_SETTARGETEXPRESSION); }
statements_opt END {
$$ = $3 + writeByte(SWFACTION_SETTARGET);
$$ += $<num>2 + writeShort(1);
@@ -946,9 +946,9 @@ ifframeloadedexpression
: IFFRAMELOADEDEXPR {
if (frameloadedStart>-1)
yyerror("IfFrameLoaded actions can't be nested");
- $$ = writeByte(SWFACTION_IFFRAMELOADEDEXPRESSION);
- $$ += writeShort(1);
- $$ += writeByte(0);
+ $<num>$ = writeByte(SWFACTION_IFFRAMELOADEDEXPRESSION);
+ $<num>$ += writeShort(1);
+ $<num>$ += writeByte(0);
frameloadedStart = numActions;
}
@@ -963,10 +963,10 @@ ifframeloaded
: IFFRAMELOADED INTEGER {
if (frameloadedStart>-1)
yyerror("IfFrameLoaded actions can't be nested");
- $$ = writeByte(SWFACTION_IFFRAMELOADED);
- $$ += writeShort(3);
- $$ += writeShort($2);
- $$ += writeByte(0);
+ $<num>$ = writeByte(SWFACTION_IFFRAMELOADED);
+ $<num>$ += writeShort(3);
+ $<num>$ += writeShort($2);
+ $<num>$ += writeByte(0);
frameloadedStart = numActions;
}
@@ -1199,9 +1199,9 @@ opcode
constant_list_opt { $$ = writeConstants(); }
| PUSH {
- $$ = writeByte(SWFACTION_PUSHDATA);
+ $<num>$ = writeByte(SWFACTION_PUSHDATA);
/* length */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
}
push_list {
@@ -1212,10 +1212,10 @@ opcode
| SWFACTION HEX {
if (xtoi($2)>0xff)
yyerror("Action code out of range");
- $$ = writeByte((char)xtoi($2));
+ $<num>$ = writeByte((char)xtoi($2));
if (xtoi($2)>=0x80)
/* length */
- $$ += writeShort(0);
+ $<num>$ += writeShort(0);
}
hexlist_opt {

View File

@ -0,0 +1,23 @@
--- src/actioncompiler/swf5compiler.y.orig 2006-02-08 23:48:38.000000000 +0100
+++ src/actioncompiler/swf5compiler.y 2009-03-06 11:32:10.000000000 +0100
@@ -1795,7 +1795,7 @@ opcode_list
with
: WITH
- { $$ = bufferWriteOp(asmBuffer,
+ { $<len>$ = bufferWriteOp(asmBuffer,
SWFACTION_WITH); }
opcode_list END { $$ = $<len>2 + $3;
bufferPatchLength(asmBuffer, $3); }
@@ -1828,9 +1828,9 @@ push_list
;
opcode
- : PUSH { $$ = bufferWriteOp(asmBuffer,
+ : PUSH { $<len>$ = bufferWriteOp(asmBuffer,
SWFACTION_PUSH);
- $$ += bufferWriteS16(asmBuffer, 0); }
+ $<len>$ += bufferWriteS16(asmBuffer, 0); }
push_list { $$ = $<len>2 + $3;
bufferPatchLength(asmBuffer, $3); }

View File

@ -1,96 +1,32 @@
--- actioncompiler/swf5compiler.y.orig Mon Dec 2 11:13:11 2002
+++ actioncompiler/swf5compiler.y Mon Dec 2 11:18:08 2002
@@ -37,23 +37,23 @@
--- actioncompiler/swf5compiler.y.orig 2009-03-06 11:34:48.000000000 +0100
+++ actioncompiler/swf5compiler.y 2009-03-06 11:37:13.000000000 +0100
@@ -239,7 +239,7 @@ expr_opt
/* tokens etc. */
switch_stmt
: SWITCH '(' expr ')' '{'
- { $$ = $3; }
+ { $<action>$ = $3; }
switch_cases '}'
{ bufferConcat($$, $7);
bufferResolveJumps($$);
@@ -1422,7 +1422,7 @@ opcode_list
-%token BREAK, CONTINUE, FUNCTION, ELSE, SWITCH, CASE, FOR, IN, IF, WHILE,
- DO, VAR, NEW, DELETE, RETURN, END, WITH, ASM, EVAL
+%token BREAK CONTINUE FUNCTION ELSE SWITCH CASE FOR IN IF WHILE
+ DO VAR NEW DELETE RETURN END WITH ASM EVAL
with
: WITH
- { $$ = bufferWriteOp(asmBuffer,
+ { $<len>$ = bufferWriteOp(asmBuffer,
SWFACTION_WITH); }
opcode_list END { $$ = $<len>2 + $3;
bufferPatchLength(asmBuffer, $3); }
@@ -1455,9 +1455,9 @@ push_list
;
-%token RANDOM, GETTIMER, LENGTH, CONCAT, SUBSTR, TRACE, INT, ORD, CHR, GETURL,
- GETURL1, NEXTFRAME, PREVFRAME, PLAY, STOP, TOGGLEQUALITY, STOPSOUNDS
+%token RANDOM GETTIMER LENGTH CONCAT SUBSTR TRACE INT ORD CHR GETURL
+ GETURL1 NEXTFRAME PREVFRAME PLAY STOP TOGGLEQUALITY STOPSOUNDS
opcode
- : PUSH { $$ = bufferWriteOp(asmBuffer,
+ : PUSH { $<len>$ = bufferWriteOp(asmBuffer,
SWFACTION_PUSHDATA);
- $$ += bufferWriteS16(asmBuffer, 0); }
+ $<len>$ += bufferWriteS16(asmBuffer, 0); }
push_list { $$ = $<len>2 + $3;
bufferPatchLength(asmBuffer, $3); }
-%token DUP, SWAP, POP, PUSH, SETREGISTER, CALLFUNCTION, CALLMETHOD,
- AND, OR, XOR, MODULO, ADD, LESSTHAN, EQUALS,
- INC, DEC, TYPEOF, ENUMERATE, INITOBJECT, INITARRAY, GETMEMBER,
- SETMEMBER, SHIFTLEFT, SHIFTRIGHT, SHIFTRIGHT2, VAREQUALS, OLDADD, SUBTRACT,
- MULTIPLY, DIVIDE, OLDEQUALS, OLDLESSTHAN, LOGICALAND, LOGICALOR, NOT,
- STRINGEQ, STRINGLENGTH, SUBSTRING, GETVARIABLE, SETVARIABLE,
- SETTARGETEXPRESSION, DUPLICATEMOVIECLIP, REMOVEMOVIECLIP,
- STRINGLESSTHAN, MBLENGTH, MBSUBSTRING, MBORD, MBCHR,
- BRANCHALWAYS, BRANCHIFTRUE, GETURL2, POST, GET,
- LOADVARIABLES, LOADMOVIE, LOADVARIABLESNUM, LOADMOVIENUM,
- CALLFRAME, STARTDRAG, STOPDRAG, GOTOFRAME, SETTARGET
+%token DUP SWAP POP PUSH SETREGISTER CALLFUNCTION CALLMETHOD
+ AND OR XOR MODULO ADD LESSTHAN EQUALS
+ INC DEC TYPEOF ENUMERATE INITOBJECT INITARRAY GETMEMBER
+ SETMEMBER SHIFTLEFT SHIFTRIGHT SHIFTRIGHT2 VAREQUALS OLDADD SUBTRACT
+ MULTIPLY DIVIDE OLDEQUALS OLDLESSTHAN LOGICALAND LOGICALOR NOT
+ STRINGEQ STRINGLENGTH SUBSTRING GETVARIABLE SETVARIABLE
+ SETTARGETEXPRESSION DUPLICATEMOVIECLIP REMOVEMOVIECLIP
+ STRINGLESSTHAN MBLENGTH MBSUBSTRING MBORD MBCHR
+ BRANCHALWAYS BRANCHIFTRUE GETURL2 POST GET
+ LOADVARIABLES LOADMOVIE LOADVARIABLESNUM LOADMOVIENUM
+ CALLFRAME STARTDRAG STOPDRAG GOTOFRAME SETTARGET
%token NULLVAL
%token <intVal> INTEGER
@@ -106,26 +106,26 @@
%left '.' '[' ']'
-%type <action> program, code
-%type <action> stmt, stmts
-%type <action> if_stmt, iter_stmt, cont_stmt, break_stmt, return_stmt
+%type <action> program code
+%type <action> stmt stmts
+%type <action> if_stmt iter_stmt cont_stmt break_stmt return_stmt
%type <action> with_stmt
-%type <action> switch_stmt, switch_cases, switch_case
-%type <action> anon_function_decl, function_decl, anycode
-%type <action> void_function_call, function_call, method_call
-%type <action> assign_stmt, assign_stmts, assign_stmts_opt
-%type <action> expr, expr_or_obj, objexpr, expr_opt, obj_ref
-%type <action> emptybraces, level, init_vars, init_var, primary, lvalue_expr
+%type <action> switch_stmt switch_cases switch_case
+%type <action> anon_function_decl function_decl anycode
+%type <action> void_function_call function_call method_call
+%type <action> assign_stmt assign_stmts assign_stmts_opt
+%type <action> expr expr_or_obj objexpr expr_opt obj_ref
+%type <action> emptybraces level init_vars init_var primary lvalue_expr
%type <lval> lvalue
-%type <exprlist> expr_list, objexpr_list, formals_list
+%type <exprlist> expr_list objexpr_list formals_list
-%type <op> assignop, incdecop
+%type <op> assignop incdecop
%type <getURLMethod> urlmethod
%type <str> identifier
-%type <len> opcode, opcode_list, push_item, with, push_list
+%type <len> opcode opcode_list push_item with push_list
/*
%type <intVal> integer
@@ -144,6 +144,7 @@
bufferConcat(b, bf);
bufferConcat(b, bc);
*((Buffer *)buffer) = b; }
+ ;
code
: anycode
@@ -228,6 +229,7 @@
bufferWriteS16($$, 2);
bufferWriteS16($$, bufferLength($5));
bufferConcat($$, $5); }
+ ;
expr_opt
: /* empty */ { $$ = NULL; }

View File

@ -1,6 +1,9 @@
--- parser.y.orig Mon Mar 26 10:02:40 2001
+++ parser.y Wed Sep 17 13:34:05 2003
@@ -3,11 +3,6 @@
--- parser.y.orig 2004-12-09 11:50:14.000000000 +0100
+++ parser.y 2009-03-06 11:26:20.000000000 +0100
@@ -1,19 +1,18 @@
-%{
+%code requires {
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -12,7 +15,26 @@
#include "nmtbl.h"
#include "token.h"
@@ -285,23 +280,27 @@
#include "trnod.h"
#include "util.h"
+}
+
+%code provides {
+
static int zzcnv_table[] = {
#define DEF_TOKEN(mnem, cat, cls, yacc) yacc,
#include "token.dpp"
@@ -26,7 +25,7 @@
error(curr_token, "syntax error: %s", text);
}
-%}
+}
%union {
@@ -286,23 +285,27 @@
$2->attrib(ctx_program);
$2->translate(ctx_program);
}
@ -41,7 +63,7 @@
/* Turbo Pascal specific */
@@ -313,38 +312,46 @@
@@ -314,38 +317,46 @@
{ $$ = new unit_node(NULL, NULL, NULL, $1, $2, $3, $4, NULL, $5, $6); }
| INTERFACE unit_decl_list IMPLEMENTATION unit_def_list compoundst '.'
{ $$ = new unit_node(NULL, NULL, NULL, $1, $2, $3, $4, $5, NULL, $6); }
@ -90,7 +112,7 @@
/*
//=============================================================================
@@ -401,15 +408,20 @@
@@ -402,15 +413,20 @@
| ICONST ':' statement { $$ = new label_node($1, $2, $3); }
| IDENT ':' statement { $$ = new label_node($1, $2, $3); }
| compoundst { $$ = $1; }
@ -111,7 +133,7 @@
case_list: case_items
| case_items otherwise sequence
@@ -423,20 +435,26 @@
@@ -424,20 +440,26 @@
$$ = new case_node(NULL, $2, $3);
}
}
@ -138,7 +160,7 @@
/*
//=============================================================================
@@ -485,6 +503,7 @@
@@ -486,6 +508,7 @@
| expr OR expr { $$ = new op_node(tn_or, $1, $2, $3); }
| expr XOR expr { $$ = new op_node(tn_xor, $1, $2, $3); }
@ -146,7 +168,7 @@
| expr GT expr { $$ = new op_node(tn_gt, $1, $2, $3); }
| expr LT expr { $$ = new op_node(tn_lt, $1, $2, $3); }
| expr LE expr { $$ = new op_node(tn_le, $1, $2, $3); }
@@ -492,6 +511,7 @@
@@ -493,6 +516,7 @@
| expr EQ expr { $$ = new op_node(tn_eq, $1, $2, $3); }
| expr NE expr { $$ = new op_node(tn_ne, $1, $2, $3); }
| expr IN expr { $$ = new op_node(tn_in, $1, $2, $3); }
@ -154,7 +176,7 @@
simple_expr: primary
| PLUS simple_expr %prec UPLUS {
@@ -502,6 +522,7 @@
@@ -503,6 +527,7 @@
{ $$ = new op_node(tn_not, NULL, $1, $2); }
| '@' primary { $$ = new address_node($1, $2); }
| AND primary %prec ADDRESS { $$ = new address_node($1, $2); }
@ -162,7 +184,7 @@
primary: constant
| '(' expr_list ')' { $$ = new expr_group_node($1, $2, $3); }
@@ -510,6 +531,7 @@
@@ -511,6 +536,7 @@
| primary '^' { $$ = new deref_expr_node($1, $2); }
| primary '[' expr_list ']' { $$ = new idx_expr_node($1, $2, $3, $4); }
| LOOPHOLE '(' type ',' expr ')' { $$ = new loophole_node($1, $2, $3, $4, $5, $6); }
@ -170,7 +192,7 @@
constant: record_constant
| ICONST { $$ = new integer_node($1); }
@@ -517,41 +539,49 @@
@@ -518,41 +544,49 @@
| SCONST { $$ = new string_node($1); }
| '[' set_elem_list ']' { $$ = new set_node($1, $2, $3); }
| IDENT { $$ = new atom_expr_node($1); }
@ -224,7 +246,7 @@
/*
//=============================================================================
@@ -594,31 +624,40 @@
@@ -595,31 +629,40 @@
label_decl_part: LABEL label_list ';'
{ $$ = new label_decl_part_node($1, $2, $3); }
@ -265,7 +287,7 @@
var_decl_list: { $$ = NULL; }
| var_decl
@@ -634,29 +673,33 @@
@@ -635,29 +678,33 @@
$1->next = $5; $$ = $1;
}
| var_decl ';' var_decl_list { $1->next = $3; $$ = $1; }
@ -300,7 +322,7 @@
proc_def:
PROCEDURE IDENT formal_params ';' block ';'
@@ -675,135 +718,166 @@
@@ -676,135 +723,166 @@
{ $$ = new proc_def_node($1, NULL, NULL, $2, $3, $4, $5, $6, $7, $8, $9, $10); }
| FUNCTION IDENT ';' FAR ';' block ';'
{ $$ = new proc_def_node($1, NULL, NULL, $2, NULL, NULL, NULL, $3, $4, $5, $6, $7); }

View File

@ -0,0 +1,20 @@
--- source/iked/conf.parse.yy.orig 2008-06-10 04:24:20.000000000 +0200
+++ source/iked/conf.parse.yy 2009-03-06 11:40:56.000000000 +0100
@@ -43,7 +43,7 @@
%defines
%define "parser_class_name" "conf_parser"
-%{
+%code requires {
#include <string>
@@ -51,7 +51,7 @@
typedef class _IKED IKED;
-%}
+}
// The parsing context.
%parse-param { IKED & iked }

View File

@ -1,6 +1,15 @@
--- rec_parse.y.orig Mon Dec 2 11:54:46 2002
+++ rec_parse.y Mon Dec 2 11:55:02 2002
@@ -162,12 +162,14 @@
--- rec_parse.y.orig 2001-12-10 18:01:17.000000000 +0100
+++ rec_parse.y 2009-03-03 00:57:09.000000000 +0100
@@ -141,7 +141,7 @@ mode_decl : MODE STRING
| MODE STRING
{
/* Do this first so the default mode gets set correctly*/
- $$ = rec_get_mode((rec_t *) rec, $2);
+ $<rec_mode>$ = rec_get_mode((rec_t *) rec, $2);
}
':' mode_id_list
{
@@ -162,12 +162,14 @@ mode_id_list : mode_id
$$ = $1;
rec_mode_list_append(&$$, $3);
}