mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-11 05:13:04 +00:00
* data/glr.c (YYRHSLOC): Move its definition next to its uses.
Introduce another definition to address simple location arrays. (yyGLRStack): New member: yyerror_range. (yyrecoverSyntaxError, yyparse): Update it. (yyrecoverSyntaxError): Use it when shifting the error token to have an accurate range, equivalent to the one computed by both yacc.c and lalr1.cc. * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so that column numbers start at column 0, as per GNU Coding Standards, the others tests, and the doc. (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC): Adjust to the above change (first column is 0). And adjust the location of the "<error>", now covering the whole line.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# Checking GLR Parsing. -*- Autotest -*-
|
||||
# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
# 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
|
||||
@@ -123,8 +123,7 @@ yylex (LEX_PARAMETERS)
|
||||
int c;
|
||||
unsigned int i;
|
||||
static int lineNum = 1;
|
||||
static int colNum = 1;
|
||||
|
||||
static int colNum = 0;
|
||||
|
||||
#if YYPURE
|
||||
# define yylloc (*llocp)
|
||||
@@ -139,14 +138,14 @@ yylex (LEX_PARAMETERS)
|
||||
case EOF:
|
||||
return 0;
|
||||
case '\t':
|
||||
colNum = 1 + ((colNum + 7) & ~7);
|
||||
colNum = (colNum + 7) & ~7;
|
||||
break;
|
||||
case ' ': case '\f':
|
||||
colNum += 1;
|
||||
break;
|
||||
case '\n':
|
||||
lineNum += 1;
|
||||
colNum = 1;
|
||||
colNum = 0;
|
||||
break;
|
||||
default:
|
||||
{
|
||||
@@ -267,15 +266,15 @@ m4_define([_AT_RESOLVED_GLR_OUTPUT],
|
||||
]])
|
||||
|
||||
m4_define([_AT_RESOLVED_GLR_OUTPUT_WITH_LOC],
|
||||
[[3.1-3.6: +(z,q)
|
||||
5.1-5.4: <declare>(T,x)
|
||||
7.1-7.8: <init-declare>(T,x,y)
|
||||
9.1-9.6: =(x,y)
|
||||
11.1-11.10: +(<cast>(x,T),y)
|
||||
13.1-13.6: <declare>(T,x)
|
||||
15.1-15.14: <init-declare>(T,y,+(z,q))
|
||||
17.6-17.16: <error>
|
||||
19.1-19.6: +(z,q)
|
||||
[[3.0-3.5: +(z,q)
|
||||
5.0-5.3: <declare>(T,x)
|
||||
7.0-7.7: <init-declare>(T,x,y)
|
||||
9.0-9.5: =(x,y)
|
||||
11.0-11.9: +(<cast>(x,T),y)
|
||||
13.0-13.5: <declare>(T,x)
|
||||
15.0-15.13: <init-declare>(T,y,+(z,q))
|
||||
17.0-17.15: <error>
|
||||
19.0-19.5: +(z,q)
|
||||
]])
|
||||
|
||||
m4_define([_AT_AMBIG_GLR_OUTPUT],
|
||||
@@ -291,15 +290,15 @@ m4_define([_AT_AMBIG_GLR_OUTPUT],
|
||||
]])
|
||||
|
||||
m4_define([_AT_AMBIG_GLR_OUTPUT_WITH_LOC],
|
||||
[[3.1-3.6: +(z,q)
|
||||
5.1-5.4: <declare>(T,x)
|
||||
7.1-7.8: <init-declare>(T,x,y)
|
||||
9.1-9.6: =(x,y)
|
||||
11.1-11.10: +(<cast>(x,T),y)
|
||||
13.1-13.6: <OR>(<declare>(T,x),<cast>(x,T))
|
||||
15.1-15.14: <OR>(<init-declare>(T,y,+(z,q)),=(<cast>(y,T),+(z,q)))
|
||||
17.6-17.16: <error>
|
||||
19.1-19.6: +(z,q)
|
||||
[[3.0-3.5: +(z,q)
|
||||
5.0-5.3: <declare>(T,x)
|
||||
7.0-7.7: <init-declare>(T,x,y)
|
||||
9.0-9.5: =(x,y)
|
||||
11.0-11.9: +(<cast>(x,T),y)
|
||||
13.0-13.5: <OR>(<declare>(T,x),<cast>(x,T))
|
||||
15.0-15.13: <OR>(<init-declare>(T,y,+(z,q)),=(<cast>(y,T),+(z,q)))
|
||||
17.0-17.15: <error>
|
||||
19.0-19.5: +(z,q)
|
||||
]])
|
||||
|
||||
m4_define([_AT_GLR_STDERR],
|
||||
|
||||
Reference in New Issue
Block a user