projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
*** empty log message ***
[deliverable/binutils-gdb.git]
/
gdb
/
m2-exp.y
diff --git
a/gdb/m2-exp.y
b/gdb/m2-exp.y
index f207b2443049576aac8de81dcb7ab253af840ca2..3fb46851c84b424ae88951f9834ca9a9be207fa0 100644
(file)
--- a/
gdb/m2-exp.y
+++ b/
gdb/m2-exp.y
@@
-1,5
+1,6
@@
/* YACC grammar for Modula-2 expressions, for GDB.
/* YACC grammar for Modula-2 expressions, for GDB.
- Copyright (C) 1986, 1989, 1990, 1991, 1993, 1994, 1995
+ Copyright 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999,
+ 2000
Free Software Foundation, Inc.
Generated from expread.y (now c-exp.y) and contributed by the Department
of Computer Science at the State University of New York at Buffalo, 1991.
Free Software Foundation, Inc.
Generated from expread.y (now c-exp.y) and contributed by the Department
of Computer Science at the State University of New York at Buffalo, 1991.
@@
-40,7
+41,7
@@
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
%{
#include "defs.h"
%{
#include "defs.h"
-#include
<string.h>
+#include
"gdb_string.h"
#include "expression.h"
#include "language.h"
#include "value.h"
#include "expression.h"
#include "language.h"
#include "value.h"
@@
-86,6
+87,8
@@
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define yylloc m2_lloc
#define yyreds m2_reds /* With YYDEBUG defined */
#define yytoks m2_toks /* With YYDEBUG defined */
#define yylloc m2_lloc
#define yyreds m2_reds /* With YYDEBUG defined */
#define yytoks m2_toks /* With YYDEBUG defined */
+#define yyname m2_name /* With YYDEBUG defined */
+#define yyrule m2_rule /* With YYDEBUG defined */
#define yylhs m2_yylhs
#define yylen m2_yylen
#define yydefred m2_yydefred
#define yylhs m2_yylhs
#define yylen m2_yylen
#define yydefred m2_yydefred
@@
-97,25
+100,22
@@
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define yycheck m2_yycheck
#ifndef YYDEBUG
#define yycheck m2_yycheck
#ifndef YYDEBUG
-#define YYDEBUG
0 /* Default to n
o yydebug support */
+#define YYDEBUG
1 /* Default t
o yydebug support */
#endif
#endif
-int
-yyparse PARAMS ((void));
+#define YYFPRINTF parser_fprintf
-static int
-yylex PARAMS ((void));
+int yyparse (void);
-void
-yyerror PARAMS ((char *));
+static int yylex (void);
+
+void yyerror (char *);
#if 0
#if 0
-static char *
-make_qualname PARAMS ((char *, char *));
+static char *make_qualname (char *, char *);
#endif
#endif
-static int
-parse_number PARAMS ((int));
+static int parse_number (int);
/* The sign of the number being parsed. */
static int number_sign = 1;
/* The sign of the number being parsed. */
static int number_sign = 1;
@@
-135,7
+135,7
@@
static struct block *modblock=0;
%union
{
LONGEST lval;
%union
{
LONGEST lval;
-
unsigned
LONGEST ulval;
+
U
LONGEST ulval;
DOUBLEST dval;
struct symbol *sym;
struct type *tval;
DOUBLEST dval;
struct symbol *sym;
struct type *tval;
@@
-216,6
+216,7
@@
type_exp: type
exp : exp '^' %prec UNARY
{ write_exp_elt_opcode (UNOP_IND); }
exp : exp '^' %prec UNARY
{ write_exp_elt_opcode (UNOP_IND); }
+ ;
exp : '-'
{ number_sign = -1; }
exp : '-'
{ number_sign = -1; }
@@
-330,6
+331,7
@@
exp : INCL '(' exp ',' exp ')'
exp : EXCL '(' exp ',' exp ')'
{ error("Sets are not implemented.");}
exp : EXCL '(' exp ',' exp ')'
{ error("Sets are not implemented.");}
+ ;
set : '{' arglist '}'
{ error("Sets are not implemented.");}
set : '{' arglist '}'
{ error("Sets are not implemented.");}
@@
-825,6
+827,8
@@
yylex ()
retry:
retry:
+ prev_lexptr = lexptr;
+
tokstart = lexptr;
tokstart = lexptr;
@@
-1050,6
+1054,10
@@
yylex ()
case LOC_LABEL:
case LOC_UNRESOLVED:
error("internal: Unforseen case in m2lex()");
case LOC_LABEL:
case LOC_UNRESOLVED:
error("internal: Unforseen case in m2lex()");
+
+ default:
+ error ("unhandled token in m2lex()");
+ break;
}
}
else
}
}
else
@@
-1090,5
+1098,8
@@
void
yyerror (msg)
char *msg;
{
yyerror (msg)
char *msg;
{
+ if (prev_lexptr)
+ lexptr = prev_lexptr;
+
error ("A %s in expression, near `%s'.", (msg ? msg : "error"), lexptr);
}
error ("A %s in expression, near `%s'.", (msg ? msg : "error"), lexptr);
}
This page took
0.02497 seconds
and
4
git commands to generate.