Don't include libbfd.h outside of bfd, part 6
[deliverable/binutils-gdb.git] / gdb / jv-exp.y
index 0894fad34b6ce1a026077a7cefa4f18bf24eadab..79b8127b595f48024ed3c15818a893691818d041 100644 (file)
@@ -1,5 +1,5 @@
 /* YACC parser for Java expressions, for GDB.
-   Copyright (C) 1997-2014 Free Software Foundation, Inc.
+   Copyright (C) 1997-2016 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -36,7 +36,6 @@
 %{
 
 #include "defs.h"
-#include <string.h>
 #include <ctype.h>
 #include "expression.h"
 #include "value.h"
 #define parse_type(ps) builtin_type (parse_gdbarch (ps))
 #define parse_java_type(ps) builtin_java_type (parse_gdbarch (ps))
 
-/* Remap normal yacc parser interface names (yyparse, yylex, yyerror, etc),
-   as well as gratuitiously global symbol names, so we can have multiple
-   yacc generated parsers in gdb.  Note that these are only the variables
-   produced by yacc.  If other parser generators (bison, byacc, etc) produce
-   additional global names that conflict at link time, then those parser
-   generators need to be fixed instead of adding those names to this list.  */
-
-#define        yymaxdepth java_maxdepth
-#define        yyparse java_parse_internal
-#define        yylex   java_lex
-#define        yyerror java_error
-#define        yylval  java_lval
-#define        yychar  java_char
-#define        yydebug java_debug
-#define        yypact  java_pact       
-#define        yyr1    java_r1                 
-#define        yyr2    java_r2                 
-#define        yydef   java_def                
-#define        yychk   java_chk                
-#define        yypgo   java_pgo                
-#define        yyact   java_act                
-#define        yyexca  java_exca
-#define yyerrflag java_errflag
-#define yynerrs        java_nerrs
-#define        yyps    java_ps
-#define        yypv    java_pv
-#define        yys     java_s
-#define        yy_yys  java_yys
-#define        yystate java_state
-#define        yytmp   java_tmp
-#define        yyv     java_v
-#define        yy_yyv  java_yyv
-#define        yyval   java_val
-#define        yylloc  java_lloc
-#define yyreds java_reds               /* With YYDEBUG defined */
-#define yytoks java_toks               /* With YYDEBUG defined */
-#define yyname java_name               /* With YYDEBUG defined */
-#define yyrule java_rule               /* With YYDEBUG defined */
-#define yylhs  java_yylhs
-#define yylen  java_yylen
-#define yydefred java_yydefred
-#define yydgoto        java_yydgoto
-#define yysindex java_yysindex
-#define yyrindex java_yyrindex
-#define yygindex java_yygindex
-#define yytable         java_yytable
-#define yycheck         java_yycheck
-#define yyss   java_yyss
-#define yysslim        java_yysslim
-#define yyssp  java_yyssp
-#define yystacksize java_yystacksize
-#define yyvs   java_yyvs
-#define yyvsp  java_yyvsp
-
-#ifndef YYDEBUG
-#define        YYDEBUG 1               /* Default to yydebug support */
-#endif
-
-#define YYFPRINTF parser_fprintf
+/* Remap normal yacc parser interface names (yyparse, yylex, yyerror,
+   etc).  */
+#define GDB_YY_REMAP_PREFIX java_
+#include "yy-remap.h"
 
 /* The state of the parser, used internally when we are parsing the
    expression.  */
