aboutsummaryrefslogtreecommitdiff
path: root/gdb/p-exp.y
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/p-exp.y')
-rw-r--r--gdb/p-exp.y91
1 files changed, 46 insertions, 45 deletions
diff --git a/gdb/p-exp.y b/gdb/p-exp.y
index 183f001..2b7cb2a 100644
--- a/gdb/p-exp.y
+++ b/gdb/p-exp.y
@@ -73,12 +73,12 @@
#define yylval pascal_lval
#define yychar pascal_char
#define yydebug pascal_debug
-#define yypact pascal_pact
-#define yyr1 pascal_r1
-#define yyr2 pascal_r2
-#define yydef pascal_def
-#define yychk pascal_chk
-#define yypgo pascal_pgo
+#define yypact pascal_pact
+#define yyr1 pascal_r1
+#define yyr2 pascal_r2
+#define yydef pascal_def
+#define yychk pascal_chk
+#define yypgo pascal_pgo
#define yyact pascal_act
#define yyexca pascal_exca
#define yyerrflag pascal_errflag
@@ -181,7 +181,7 @@ static int search_field;
Contexts where this distinction is not important can use the
nonterminal "name", which matches either NAME or TYPENAME. */
-%token <sval> STRING
+%token <sval> STRING
%token <sval> FIELDNAME
%token <voidval> COMPLETE
%token <ssym> NAME /* BLOCKNAME defined below to give it higher precedence. */
@@ -260,12 +260,12 @@ exp1 : exp
/* Expressions, not including the comma operator. */
exp : exp '^' %prec UNARY
{ write_exp_elt_opcode (UNOP_IND);
- if (current_type)
+ if (current_type)
current_type = TYPE_TARGET_TYPE (current_type); }
;
exp : '@' exp %prec UNARY
- { write_exp_elt_opcode (UNOP_ADDR);
+ { write_exp_elt_opcode (UNOP_ADDR);
if (current_type)
current_type = TYPE_POINTER_TYPE (current_type); }
;
@@ -288,16 +288,16 @@ exp : DECREMENT '(' exp ')' %prec UNARY
field_exp : exp '.' %prec UNARY
- { search_field = 1; }
+ { search_field = 1; }
;
-exp : field_exp FIELDNAME
+exp : field_exp FIELDNAME
{ write_exp_elt_opcode (STRUCTOP_STRUCT);
- write_exp_string ($2);
+ write_exp_string ($2);
write_exp_elt_opcode (STRUCTOP_STRUCT);
- search_field = 0;
+ search_field = 0;
if (current_type)
- {
+ {
while (TYPE_CODE (current_type)
== TYPE_CODE_PTR)
current_type =
@@ -306,16 +306,17 @@ exp : field_exp FIELDNAME
current_type, $2.ptr, 0);
}
}
- ;
+ ;
+
exp : field_exp name
{ mark_struct_expression ();
write_exp_elt_opcode (STRUCTOP_STRUCT);
write_exp_string ($2);
write_exp_elt_opcode (STRUCTOP_STRUCT);
- search_field = 0;
+ search_field = 0;
if (current_type)
- {
+ {
while (TYPE_CODE (current_type)
== TYPE_CODE_PTR)
current_type =
@@ -338,21 +339,21 @@ exp : field_exp COMPLETE
exp : exp '['
/* We need to save the current_type value. */
- { char *arrayname;
+ { char *arrayname;
int arrayfieldindex;
arrayfieldindex = is_pascal_string_type (
current_type, NULL, NULL,
- NULL, NULL, &arrayname);
- if (arrayfieldindex)
+ NULL, NULL, &arrayname);
+ if (arrayfieldindex)
{
struct stoken stringsval;
stringsval.ptr = alloca (strlen (arrayname) + 1);
stringsval.length = strlen (arrayname);
strcpy (stringsval.ptr, arrayname);
current_type = TYPE_FIELD_TYPE (current_type,
- arrayfieldindex - 1);
+ arrayfieldindex - 1);
write_exp_elt_opcode (STRUCTOP_STRUCT);
- write_exp_string (stringsval);
+ write_exp_string (stringsval);
write_exp_elt_opcode (STRUCTOP_STRUCT);
}
push_current_type (); }
@@ -371,7 +372,7 @@ exp : exp '('
arglist ')' %prec ARROW
{ write_exp_elt_opcode (OP_FUNCALL);
write_exp_elt_longcst ((LONGEST) end_arglist ());
- write_exp_elt_opcode (OP_FUNCALL);
+ write_exp_elt_opcode (OP_FUNCALL);
pop_current_type ();
if (current_type)
current_type = TYPE_TARGET_TYPE (current_type);
@@ -396,7 +397,7 @@ exp : type '(' exp ')' %prec UNARY
}
write_exp_elt_opcode (UNOP_CAST);
write_exp_elt_type ($1);
- write_exp_elt_opcode (UNOP_CAST);
+ write_exp_elt_opcode (UNOP_CAST);
current_type = $1; }
;
@@ -413,9 +414,9 @@ exp : exp '*' exp
exp : exp '/' {
if (current_type && is_integral_type (current_type))
leftdiv_is_integer = 1;
- }
+ }
exp
- {
+ {
if (leftdiv_is_integer && current_type
&& is_integral_type (current_type))
{
@@ -426,7 +427,7 @@ exp : exp '/' {
leftdiv_is_integer = 0;
}
- write_exp_elt_opcode (BINOP_DIV);
+ write_exp_elt_opcode (BINOP_DIV);
}
;
@@ -455,37 +456,37 @@ exp : exp RSH exp
;
exp : exp '=' exp
- { write_exp_elt_opcode (BINOP_EQUAL);
+ { write_exp_elt_opcode (BINOP_EQUAL);
current_type = parse_type->builtin_bool;
}
;
exp : exp NOTEQUAL exp
- { write_exp_elt_opcode (BINOP_NOTEQUAL);
+ { write_exp_elt_opcode (BINOP_NOTEQUAL);
current_type = parse_type->builtin_bool;
}
;
exp : exp LEQ exp
- { write_exp_elt_opcode (BINOP_LEQ);
+ { write_exp_elt_opcode (BINOP_LEQ);
current_type = parse_type->builtin_bool;
}
;
exp : exp GEQ exp
- { write_exp_elt_opcode (BINOP_GEQ);
+ { write_exp_elt_opcode (BINOP_GEQ);
current_type = parse_type->builtin_bool;
}
;
exp : exp '<' exp
- { write_exp_elt_opcode (BINOP_LESS);
+ { write_exp_elt_opcode (BINOP_LESS);
current_type = parse_type->builtin_bool;
}
;
exp : exp '>' exp
- { write_exp_elt_opcode (BINOP_GTR);
+ { write_exp_elt_opcode (BINOP_GTR);
current_type = parse_type->builtin_bool;
}
;
@@ -578,7 +579,7 @@ exp : SIZEOF '(' type ')' %prec UNARY
exp : SIZEOF '(' exp ')' %prec UNARY
{ write_exp_elt_opcode (UNOP_SIZEOF); }
-
+
exp : STRING
{ /* C strings are converted into array constants with
an explicit null byte added at the end. Thus
@@ -605,13 +606,13 @@ exp : STRING
/* Object pascal */
exp : THIS
- {
+ {
struct value * this_val;
struct type * this_type;
write_exp_elt_opcode (OP_THIS);
- write_exp_elt_opcode (OP_THIS);
+ write_exp_elt_opcode (OP_THIS);
/* We need type of this. */
- this_val = value_of_this (0);
+ this_val = value_of_this (0);
if (this_val)
this_type = value_type (this_val);
else
@@ -624,7 +625,7 @@ exp : THIS
write_exp_elt_opcode (UNOP_IND);
}
}
-
+
current_type = this_type;
}
;
@@ -759,7 +760,7 @@ variable: name_not_typename
write_exp_string ($1.stoken);
write_exp_elt_opcode (STRUCTOP_PTR);
/* We need type of this. */
- this_val = value_of_this (0);
+ this_val = value_of_this (0);
if (this_val)
this_type = value_type (this_val);
else
@@ -769,7 +770,7 @@ variable: name_not_typename
this_type,
copy_name ($1.stoken), 0);
else
- current_type = NULL;
+ current_type = NULL;
}
else
{
@@ -958,7 +959,7 @@ parse_number (char *p, int len, int parsed_float, YYSTYPE *putithere)
FIXME: This check is wrong; for example it doesn't find overflow
on 0x123456789 when LONGEST is 32 bits. */
if (c != 'l' && c != 'u' && n != 0)
- {
+ {
if ((unsigned_p && (ULONGEST) prevn >= (ULONGEST) n))
error ("Numeric constant too large.");
}
@@ -1047,7 +1048,7 @@ push_current_type (void)
tpnew->next = tp_top;
tpnew->stored = current_type;
current_type = NULL;
- tp_top = tpnew;
+ tp_top = tpnew;
}
static void
@@ -1130,7 +1131,7 @@ yylex (void)
static char *tempbuf;
static int tempbufsize;
int saw_structop = last_was_structop;
-
+
last_was_structop = 0;
retry:
@@ -1591,10 +1592,10 @@ yylex (void)
tempbuf = (char *) realloc (tempbuf, namelen + 1);
strncpy (tempbuf, tokstart, namelen); tempbuf [namelen] = 0;
yylval.sval.ptr = tempbuf;
- yylval.sval.length = namelen;
+ yylval.sval.length = namelen;
free (uptokstart);
return FIELDNAME;
- }
+ }
/* Call lookup_symtab, not lookup_partial_symtab, in case there are
no psymtabs (coff, xcoff, or some future change to blow away the
psymtabs once once symbols are read). */