diff options
Diffstat (limited to 'gdb/p-exp.y')
-rw-r--r-- | gdb/p-exp.y | 92 |
1 files changed, 52 insertions, 40 deletions
diff --git a/gdb/p-exp.y b/gdb/p-exp.y index 56e163faf65..21c3dbb1833 100644 --- a/gdb/p-exp.y +++ b/gdb/p-exp.y @@ -41,7 +41,7 @@ - there are some problems with boolean types. - Pascal type hexadecimal constants are not supported because they conflict with the internal variables format. - Probably also lots of other problems, less well defined PM */ + Probably also lots of other problems, less well defined PM. */ %{ #include "defs.h" @@ -54,7 +54,7 @@ #include "p-lang.h" #include "bfd.h" /* Required by objfiles.h. */ #include "symfile.h" /* Required by objfiles.h. */ -#include "objfiles.h" /* For have_full_symbols and have_partial_symbols */ +#include "objfiles.h" /* For have_full_symbols and have_partial_symbols. */ #include "block.h" #define parse_type builtin_type (parse_gdbarch) @@ -64,7 +64,7 @@ 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. */ + generators need to be fixed instead of adding those names to this list. */ #define yymaxdepth pascal_maxdepth #define yyparse pascal_parse @@ -184,7 +184,7 @@ static int search_field; %token <sval> STRING %token <sval> FIELDNAME -%token <ssym> NAME /* BLOCKNAME defined below to give it higher precedence. */ +%token <ssym> NAME /* BLOCKNAME defined below to give it higher precedence. */ %token <tsym> TYPENAME %type <sval> name %type <ssym> name_not_typename @@ -299,7 +299,7 @@ exp : exp '.' { search_field = 1; } current_type, $4.ptr, 0); }; } ; exp : exp '[' - /* We need to save the current_type value */ + /* We need to save the current_type value. */ { char *arrayname; int arrayfieldindex; arrayfieldindex = is_pascal_string_type ( @@ -492,11 +492,13 @@ exp : INT exp : NAME_OR_INT { YYSTYPE val; - parse_number ($1.stoken.ptr, $1.stoken.length, 0, &val); + parse_number ($1.stoken.ptr, + $1.stoken.length, 0, &val); write_exp_elt_opcode (OP_LONG); write_exp_elt_type (val.typed_val_int.type); current_type = val.typed_val_int.type; - write_exp_elt_longcst ((LONGEST)val.typed_val_int.val); + write_exp_elt_longcst ((LONGEST) + val.typed_val_int.val); write_exp_elt_opcode (OP_LONG); } ; @@ -514,7 +516,7 @@ exp : variable ; exp : VARIABLE - /* Already written by write_dollar_variable. */ + /* Already written by write_dollar_variable. */ ; exp : SIZEOF '(' type ')' %prec UNARY @@ -533,7 +535,7 @@ exp : STRING an explicit null byte added at the end. Thus the array upper bound is the string length. There is no such thing in C as a completely empty - string. */ + string. */ char *sp = $1.ptr; int count = $1.length; while (count-- > 0) { @@ -559,7 +561,7 @@ exp : THIS struct type * this_type; write_exp_elt_opcode (OP_THIS); write_exp_elt_opcode (OP_THIS); - /* we need type of this */ + /* We need type of this. */ this_val = value_of_this (0); if (this_val) this_type = value_type (this_val); @@ -589,7 +591,8 @@ block : BLOCKNAME struct symtab *tem = lookup_symtab (copy_name ($1.stoken)); if (tem) - $$ = BLOCKVECTOR_BLOCK (BLOCKVECTOR (tem), STATIC_BLOCK); + $$ = BLOCKVECTOR_BLOCK (BLOCKVECTOR (tem), + STATIC_BLOCK); else error ("No file or function \"%s\".", copy_name ($1.stoken)); @@ -659,10 +662,13 @@ variable: qualified_name msymbol = lookup_minimal_symbol (name, NULL, NULL); if (msymbol != NULL) write_exp_msymbol (msymbol); - else if (!have_full_symbols () && !have_partial_symbols ()) - error ("No symbol table is loaded. Use the \"file\" command."); + else if (!have_full_symbols () + && !have_partial_symbols ()) + error ("No symbol table is loaded. " + "Use the \"file\" command."); else - error ("No symbol \"%s\" in current context.", name); + error ("No symbol \"%s\" in current context.", + name); } ; @@ -703,7 +709,7 @@ variable: name_not_typename write_exp_elt_opcode (STRUCTOP_PTR); write_exp_string ($1.stoken); write_exp_elt_opcode (STRUCTOP_PTR); - /* we need type of this */ + /* We need type of this. */ this_val = value_of_this (0); if (this_val) this_type = value_type (this_val); @@ -725,8 +731,10 @@ variable: name_not_typename lookup_minimal_symbol (arg, NULL, NULL); if (msymbol != NULL) write_exp_msymbol (msymbol); - else if (!have_full_symbols () && !have_partial_symbols ()) - error ("No symbol table is loaded. Use the \"file\" command."); + else if (!have_full_symbols () + && !have_partial_symbols ()) + error ("No symbol table is loaded. " + "Use the \"file\" command."); else error ("No symbol \"%s\" in current context.", copy_name ($1.stoken)); @@ -823,7 +831,7 @@ parse_number (char *p, int len, int parsed_float, YYSTYPE *putithere) return FLOAT; } - /* Handle base-switching prefixes 0x, 0t, 0d, 0 */ + /* Handle base-switching prefixes 0x, 0t, 0d, 0. */ if (p[0] == '0') switch (p[1]) { @@ -889,13 +897,13 @@ parse_number (char *p, int len, int parsed_float, YYSTYPE *putithere) return ERROR; /* Char not a digit */ } if (i >= base) - return ERROR; /* Invalid digit in this base */ + return ERROR; /* Invalid digit in this base. */ /* Portably test for overflow (only works for nonzero values, so make a second check for zero). FIXME: Can't we just make n and prevn unsigned and avoid this? */ if (c != 'l' && c != 'u' && (prevn >= n) && n != 0) - unsigned_p = 1; /* Try something unsigned */ + unsigned_p = 1; /* Try something unsigned. */ /* Portably test for unsigned overflow. FIXME: This check is wrong; for example it doesn't find overflow @@ -959,7 +967,7 @@ parse_number (char *p, int len, int parsed_float, YYSTYPE *putithere) putithere->typed_val_int.val = n; /* If the high bit of the worked out type is set then this number - has to be unsigned. */ + has to be unsigned. */ if (unsigned_p || (n & high_bit)) { @@ -1034,8 +1042,8 @@ static const struct token tokentab2[] = {":=", ASSIGN, BINOP_END}, {"::", COLONCOLON, BINOP_END} }; -/* Allocate uppercased var */ -/* make an uppercased copy of tokstart */ +/* Allocate uppercased var: */ +/* make an uppercased copy of tokstart. */ static char * uptok (tokstart, namelen) char *tokstart; int namelen; @@ -1079,7 +1087,8 @@ yylex () for (i = 0; i < sizeof (tokentab3) / sizeof (tokentab3[0]); i++) if (strncasecmp (tokstart, tokentab3[i].operator, 3) == 0 && (!isalpha (tokentab3[i].operator[0]) || explen == 3 - || (!isalpha (tokstart[3]) && !isdigit (tokstart[3]) && tokstart[3] != '_'))) + || (!isalpha (tokstart[3]) + && !isdigit (tokstart[3]) && tokstart[3] != '_'))) { lexptr += 3; yylval.opcode = tokentab3[i].opcode; @@ -1091,7 +1100,8 @@ yylex () for (i = 0; i < sizeof (tokentab2) / sizeof (tokentab2[0]); i++) if (strncasecmp (tokstart, tokentab2[i].operator, 2) == 0 && (!isalpha (tokentab2[i].operator[0]) || explen == 2 - || (!isalpha (tokstart[2]) && !isdigit (tokstart[2]) && tokstart[2] != '_'))) + || (!isalpha (tokstart[2]) + && !isdigit (tokstart[2]) && tokstart[2] != '_'))) { lexptr += 2; yylval.opcode = tokentab2[i].opcode; @@ -1112,7 +1122,7 @@ yylex () case '\'': /* We either have a character constant ('0' or '\177' for example) or we have a quoted symbol reference ('foo(int,int)' in object pascal - for example). */ + for example). */ lexptr++; c = *lexptr++; if (c == '\\') @@ -1162,7 +1172,7 @@ yylex () case '.': /* Might be a floating point number. */ if (lexptr[1] < '0' || lexptr[1] > '9') - goto symbol; /* Nope, must be a symbol. */ + goto symbol; /* Nope, must be a symbol. */ /* FALL THRU into number case. */ case '0': @@ -1186,7 +1196,8 @@ yylex () p += 2; hex = 1; } - else if (c == '0' && (p[1]=='t' || p[1]=='T' || p[1]=='d' || p[1]=='D')) + else if (c == '0' && (p[1]=='t' || p[1]=='T' + || p[1]=='d' || p[1]=='D')) { p += 2; hex = 0; @@ -1215,7 +1226,8 @@ yylex () && (*p < 'A' || *p > 'Z'))) break; } - toktype = parse_number (tokstart, p - tokstart, got_dot|got_e, &yylval); + toktype = parse_number (tokstart, + p - tokstart, got_dot | got_e, &yylval); if (toktype == ERROR) { char *err_copy = (char *) alloca (p - tokstart + 1); @@ -1260,14 +1272,14 @@ yylex () the buffer contains no embedded nulls. Gdb does not depend upon the buffer being null byte terminated, it uses the length string instead. This allows gdb to handle C strings (as well - as strings in other languages) with embedded null bytes */ + as strings in other languages) with embedded null bytes. */ tokptr = ++tokstart; tempbufindex = 0; do { /* Grow the static temp buffer if necessary, including allocating - the first one on demand. */ + the first one on demand. */ if (tempbufindex + 1 >= tempbufsize) { tempbuf = (char *) realloc (tempbuf, tempbufsize += 64); @@ -1277,7 +1289,7 @@ yylex () { case '\0': case '"': - /* Do nothing, loop will terminate. */ + /* Do nothing, loop will terminate. */ break; case '\\': tokptr++; @@ -1297,7 +1309,7 @@ yylex () { error ("Unterminated string in expression."); } - tempbuf[tempbufindex] = '\0'; /* See note above */ + tempbuf[tempbufindex] = '\0'; /* See note above. */ yylval.sval.ptr = tempbuf; yylval.sval.length = tempbufindex; lexptr = tokptr; @@ -1337,7 +1349,7 @@ yylex () break; } - /* do NOT uppercase internals because of registers !!! */ + /* do NOT uppercase internals because of registers !!! */ c = tokstart[++namelen]; } @@ -1397,8 +1409,8 @@ yylex () } if (strcmp (uptokstart, "SELF") == 0) { - /* here we search for 'this' like - inserted in FPC stabs debug info */ + /* Here we search for 'this' like + inserted in FPC stabs debug info. */ static const char this_name[] = "this"; if (lookup_symbol (this_name, expression_context_block, @@ -1441,7 +1453,7 @@ yylex () if (search_field && current_type) - is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL); + is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL); if (is_a_field) sym = NULL; else @@ -1456,7 +1468,7 @@ yylex () tmp[i] -= ('a'-'A'); } if (search_field && current_type) - is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL); + is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL); if (is_a_field) sym = NULL; else @@ -1484,7 +1496,7 @@ yylex () tmp[i] -= ('A'-'a'); } if (search_field && current_type) - is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL); + is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL); if (is_a_field) sym = NULL; else @@ -1642,7 +1654,7 @@ yylex () } free(uptokstart); - /* Any other kind of symbol */ + /* Any other kind of symbol. */ yylval.ssym.sym = sym; yylval.ssym.is_a_field_of_this = is_a_field_of_this; return NAME; |