@@ -356,7 +300,7 @@ QualifiedName:
                    {
                      char *buf;
 
-                     buf = malloc ($$.length + 1);
+                     buf = (char *) malloc ($$.length + 1);
                      make_cleanup (free, buf);
                      sprintf (buf, "%.*s.%.*s",
                               $1.length, $1.ptr, $3.length, $3.ptr);
@@ -843,7 +787,7 @@ parse_number (struct parser_state *par_state,
 
 struct token
 {
-  char *operator;
+  char *oper;
   int token;
   enum exp_opcode opcode;
 };
@@ -897,7 +841,7 @@ yylex (void)
   tokstart = lexptr;
   /* See if it is a special token of length 3.  */
   for (i = 0; i < sizeof tokentab3 / sizeof tokentab3[0]; i++)
-    if (strncmp (tokstart, tokentab3[i].operator, 3) == 0)
+    if (strncmp (tokstart, tokentab3[i].oper, 3) == 0)
       {
        lexptr += 3;
        yylval.opcode = tokentab3[i].opcode;
@@ -906,7 +850,7 @@ yylex (void)
 
   /* See if it is a special token of length 2.  */
   for (i = 0; i < sizeof tokentab2 / sizeof tokentab2[0]; i++)
-    if (strncmp (tokstart, tokentab2[i].operator, 2) == 0)
+    if (strncmp (tokstart, tokentab2[i].oper, 2) == 0)
       {
        lexptr += 2;
        yylval.opcode = tokentab2[i].opcode;
@@ -1271,24 +1215,22 @@ push_variable (struct parser_state *par_state, struct stoken name)
 {
   char *tmp = copy_name (name);
   struct field_of_this_result is_a_field_of_this;
-  struct symbol *sym;
+  struct block_symbol sym;
 
   sym = lookup_symbol (tmp, expression_context_block, VAR_DOMAIN,
                       &is_a_field_of_this);
-  if (sym && SYMBOL_CLASS (sym) != LOC_TYPEDEF)
+  if (sym.symbol && SYMBOL_CLASS (sym.symbol) != LOC_TYPEDEF)
     {
-      if (symbol_read_needs_frame (sym))
+      if (symbol_read_needs_frame (sym.symbol))
        {
          if (innermost_block == 0 ||
-             contained_in (block_found, innermost_block))
-           innermost_block = block_found;
+             contained_in (sym.block, innermost_block))
+           innermost_block = sym.block;
        }
 
       write_exp_elt_opcode (par_state, OP_VAR_VALUE);
-      /* We want to use the selected frame, not another more inner frame
-        which happens to be in the same block.  */
-      write_exp_elt_block (par_state, NULL);
-      write_exp_elt_sym (par_state, sym);
+      write_exp_elt_block (par_state, sym.block);
+      write_exp_elt_sym (par_state, sym.symbol);
       write_exp_elt_opcode (par_state, OP_VAR_VALUE);
       return 1;
     }
@@ -1297,8 +1239,8 @@ push_variable (struct parser_state *par_state, struct stoken name)
       /* it hangs off of `this'.  Must not inadvertently convert from a
         method call to data ref.  */
       if (innermost_block == 0 || 
-         contained_in (block_found, innermost_block))
-       innermost_block = block_found;
+         contained_in (sym.block, innermost_block))
+       innermost_block = sym.block;
       write_exp_elt_opcode (par_state, OP_THIS);
       write_exp_elt_opcode (par_state, OP_THIS);
       write_exp_elt_opcode (par_state, STRUCTOP_PTR);
@@ -1462,21 +1404,21 @@ static struct expression *
 copy_exp (struct expression *expr, int endpos)
 {
   int len = length_of_subexp (expr, endpos);
-  struct expression *new
-    = (struct expression *) malloc (sizeof (*new) + EXP_ELEM_TO_BYTES (len));
+  struct expression *newobj
+    = (struct expression *) malloc (sizeof (*newobj) + EXP_ELEM_TO_BYTES (len));
 
-  new->nelts = len;
-  memcpy (new->elts, expr->elts + endpos - len, EXP_ELEM_TO_BYTES (len));
-  new->language_defn = 0;
+  newobj->nelts = len;
+  memcpy (newobj->elts, expr->elts + endpos - len, EXP_ELEM_TO_BYTES (len));
+  newobj->language_defn = 0;
 
-  return new;
+  return newobj;
 }
 
 /* Insert the expression NEW into the current expression (expout) at POS.  */
 static void
-insert_exp (struct parser_state *par_state, int pos, struct expression *new)
+insert_exp (struct parser_state *par_state, int pos, struct expression *newobj)
 {
-  int newlen = new->nelts;
+  int newlen = newobj->nelts;
   int i;
 
   /* Grow expout if necessary.  In this function's only use at present,
@@ -1486,7 +1428,7 @@ insert_exp (struct parser_state *par_state, int pos, struct expression *new)
   for (i = par_state->expout_ptr - 1; i >= pos; i--)
     par_state->expout->elts[i + newlen] = par_state->expout->elts[i];
   
-  memcpy (par_state->expout->elts + pos, new->elts,
+  memcpy (par_state->expout->elts + pos, newobj->elts,
          EXP_ELEM_TO_BYTES (newlen));
   par_state->expout_ptr += newlen;
 }
This page took 0.02777 seconds and 4 git commands to generate.