aboutsummaryrefslogtreecommitdiff
path: root/gdb/ch-exp.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2002-12-16 20:39:23 +0000
committerAndrew Cagney <cagney@redhat.com>2002-12-16 20:39:23 +0000
commit1a14e23479eb187b1837310243d1a3ffe7b95e0c (patch)
treeabd21a673167499137de7ee3a335eca5b159f120 /gdb/ch-exp.c
parentda81390ba627de5fee7615d00f2116253c65a5a4 (diff)
downloadgdb-1a14e23479eb187b1837310243d1a3ffe7b95e0c.zip
gdb-1a14e23479eb187b1837310243d1a3ffe7b95e0c.tar.gz
gdb-1a14e23479eb187b1837310243d1a3ffe7b95e0c.tar.bz2
2002-12-16 Andrew Cagney <ac131313@redhat.com>
* config/arc/arc.mt, config/arc/tm-arc.h: Delete. * config/d30v/d30v.mt, config/d30v/tm-d30v.h: Delete. * config/fr30/fr30.mt, config/fr30/tm-fr30.h: Delete. * config/i386/i386aix.mh, config/i386/i386aix.mt: Delete. * config/i386/i386m3.mh, config/i386/i386m3.mt: Delete. * config/i386/i386mach.mh, config/i386/i386os9k.mt: Delete. * config/i386/nm-i386aix.h, config/i386/nm-i386mach.h: Delete. * config/i386/nm-m3.h, config/i386/tm-i386aix.h: Delete. * config/i386/tm-i386m3.h, config/i386/tm-i386mk.h: Delete. * config/i386/xm-i386aix.h, config/i386/xm-i386m3.h: Delete. * config/i386/xm-i386mach.h, config/i386/xm-i386mk.h: Delete. * config/i960/mon960.mt, config/i960/nindy960.mt: Delete. * config/i960/tm-i960.h, config/i960/tm-mon960.h: Delete. * config/i960/tm-nindy960.h, config/i960/tm-vx960.h: Delete. * config/i960/vxworks960.mt, config/m68k/apollo68b.mh: Delete. * config/m68k/apollo68b.mt, config/m68k/apollo68v.mh: Delete. * config/m68k/hp300bsd.mh, config/m68k/hp300bsd.mt: Delete. * config/m68k/hp300hpux.mh, config/m68k/hp300hpux.mt: Delete. * config/m88k/delta88.mh, config/m88k/delta88.mt: Delete. * config/m88k/delta88v4.mh, config/m88k/delta88v4.mt: Delete. * config/m88k/m88k.mh, config/m88k/m88k.mt: Delete. * config/m88k/nm-delta88v4.h, config/m88k/nm-m88k.h: Delete. * config/m88k/tm-delta88.h, config/m88k/tm-delta88v4.h: Delete. * config/m88k/tm-m88k.h, config/m88k/xm-delta88.h: Delete. * config/m88k/xm-dgux.h: Delete. * fr30-tdep.c, i386aix-nat.c, i386m3-nat.c: Delete. * i386mach-nat.c, i960-tdep.c, m88k-nat.c: Delete. * os9kread.c, remote-bug.c, remote-nindy.c: Delete. * remote-nrom.c, remote-os9k.c, remote-vx960.c: Delete. * d30v-tdep.c, arc-tdep.c, cxux-nat.c, dst.h, dstread.c: Delete. * ch-exp.c, ch-lang.c, ch-lang.h, ch-typeprint.c: Delete. * ch-valprint.c: Delete.
Diffstat (limited to 'gdb/ch-exp.c')
-rw-r--r--gdb/ch-exp.c2233
1 files changed, 0 insertions, 2233 deletions
diff --git a/gdb/ch-exp.c b/gdb/ch-exp.c
deleted file mode 100644
index d588ec2..0000000
--- a/gdb/ch-exp.c
+++ /dev/null
@@ -1,2233 +0,0 @@
-// OBSOLETE /* Parser for GNU CHILL (CCITT High-Level Language) -*- C -*-
-// OBSOLETE Copyright 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001
-// OBSOLETE Free Software Foundation, Inc.
-// OBSOLETE
-// OBSOLETE This file is part of GDB.
-// OBSOLETE
-// OBSOLETE This program is free software; you can redistribute it and/or modify
-// OBSOLETE it under the terms of the GNU General Public License as published by
-// OBSOLETE the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE (at your option) any later version.
-// OBSOLETE
-// OBSOLETE This program is distributed in the hope that it will be useful,
-// OBSOLETE but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// OBSOLETE GNU General Public License for more details.
-// OBSOLETE
-// OBSOLETE You should have received a copy of the GNU General Public License
-// OBSOLETE along with this program; if not, write to the Free Software
-// OBSOLETE Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE Boston, MA 02111-1307, USA. */
-// OBSOLETE
-// OBSOLETE /* Parse a Chill expression from text in a string,
-// OBSOLETE and return the result as a struct expression pointer.
-// OBSOLETE That structure contains arithmetic operations in reverse polish,
-// OBSOLETE with constants represented by operations that are followed by special data.
-// OBSOLETE See expression.h for the details of the format.
-// OBSOLETE What is important here is that it can be built up sequentially
-// OBSOLETE during the process of parsing; the lower levels of the tree always
-// OBSOLETE come first in the result.
-// OBSOLETE
-// OBSOLETE Note that the language accepted by this parser is more liberal
-// OBSOLETE than the one accepted by an actual Chill compiler. For example, the
-// OBSOLETE language rule that a simple name string can not be one of the reserved
-// OBSOLETE simple name strings is not enforced (e.g "case" is not treated as a
-// OBSOLETE reserved name). Another example is that Chill is a strongly typed
-// OBSOLETE language, and certain expressions that violate the type constraints
-// OBSOLETE may still be evaluated if gdb can do so in a meaningful manner, while
-// OBSOLETE such expressions would be rejected by the compiler. The reason for
-// OBSOLETE this more liberal behavior is the philosophy that the debugger
-// OBSOLETE is intended to be a tool that is used by the programmer when things
-// OBSOLETE go wrong, and as such, it should provide as few artificial barriers
-// OBSOLETE to it's use as possible. If it can do something meaningful, even
-// OBSOLETE something that violates language contraints that are enforced by the
-// OBSOLETE compiler, it should do so without complaint.
-// OBSOLETE
-// OBSOLETE */
-// OBSOLETE
-// OBSOLETE #include "defs.h"
-// OBSOLETE #include "gdb_string.h"
-// OBSOLETE #include <ctype.h>
-// OBSOLETE #include "expression.h"
-// OBSOLETE #include "language.h"
-// OBSOLETE #include "value.h"
-// OBSOLETE #include "parser-defs.h"
-// OBSOLETE #include "ch-lang.h"
-// OBSOLETE #include "bfd.h" /* Required by objfiles.h. */
-// OBSOLETE #include "symfile.h" /* Required by objfiles.h. */
-// OBSOLETE #include "objfiles.h" /* For have_full_symbols and have_partial_symbols */
-// OBSOLETE
-// OBSOLETE #ifdef __GNUC__
-// OBSOLETE #define INLINE __inline__
-// OBSOLETE #endif
-// OBSOLETE
-// OBSOLETE typedef union
-// OBSOLETE
-// OBSOLETE {
-// OBSOLETE LONGEST lval;
-// OBSOLETE ULONGEST ulval;
-// OBSOLETE struct
-// OBSOLETE {
-// OBSOLETE LONGEST val;
-// OBSOLETE struct type *type;
-// OBSOLETE }
-// OBSOLETE typed_val;
-// OBSOLETE double dval;
-// OBSOLETE struct symbol *sym;
-// OBSOLETE struct type *tval;
-// OBSOLETE struct stoken sval;
-// OBSOLETE struct ttype tsym;
-// OBSOLETE struct symtoken ssym;
-// OBSOLETE }
-// OBSOLETE YYSTYPE;
-// OBSOLETE
-// OBSOLETE enum ch_terminal
-// OBSOLETE {
-// OBSOLETE END_TOKEN = 0,
-// OBSOLETE /* '\001' ... '\xff' come first. */
-// OBSOLETE OPEN_PAREN = '(',
-// OBSOLETE TOKEN_NOT_READ = 999,
-// OBSOLETE INTEGER_LITERAL,
-// OBSOLETE BOOLEAN_LITERAL,
-// OBSOLETE CHARACTER_LITERAL,
-// OBSOLETE FLOAT_LITERAL,
-// OBSOLETE GENERAL_PROCEDURE_NAME,
-// OBSOLETE LOCATION_NAME,
-// OBSOLETE EMPTINESS_LITERAL,
-// OBSOLETE CHARACTER_STRING_LITERAL,
-// OBSOLETE BIT_STRING_LITERAL,
-// OBSOLETE TYPENAME,
-// OBSOLETE DOT_FIELD_NAME, /* '.' followed by <field name> */
-// OBSOLETE CASE,
-// OBSOLETE OF,
-// OBSOLETE ESAC,
-// OBSOLETE LOGIOR,
-// OBSOLETE ORIF,
-// OBSOLETE LOGXOR,
-// OBSOLETE LOGAND,
-// OBSOLETE ANDIF,
-// OBSOLETE NOTEQUAL,
-// OBSOLETE GEQ,
-// OBSOLETE LEQ,
-// OBSOLETE IN,
-// OBSOLETE SLASH_SLASH,
-// OBSOLETE MOD,
-// OBSOLETE REM,
-// OBSOLETE NOT,
-// OBSOLETE POINTER,
-// OBSOLETE RECEIVE,
-// OBSOLETE UP,
-// OBSOLETE IF,
-// OBSOLETE THEN,
-// OBSOLETE ELSE,
-// OBSOLETE FI,
-// OBSOLETE ELSIF,
-// OBSOLETE ILLEGAL_TOKEN,
-// OBSOLETE NUM,
-// OBSOLETE PRED,
-// OBSOLETE SUCC,
-// OBSOLETE ABS,
-// OBSOLETE CARD,
-// OBSOLETE MAX_TOKEN,
-// OBSOLETE MIN_TOKEN,
-// OBSOLETE ADDR_TOKEN,
-// OBSOLETE SIZE,
-// OBSOLETE UPPER,
-// OBSOLETE LOWER,
-// OBSOLETE LENGTH,
-// OBSOLETE ARRAY,
-// OBSOLETE GDB_VARIABLE,
-// OBSOLETE GDB_ASSIGNMENT
-// OBSOLETE };
-// OBSOLETE
-// OBSOLETE /* Forward declarations. */
-// OBSOLETE
-// OBSOLETE static void write_lower_upper_value (enum exp_opcode, struct type *);
-// OBSOLETE static enum ch_terminal match_bitstring_literal (void);
-// OBSOLETE static enum ch_terminal match_integer_literal (void);
-// OBSOLETE static enum ch_terminal match_character_literal (void);
-// OBSOLETE static enum ch_terminal match_string_literal (void);
-// OBSOLETE static enum ch_terminal match_float_literal (void);
-// OBSOLETE static int decode_integer_literal (LONGEST *, char **);
-// OBSOLETE static int decode_integer_value (int, char **, LONGEST *);
-// OBSOLETE static char *match_simple_name_string (void);
-// OBSOLETE static void growbuf_by_size (int);
-// OBSOLETE static void parse_case_label (void);
-// OBSOLETE static void parse_untyped_expr (void);
-// OBSOLETE static void parse_if_expression (void);
-// OBSOLETE static void parse_if_expression_body (void);
-// OBSOLETE static void parse_else_alternative (void);
-// OBSOLETE static void parse_then_alternative (void);
-// OBSOLETE static void parse_expr (void);
-// OBSOLETE static void parse_operand0 (void);
-// OBSOLETE static void parse_operand1 (void);
-// OBSOLETE static void parse_operand2 (void);
-// OBSOLETE static void parse_operand3 (void);
-// OBSOLETE static void parse_operand4 (void);
-// OBSOLETE static void parse_operand5 (void);
-// OBSOLETE static void parse_operand6 (void);
-// OBSOLETE static void parse_primval (void);
-// OBSOLETE static void parse_tuple (struct type *);
-// OBSOLETE static void parse_opt_element_list (struct type *);
-// OBSOLETE static void parse_tuple_element (struct type *);
-// OBSOLETE static void parse_named_record_element (void);
-// OBSOLETE static void parse_call (void);
-// OBSOLETE static struct type *parse_mode_or_normal_call (void);
-// OBSOLETE #if 0
-// OBSOLETE static struct type *parse_mode_call (void);
-// OBSOLETE #endif
-// OBSOLETE static void parse_unary_call (void);
-// OBSOLETE static int parse_opt_untyped_expr (void);
-// OBSOLETE static int expect (enum ch_terminal, char *);
-// OBSOLETE static enum ch_terminal ch_lex (void);
-// OBSOLETE INLINE static enum ch_terminal PEEK_TOKEN (void);
-// OBSOLETE static enum ch_terminal peek_token_ (int);
-// OBSOLETE static void forward_token_ (void);
-// OBSOLETE static void require (enum ch_terminal);
-// OBSOLETE static int check_token (enum ch_terminal);
-// OBSOLETE
-// OBSOLETE #define MAX_LOOK_AHEAD 2
-// OBSOLETE static enum ch_terminal terminal_buffer[MAX_LOOK_AHEAD + 1] =
-// OBSOLETE {
-// OBSOLETE TOKEN_NOT_READ, TOKEN_NOT_READ, TOKEN_NOT_READ};
-// OBSOLETE static YYSTYPE yylval;
-// OBSOLETE static YYSTYPE val_buffer[MAX_LOOK_AHEAD + 1];
-// OBSOLETE
-// OBSOLETE /*int current_token, lookahead_token; */
-// OBSOLETE
-// OBSOLETE INLINE static enum ch_terminal
-// OBSOLETE PEEK_TOKEN (void)
-// OBSOLETE {
-// OBSOLETE if (terminal_buffer[0] == TOKEN_NOT_READ)
-// OBSOLETE {
-// OBSOLETE terminal_buffer[0] = ch_lex ();
-// OBSOLETE val_buffer[0] = yylval;
-// OBSOLETE }
-// OBSOLETE return terminal_buffer[0];
-// OBSOLETE }
-// OBSOLETE #define PEEK_LVAL() val_buffer[0]
-// OBSOLETE #define PEEK_TOKEN1() peek_token_(1)
-// OBSOLETE #define PEEK_TOKEN2() peek_token_(2)
-// OBSOLETE static enum ch_terminal
-// OBSOLETE peek_token_ (int i)
-// OBSOLETE {
-// OBSOLETE if (i > MAX_LOOK_AHEAD)
-// OBSOLETE internal_error (__FILE__, __LINE__,
-// OBSOLETE "too much lookahead");
-// OBSOLETE if (terminal_buffer[i] == TOKEN_NOT_READ)
-// OBSOLETE {
-// OBSOLETE terminal_buffer[i] = ch_lex ();
-// OBSOLETE val_buffer[i] = yylval;
-// OBSOLETE }
-// OBSOLETE return terminal_buffer[i];
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE #if 0
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE pushback_token (enum ch_terminal code, YYSTYPE node)
-// OBSOLETE {
-// OBSOLETE int i;
-// OBSOLETE if (terminal_buffer[MAX_LOOK_AHEAD] != TOKEN_NOT_READ)
-// OBSOLETE internal_error (__FILE__, __LINE__,
-// OBSOLETE "cannot pushback token");
-// OBSOLETE for (i = MAX_LOOK_AHEAD; i > 0; i--)
-// OBSOLETE {
-// OBSOLETE terminal_buffer[i] = terminal_buffer[i - 1];
-// OBSOLETE val_buffer[i] = val_buffer[i - 1];
-// OBSOLETE }
-// OBSOLETE terminal_buffer[0] = code;
-// OBSOLETE val_buffer[0] = node;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE #endif
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE forward_token_ (void)
-// OBSOLETE {
-// OBSOLETE int i;
-// OBSOLETE for (i = 0; i < MAX_LOOK_AHEAD; i++)
-// OBSOLETE {
-// OBSOLETE terminal_buffer[i] = terminal_buffer[i + 1];
-// OBSOLETE val_buffer[i] = val_buffer[i + 1];
-// OBSOLETE }
-// OBSOLETE terminal_buffer[MAX_LOOK_AHEAD] = TOKEN_NOT_READ;
-// OBSOLETE }
-// OBSOLETE #define FORWARD_TOKEN() forward_token_()
-// OBSOLETE
-// OBSOLETE /* Skip the next token.
-// OBSOLETE if it isn't TOKEN, the parser is broken. */
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE require (enum ch_terminal token)
-// OBSOLETE {
-// OBSOLETE if (PEEK_TOKEN () != token)
-// OBSOLETE {
-// OBSOLETE internal_error (__FILE__, __LINE__,
-// OBSOLETE "expected token %d", (int) token);
-// OBSOLETE }
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static int
-// OBSOLETE check_token (enum ch_terminal token)
-// OBSOLETE {
-// OBSOLETE if (PEEK_TOKEN () != token)
-// OBSOLETE return 0;
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE return 1;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* return 0 if expected token was not found,
-// OBSOLETE else return 1.
-// OBSOLETE */
-// OBSOLETE static int
-// OBSOLETE expect (enum ch_terminal token, char *message)
-// OBSOLETE {
-// OBSOLETE if (PEEK_TOKEN () != token)
-// OBSOLETE {
-// OBSOLETE if (message)
-// OBSOLETE error (message);
-// OBSOLETE else if (token < 256)
-// OBSOLETE error ("syntax error - expected a '%c' here \"%s\"", token, lexptr);
-// OBSOLETE else
-// OBSOLETE error ("syntax error");
-// OBSOLETE return 0;
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE return 1;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE #if 0
-// OBSOLETE /* Parse a name string. If ALLOW_ALL is 1, ALL is allowed as a postfix. */
-// OBSOLETE
-// OBSOLETE static tree
-// OBSOLETE parse_opt_name_string (int allow_all)
-// OBSOLETE {
-// OBSOLETE int token = PEEK_TOKEN ();
-// OBSOLETE tree name;
-// OBSOLETE if (token != NAME)
-// OBSOLETE {
-// OBSOLETE if (token == ALL && allow_all)
-// OBSOLETE {
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE return ALL_POSTFIX;
-// OBSOLETE }
-// OBSOLETE return NULL_TREE;
-// OBSOLETE }
-// OBSOLETE name = PEEK_LVAL ();
-// OBSOLETE for (;;)
-// OBSOLETE {
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE token = PEEK_TOKEN ();
-// OBSOLETE if (token != '!')
-// OBSOLETE return name;
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE token = PEEK_TOKEN ();
-// OBSOLETE if (token == ALL && allow_all)
-// OBSOLETE return get_identifier3 (IDENTIFIER_POINTER (name), "!", "*");
-// OBSOLETE if (token != NAME)
-// OBSOLETE {
-// OBSOLETE if (pass == 1)
-// OBSOLETE error ("'%s!' is not followed by an identifier",
-// OBSOLETE IDENTIFIER_POINTER (name));
-// OBSOLETE return name;
-// OBSOLETE }
-// OBSOLETE name = get_identifier3 (IDENTIFIER_POINTER (name),
-// OBSOLETE "!", IDENTIFIER_POINTER (PEEK_LVAL ()));
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static tree
-// OBSOLETE parse_simple_name_string (void)
-// OBSOLETE {
-// OBSOLETE int token = PEEK_TOKEN ();
-// OBSOLETE tree name;
-// OBSOLETE if (token != NAME)
-// OBSOLETE {
-// OBSOLETE error ("expected a name here");
-// OBSOLETE return error_mark_node;
-// OBSOLETE }
-// OBSOLETE name = PEEK_LVAL ();
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE return name;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static tree
-// OBSOLETE parse_name_string (void)
-// OBSOLETE {
-// OBSOLETE tree name = parse_opt_name_string (0);
-// OBSOLETE if (name)
-// OBSOLETE return name;
-// OBSOLETE if (pass == 1)
-// OBSOLETE error ("expected a name string here");
-// OBSOLETE return error_mark_node;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Matches: <name_string>
-// OBSOLETE Returns if pass 1: the identifier.
-// OBSOLETE Returns if pass 2: a decl or value for identifier. */
-// OBSOLETE
-// OBSOLETE static tree
-// OBSOLETE parse_name (void)
-// OBSOLETE {
-// OBSOLETE tree name = parse_name_string ();
-// OBSOLETE if (pass == 1 || ignoring)
-// OBSOLETE return name;
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE tree decl = lookup_name (name);
-// OBSOLETE if (decl == NULL_TREE)
-// OBSOLETE {
-// OBSOLETE error ("`%s' undeclared", IDENTIFIER_POINTER (name));
-// OBSOLETE return error_mark_node;
-// OBSOLETE }
-// OBSOLETE else if (TREE_CODE (TREE_TYPE (decl)) == ERROR_MARK)
-// OBSOLETE return error_mark_node;
-// OBSOLETE else if (TREE_CODE (decl) == CONST_DECL)
-// OBSOLETE return DECL_INITIAL (decl);
-// OBSOLETE else if (TREE_CODE (TREE_TYPE (decl)) == REFERENCE_TYPE)
-// OBSOLETE return convert_from_reference (decl);
-// OBSOLETE else
-// OBSOLETE return decl;
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE #endif
-// OBSOLETE
-// OBSOLETE #if 0
-// OBSOLETE static void
-// OBSOLETE pushback_paren_expr (tree expr)
-// OBSOLETE {
-// OBSOLETE if (pass == 1 && !ignoring)
-// OBSOLETE expr = build1 (PAREN_EXPR, NULL_TREE, expr);
-// OBSOLETE pushback_token (EXPR, expr);
-// OBSOLETE }
-// OBSOLETE #endif
-// OBSOLETE
-// OBSOLETE /* Matches: <case label> */
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_case_label (void)
-// OBSOLETE {
-// OBSOLETE if (check_token (ELSE))
-// OBSOLETE error ("ELSE in tuples labels not implemented");
-// OBSOLETE /* Does not handle the case of a mode name. FIXME */
-// OBSOLETE parse_expr ();
-// OBSOLETE if (check_token (':'))
-// OBSOLETE {
-// OBSOLETE parse_expr ();
-// OBSOLETE write_exp_elt_opcode (BINOP_RANGE);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static int
-// OBSOLETE parse_opt_untyped_expr (void)
-// OBSOLETE {
-// OBSOLETE switch (PEEK_TOKEN ())
-// OBSOLETE {
-// OBSOLETE case ',':
-// OBSOLETE case ':':
-// OBSOLETE case ')':
-// OBSOLETE return 0;
-// OBSOLETE default:
-// OBSOLETE parse_untyped_expr ();
-// OBSOLETE return 1;
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_unary_call (void)
-// OBSOLETE {
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE expect ('(', NULL);
-// OBSOLETE parse_expr ();
-// OBSOLETE expect (')', NULL);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Parse NAME '(' MODENAME ')'. */
-// OBSOLETE
-// OBSOLETE #if 0
-// OBSOLETE
-// OBSOLETE static struct type *
-// OBSOLETE parse_mode_call (void)
-// OBSOLETE {
-// OBSOLETE struct type *type;
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE expect ('(', NULL);
-// OBSOLETE if (PEEK_TOKEN () != TYPENAME)
-// OBSOLETE error ("expect MODENAME here `%s'", lexptr);
-// OBSOLETE type = PEEK_LVAL ().tsym.type;
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE expect (')', NULL);
-// OBSOLETE return type;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE #endif
-// OBSOLETE
-// OBSOLETE static struct type *
-// OBSOLETE parse_mode_or_normal_call (void)
-// OBSOLETE {
-// OBSOLETE struct type *type;
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE expect ('(', NULL);
-// OBSOLETE if (PEEK_TOKEN () == TYPENAME)
-// OBSOLETE {
-// OBSOLETE type = PEEK_LVAL ().tsym.type;
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE parse_expr ();
-// OBSOLETE type = NULL;
-// OBSOLETE }
-// OBSOLETE expect (')', NULL);
-// OBSOLETE return type;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Parse something that looks like a function call.
-// OBSOLETE Assume we have parsed the function, and are at the '('. */
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_call (void)
-// OBSOLETE {
-// OBSOLETE int arg_count;
-// OBSOLETE require ('(');
-// OBSOLETE /* This is to save the value of arglist_len
-// OBSOLETE being accumulated for each dimension. */
-// OBSOLETE start_arglist ();
-// OBSOLETE if (parse_opt_untyped_expr ())
-// OBSOLETE {
-// OBSOLETE int tok = PEEK_TOKEN ();
-// OBSOLETE arglist_len = 1;
-// OBSOLETE if (tok == UP || tok == ':')
-// OBSOLETE {
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE parse_expr ();
-// OBSOLETE expect (')', "expected ')' to terminate slice");
-// OBSOLETE end_arglist ();
-// OBSOLETE write_exp_elt_opcode (tok == UP ? TERNOP_SLICE_COUNT
-// OBSOLETE : TERNOP_SLICE);
-// OBSOLETE return;
-// OBSOLETE }
-// OBSOLETE while (check_token (','))
-// OBSOLETE {
-// OBSOLETE parse_untyped_expr ();
-// OBSOLETE arglist_len++;
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE arglist_len = 0;
-// OBSOLETE expect (')', NULL);
-// OBSOLETE arg_count = end_arglist ();
-// OBSOLETE write_exp_elt_opcode (MULTI_SUBSCRIPT);
-// OBSOLETE write_exp_elt_longcst (arg_count);
-// OBSOLETE write_exp_elt_opcode (MULTI_SUBSCRIPT);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_named_record_element (void)
-// OBSOLETE {
-// OBSOLETE struct stoken label;
-// OBSOLETE char buf[256];
-// OBSOLETE
-// OBSOLETE label = PEEK_LVAL ().sval;
-// OBSOLETE sprintf (buf, "expected a field name here `%s'", lexptr);
-// OBSOLETE expect (DOT_FIELD_NAME, buf);
-// OBSOLETE if (check_token (','))
-// OBSOLETE parse_named_record_element ();
-// OBSOLETE else if (check_token (':'))
-// OBSOLETE parse_expr ();
-// OBSOLETE else
-// OBSOLETE error ("syntax error near `%s' in named record tuple element", lexptr);
-// OBSOLETE write_exp_elt_opcode (OP_LABELED);
-// OBSOLETE write_exp_string (label);
-// OBSOLETE write_exp_elt_opcode (OP_LABELED);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Returns one or more TREE_LIST nodes, in reverse order. */
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_tuple_element (struct type *type)
-// OBSOLETE {
-// OBSOLETE if (PEEK_TOKEN () == DOT_FIELD_NAME)
-// OBSOLETE {
-// OBSOLETE /* Parse a labelled structure tuple. */
-// OBSOLETE parse_named_record_element ();
-// OBSOLETE return;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE if (check_token ('('))
-// OBSOLETE {
-// OBSOLETE if (check_token ('*'))
-// OBSOLETE {
-// OBSOLETE expect (')', "missing ')' after '*' case label list");
-// OBSOLETE if (type)
-// OBSOLETE {
-// OBSOLETE if (TYPE_CODE (type) == TYPE_CODE_ARRAY)
-// OBSOLETE {
-// OBSOLETE /* do this as a range from low to high */
-// OBSOLETE struct type *range_type = TYPE_FIELD_TYPE (type, 0);
-// OBSOLETE LONGEST low_bound, high_bound;
-// OBSOLETE if (get_discrete_bounds (range_type, &low_bound, &high_bound) < 0)
-// OBSOLETE error ("cannot determine bounds for (*)");
-// OBSOLETE /* lower bound */
-// OBSOLETE write_exp_elt_opcode (OP_LONG);
-// OBSOLETE write_exp_elt_type (range_type);
-// OBSOLETE write_exp_elt_longcst (low_bound);
-// OBSOLETE write_exp_elt_opcode (OP_LONG);
-// OBSOLETE /* upper bound */
-// OBSOLETE write_exp_elt_opcode (OP_LONG);
-// OBSOLETE write_exp_elt_type (range_type);
-// OBSOLETE write_exp_elt_longcst (high_bound);
-// OBSOLETE write_exp_elt_opcode (OP_LONG);
-// OBSOLETE write_exp_elt_opcode (BINOP_RANGE);
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE error ("(*) in invalid context");
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE error ("(*) only possible with modename in front of tuple (mode[..])");
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE parse_case_label ();
-// OBSOLETE while (check_token (','))
-// OBSOLETE {
-// OBSOLETE parse_case_label ();
-// OBSOLETE write_exp_elt_opcode (BINOP_COMMA);
-// OBSOLETE }
-// OBSOLETE expect (')', NULL);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE parse_untyped_expr ();
-// OBSOLETE if (check_token (':'))
-// OBSOLETE {
-// OBSOLETE /* A powerset range or a labeled Array. */
-// OBSOLETE parse_untyped_expr ();
-// OBSOLETE write_exp_elt_opcode (BINOP_RANGE);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Matches: a COMMA-separated list of tuple elements.
-// OBSOLETE Returns a list (of TREE_LIST nodes). */
-// OBSOLETE static void
-// OBSOLETE parse_opt_element_list (struct type *type)
-// OBSOLETE {
-// OBSOLETE arglist_len = 0;
-// OBSOLETE if (PEEK_TOKEN () == ']')
-// OBSOLETE return;
-// OBSOLETE for (;;)
-// OBSOLETE {
-// OBSOLETE parse_tuple_element (type);
-// OBSOLETE arglist_len++;
-// OBSOLETE if (PEEK_TOKEN () == ']')
-// OBSOLETE break;
-// OBSOLETE if (!check_token (','))
-// OBSOLETE error ("bad syntax in tuple");
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Parses: '[' elements ']'
-// OBSOLETE If modename is non-NULL it prefixed the tuple. */
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_tuple (struct type *mode)
-// OBSOLETE {
-// OBSOLETE struct type *type;
-// OBSOLETE if (mode)
-// OBSOLETE type = check_typedef (mode);
-// OBSOLETE else
-// OBSOLETE type = 0;
-// OBSOLETE require ('[');
-// OBSOLETE start_arglist ();
-// OBSOLETE parse_opt_element_list (type);
-// OBSOLETE expect (']', "missing ']' after tuple");
-// OBSOLETE write_exp_elt_opcode (OP_ARRAY);
-// OBSOLETE write_exp_elt_longcst ((LONGEST) 0);
-// OBSOLETE write_exp_elt_longcst ((LONGEST) end_arglist () - 1);
-// OBSOLETE write_exp_elt_opcode (OP_ARRAY);
-// OBSOLETE if (type)
-// OBSOLETE {
-// OBSOLETE if (TYPE_CODE (type) != TYPE_CODE_ARRAY
-// OBSOLETE && TYPE_CODE (type) != TYPE_CODE_STRUCT
-// OBSOLETE && TYPE_CODE (type) != TYPE_CODE_SET)
-// OBSOLETE error ("invalid tuple mode");
-// OBSOLETE write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE write_exp_elt_type (mode);
-// OBSOLETE write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_primval (void)
-// OBSOLETE {
-// OBSOLETE struct type *type;
-// OBSOLETE enum exp_opcode op;
-// OBSOLETE char *op_name;
-// OBSOLETE switch (PEEK_TOKEN ())
-// OBSOLETE {
-// OBSOLETE case INTEGER_LITERAL:
-// OBSOLETE case CHARACTER_LITERAL:
-// OBSOLETE write_exp_elt_opcode (OP_LONG);
-// OBSOLETE write_exp_elt_type (PEEK_LVAL ().typed_val.type);
-// OBSOLETE write_exp_elt_longcst (PEEK_LVAL ().typed_val.val);
-// OBSOLETE write_exp_elt_opcode (OP_LONG);
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE break;
-// OBSOLETE case BOOLEAN_LITERAL:
-// OBSOLETE write_exp_elt_opcode (OP_BOOL);
-// OBSOLETE write_exp_elt_longcst ((LONGEST) PEEK_LVAL ().ulval);
-// OBSOLETE write_exp_elt_opcode (OP_BOOL);
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE break;
-// OBSOLETE case FLOAT_LITERAL:
-// OBSOLETE write_exp_elt_opcode (OP_DOUBLE);
-// OBSOLETE write_exp_elt_type (builtin_type_double);
-// OBSOLETE write_exp_elt_dblcst (PEEK_LVAL ().dval);
-// OBSOLETE write_exp_elt_opcode (OP_DOUBLE);
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE break;
-// OBSOLETE case EMPTINESS_LITERAL:
-// OBSOLETE write_exp_elt_opcode (OP_LONG);
-// OBSOLETE write_exp_elt_type (lookup_pointer_type (builtin_type_void));
-// OBSOLETE write_exp_elt_longcst (0);
-// OBSOLETE write_exp_elt_opcode (OP_LONG);
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE break;
-// OBSOLETE case CHARACTER_STRING_LITERAL:
-// OBSOLETE write_exp_elt_opcode (OP_STRING);
-// OBSOLETE write_exp_string (PEEK_LVAL ().sval);
-// OBSOLETE write_exp_elt_opcode (OP_STRING);
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE break;
-// OBSOLETE case BIT_STRING_LITERAL:
-// OBSOLETE write_exp_elt_opcode (OP_BITSTRING);
-// OBSOLETE write_exp_bitstring (PEEK_LVAL ().sval);
-// OBSOLETE write_exp_elt_opcode (OP_BITSTRING);
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE break;
-// OBSOLETE case ARRAY:
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE /* This is pseudo-Chill, similar to C's '(TYPE[])EXPR'
-// OBSOLETE which casts to an artificial array. */
-// OBSOLETE expect ('(', NULL);
-// OBSOLETE expect (')', NULL);
-// OBSOLETE if (PEEK_TOKEN () != TYPENAME)
-// OBSOLETE error ("missing MODENAME after ARRAY()");
-// OBSOLETE type = PEEK_LVAL ().tsym.type;
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE expect ('(', NULL);
-// OBSOLETE parse_expr ();
-// OBSOLETE expect (')', "missing right parenthesis");
-// OBSOLETE type = create_array_type ((struct type *) NULL, type,
-// OBSOLETE create_range_type ((struct type *) NULL,
-// OBSOLETE builtin_type_int, 0, 0));
-// OBSOLETE TYPE_ARRAY_UPPER_BOUND_TYPE (type) = BOUND_CANNOT_BE_DETERMINED;
-// OBSOLETE write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE write_exp_elt_type (type);
-// OBSOLETE write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE break;
-// OBSOLETE #if 0
-// OBSOLETE case CONST:
-// OBSOLETE case EXPR:
-// OBSOLETE val = PEEK_LVAL ();
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE break;
-// OBSOLETE #endif
-// OBSOLETE case '(':
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE parse_expr ();
-// OBSOLETE expect (')', "missing right parenthesis");
-// OBSOLETE break;
-// OBSOLETE case '[':
-// OBSOLETE parse_tuple (NULL);
-// OBSOLETE break;
-// OBSOLETE case GENERAL_PROCEDURE_NAME:
-// OBSOLETE case LOCATION_NAME:
-// OBSOLETE write_exp_elt_opcode (OP_VAR_VALUE);
-// OBSOLETE write_exp_elt_block (NULL);
-// OBSOLETE write_exp_elt_sym (PEEK_LVAL ().ssym.sym);
-// OBSOLETE write_exp_elt_opcode (OP_VAR_VALUE);
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE break;
-// OBSOLETE case GDB_VARIABLE: /* gdb specific */
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE break;
-// OBSOLETE case NUM:
-// OBSOLETE parse_unary_call ();
-// OBSOLETE write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE write_exp_elt_type (builtin_type_int);
-// OBSOLETE write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE break;
-// OBSOLETE case CARD:
-// OBSOLETE parse_unary_call ();
-// OBSOLETE write_exp_elt_opcode (UNOP_CARD);
-// OBSOLETE break;
-// OBSOLETE case MAX_TOKEN:
-// OBSOLETE parse_unary_call ();
-// OBSOLETE write_exp_elt_opcode (UNOP_CHMAX);
-// OBSOLETE break;
-// OBSOLETE case MIN_TOKEN:
-// OBSOLETE parse_unary_call ();
-// OBSOLETE write_exp_elt_opcode (UNOP_CHMIN);
-// OBSOLETE break;
-// OBSOLETE case PRED:
-// OBSOLETE op_name = "PRED";
-// OBSOLETE goto unimplemented_unary_builtin;
-// OBSOLETE case SUCC:
-// OBSOLETE op_name = "SUCC";
-// OBSOLETE goto unimplemented_unary_builtin;
-// OBSOLETE case ABS:
-// OBSOLETE op_name = "ABS";
-// OBSOLETE goto unimplemented_unary_builtin;
-// OBSOLETE unimplemented_unary_builtin:
-// OBSOLETE parse_unary_call ();
-// OBSOLETE error ("not implemented: %s builtin function", op_name);
-// OBSOLETE break;
-// OBSOLETE case ADDR_TOKEN:
-// OBSOLETE parse_unary_call ();
-// OBSOLETE write_exp_elt_opcode (UNOP_ADDR);
-// OBSOLETE break;
-// OBSOLETE case SIZE:
-// OBSOLETE type = parse_mode_or_normal_call ();
-// OBSOLETE if (type)
-// OBSOLETE {
-// OBSOLETE write_exp_elt_opcode (OP_LONG);
-// OBSOLETE write_exp_elt_type (builtin_type_int);
-// OBSOLETE CHECK_TYPEDEF (type);
-// OBSOLETE write_exp_elt_longcst ((LONGEST) TYPE_LENGTH (type));
-// OBSOLETE write_exp_elt_opcode (OP_LONG);
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE write_exp_elt_opcode (UNOP_SIZEOF);
-// OBSOLETE break;
-// OBSOLETE case LOWER:
-// OBSOLETE op = UNOP_LOWER;
-// OBSOLETE goto lower_upper;
-// OBSOLETE case UPPER:
-// OBSOLETE op = UNOP_UPPER;
-// OBSOLETE goto lower_upper;
-// OBSOLETE lower_upper:
-// OBSOLETE type = parse_mode_or_normal_call ();
-// OBSOLETE write_lower_upper_value (op, type);
-// OBSOLETE break;
-// OBSOLETE case LENGTH:
-// OBSOLETE parse_unary_call ();
-// OBSOLETE write_exp_elt_opcode (UNOP_LENGTH);
-// OBSOLETE break;
-// OBSOLETE case TYPENAME:
-// OBSOLETE type = PEEK_LVAL ().tsym.type;
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE switch (PEEK_TOKEN ())
-// OBSOLETE {
-// OBSOLETE case '[':
-// OBSOLETE parse_tuple (type);
-// OBSOLETE break;
-// OBSOLETE case '(':
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE parse_expr ();
-// OBSOLETE expect (')', "missing right parenthesis");
-// OBSOLETE write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE write_exp_elt_type (type);
-// OBSOLETE write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE error ("typename in invalid context");
-// OBSOLETE }
-// OBSOLETE break;
-// OBSOLETE
-// OBSOLETE default:
-// OBSOLETE error ("invalid expression syntax at `%s'", lexptr);
-// OBSOLETE }
-// OBSOLETE for (;;)
-// OBSOLETE {
-// OBSOLETE switch (PEEK_TOKEN ())
-// OBSOLETE {
-// OBSOLETE case DOT_FIELD_NAME:
-// OBSOLETE write_exp_elt_opcode (STRUCTOP_STRUCT);
-// OBSOLETE write_exp_string (PEEK_LVAL ().sval);
-// OBSOLETE write_exp_elt_opcode (STRUCTOP_STRUCT);
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE continue;
-// OBSOLETE case POINTER:
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE if (PEEK_TOKEN () == TYPENAME)
-// OBSOLETE {
-// OBSOLETE type = PEEK_LVAL ().tsym.type;
-// OBSOLETE write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE write_exp_elt_type (lookup_pointer_type (type));
-// OBSOLETE write_exp_elt_opcode (UNOP_CAST);
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE }
-// OBSOLETE write_exp_elt_opcode (UNOP_IND);
-// OBSOLETE continue;
-// OBSOLETE case OPEN_PAREN:
-// OBSOLETE parse_call ();
-// OBSOLETE continue;
-// OBSOLETE case CHARACTER_STRING_LITERAL:
-// OBSOLETE case CHARACTER_LITERAL:
-// OBSOLETE case BIT_STRING_LITERAL:
-// OBSOLETE /* Handle string repetition. (See comment in parse_operand5.) */
-// OBSOLETE parse_primval ();
-// OBSOLETE write_exp_elt_opcode (MULTI_SUBSCRIPT);
-// OBSOLETE write_exp_elt_longcst (1);
-// OBSOLETE write_exp_elt_opcode (MULTI_SUBSCRIPT);
-// OBSOLETE continue;
-// OBSOLETE case END_TOKEN:
-// OBSOLETE case TOKEN_NOT_READ:
-// OBSOLETE case INTEGER_LITERAL:
-// OBSOLETE case BOOLEAN_LITERAL:
-// OBSOLETE case FLOAT_LITERAL:
-// OBSOLETE case GENERAL_PROCEDURE_NAME:
-// OBSOLETE case LOCATION_NAME:
-// OBSOLETE case EMPTINESS_LITERAL:
-// OBSOLETE case TYPENAME:
-// OBSOLETE case CASE:
-// OBSOLETE case OF:
-// OBSOLETE case ESAC:
-// OBSOLETE case LOGIOR:
-// OBSOLETE case ORIF:
-// OBSOLETE case LOGXOR:
-// OBSOLETE case LOGAND:
-// OBSOLETE case ANDIF:
-// OBSOLETE case NOTEQUAL:
-// OBSOLETE case GEQ:
-// OBSOLETE case LEQ:
-// OBSOLETE case IN:
-// OBSOLETE case SLASH_SLASH:
-// OBSOLETE case MOD:
-// OBSOLETE case REM:
-// OBSOLETE case NOT:
-// OBSOLETE case RECEIVE:
-// OBSOLETE case UP:
-// OBSOLETE case IF:
-// OBSOLETE case THEN:
-// OBSOLETE case ELSE:
-// OBSOLETE case FI:
-// OBSOLETE case ELSIF:
-// OBSOLETE case ILLEGAL_TOKEN:
-// OBSOLETE case NUM:
-// OBSOLETE case PRED:
-// OBSOLETE case SUCC:
-// OBSOLETE case ABS:
-// OBSOLETE case CARD:
-// OBSOLETE case MAX_TOKEN:
-// OBSOLETE case MIN_TOKEN:
-// OBSOLETE case ADDR_TOKEN:
-// OBSOLETE case SIZE:
-// OBSOLETE case UPPER:
-// OBSOLETE case LOWER:
-// OBSOLETE case LENGTH:
-// OBSOLETE case ARRAY:
-// OBSOLETE case GDB_VARIABLE:
-// OBSOLETE case GDB_ASSIGNMENT:
-// OBSOLETE break;
-// OBSOLETE }
-// OBSOLETE break;
-// OBSOLETE }
-// OBSOLETE return;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_operand6 (void)
-// OBSOLETE {
-// OBSOLETE if (check_token (RECEIVE))
-// OBSOLETE {
-// OBSOLETE parse_primval ();
-// OBSOLETE error ("not implemented: RECEIVE expression");
-// OBSOLETE }
-// OBSOLETE else if (check_token (POINTER))
-// OBSOLETE {
-// OBSOLETE parse_primval ();
-// OBSOLETE write_exp_elt_opcode (UNOP_ADDR);
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE parse_primval ();
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_operand5 (void)
-// OBSOLETE {
-// OBSOLETE enum exp_opcode op;
-// OBSOLETE /* We are supposed to be looking for a <string repetition operator>,
-// OBSOLETE but in general we can't distinguish that from a parenthesized
-// OBSOLETE expression. This is especially difficult if we allow the
-// OBSOLETE string operand to be a constant expression (as requested by
-// OBSOLETE some users), and not just a string literal.
-// OBSOLETE Consider: LPRN expr RPRN LPRN expr RPRN
-// OBSOLETE Is that a function call or string repetition?
-// OBSOLETE Instead, we handle string repetition in parse_primval,
-// OBSOLETE and build_generalized_call. */
-// OBSOLETE switch (PEEK_TOKEN ())
-// OBSOLETE {
-// OBSOLETE case NOT:
-// OBSOLETE op = UNOP_LOGICAL_NOT;
-// OBSOLETE break;
-// OBSOLETE case '-':
-// OBSOLETE op = UNOP_NEG;
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE op = OP_NULL;
-// OBSOLETE }
-// OBSOLETE if (op != OP_NULL)
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE parse_operand6 ();
-// OBSOLETE if (op != OP_NULL)
-// OBSOLETE write_exp_elt_opcode (op);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_operand4 (void)
-// OBSOLETE {
-// OBSOLETE enum exp_opcode op;
-// OBSOLETE parse_operand5 ();
-// OBSOLETE for (;;)
-// OBSOLETE {
-// OBSOLETE switch (PEEK_TOKEN ())
-// OBSOLETE {
-// OBSOLETE case '*':
-// OBSOLETE op = BINOP_MUL;
-// OBSOLETE break;
-// OBSOLETE case '/':
-// OBSOLETE op = BINOP_DIV;
-// OBSOLETE break;
-// OBSOLETE case MOD:
-// OBSOLETE op = BINOP_MOD;
-// OBSOLETE break;
-// OBSOLETE case REM:
-// OBSOLETE op = BINOP_REM;
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE return;
-// OBSOLETE }
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE parse_operand5 ();
-// OBSOLETE write_exp_elt_opcode (op);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_operand3 (void)
-// OBSOLETE {
-// OBSOLETE enum exp_opcode op;
-// OBSOLETE parse_operand4 ();
-// OBSOLETE for (;;)
-// OBSOLETE {
-// OBSOLETE switch (PEEK_TOKEN ())
-// OBSOLETE {
-// OBSOLETE case '+':
-// OBSOLETE op = BINOP_ADD;
-// OBSOLETE break;
-// OBSOLETE case '-':
-// OBSOLETE op = BINOP_SUB;
-// OBSOLETE break;
-// OBSOLETE case SLASH_SLASH:
-// OBSOLETE op = BINOP_CONCAT;
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE return;
-// OBSOLETE }
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE parse_operand4 ();
-// OBSOLETE write_exp_elt_opcode (op);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_operand2 (void)
-// OBSOLETE {
-// OBSOLETE enum exp_opcode op;
-// OBSOLETE parse_operand3 ();
-// OBSOLETE for (;;)
-// OBSOLETE {
-// OBSOLETE if (check_token (IN))
-// OBSOLETE {
-// OBSOLETE parse_operand3 ();
-// OBSOLETE write_exp_elt_opcode (BINOP_IN);
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE switch (PEEK_TOKEN ())
-// OBSOLETE {
-// OBSOLETE case '>':
-// OBSOLETE op = BINOP_GTR;
-// OBSOLETE break;
-// OBSOLETE case GEQ:
-// OBSOLETE op = BINOP_GEQ;
-// OBSOLETE break;
-// OBSOLETE case '<':
-// OBSOLETE op = BINOP_LESS;
-// OBSOLETE break;
-// OBSOLETE case LEQ:
-// OBSOLETE op = BINOP_LEQ;
-// OBSOLETE break;
-// OBSOLETE case '=':
-// OBSOLETE op = BINOP_EQUAL;
-// OBSOLETE break;
-// OBSOLETE case NOTEQUAL:
-// OBSOLETE op = BINOP_NOTEQUAL;
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE return;
-// OBSOLETE }
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE parse_operand3 ();
-// OBSOLETE write_exp_elt_opcode (op);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_operand1 (void)
-// OBSOLETE {
-// OBSOLETE enum exp_opcode op;
-// OBSOLETE parse_operand2 ();
-// OBSOLETE for (;;)
-// OBSOLETE {
-// OBSOLETE switch (PEEK_TOKEN ())
-// OBSOLETE {
-// OBSOLETE case LOGAND:
-// OBSOLETE op = BINOP_BITWISE_AND;
-// OBSOLETE break;
-// OBSOLETE case ANDIF:
-// OBSOLETE op = BINOP_LOGICAL_AND;
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE return;
-// OBSOLETE }
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE parse_operand2 ();
-// OBSOLETE write_exp_elt_opcode (op);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_operand0 (void)
-// OBSOLETE {
-// OBSOLETE enum exp_opcode op;
-// OBSOLETE parse_operand1 ();
-// OBSOLETE for (;;)
-// OBSOLETE {
-// OBSOLETE switch (PEEK_TOKEN ())
-// OBSOLETE {
-// OBSOLETE case LOGIOR:
-// OBSOLETE op = BINOP_BITWISE_IOR;
-// OBSOLETE break;
-// OBSOLETE case LOGXOR:
-// OBSOLETE op = BINOP_BITWISE_XOR;
-// OBSOLETE break;
-// OBSOLETE case ORIF:
-// OBSOLETE op = BINOP_LOGICAL_OR;
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE return;
-// OBSOLETE }
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE parse_operand1 ();
-// OBSOLETE write_exp_elt_opcode (op);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_expr (void)
-// OBSOLETE {
-// OBSOLETE parse_operand0 ();
-// OBSOLETE if (check_token (GDB_ASSIGNMENT))
-// OBSOLETE {
-// OBSOLETE parse_expr ();
-// OBSOLETE write_exp_elt_opcode (BINOP_ASSIGN);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_then_alternative (void)
-// OBSOLETE {
-// OBSOLETE expect (THEN, "missing 'THEN' in 'IF' expression");
-// OBSOLETE parse_expr ();
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_else_alternative (void)
-// OBSOLETE {
-// OBSOLETE if (check_token (ELSIF))
-// OBSOLETE parse_if_expression_body ();
-// OBSOLETE else if (check_token (ELSE))
-// OBSOLETE parse_expr ();
-// OBSOLETE else
-// OBSOLETE error ("missing ELSE/ELSIF in IF expression");
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Matches: <boolean expression> <then alternative> <else alternative> */
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_if_expression_body (void)
-// OBSOLETE {
-// OBSOLETE parse_expr ();
-// OBSOLETE parse_then_alternative ();
-// OBSOLETE parse_else_alternative ();
-// OBSOLETE write_exp_elt_opcode (TERNOP_COND);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_if_expression (void)
-// OBSOLETE {
-// OBSOLETE require (IF);
-// OBSOLETE parse_if_expression_body ();
-// OBSOLETE expect (FI, "missing 'FI' at end of conditional expression");
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* An <untyped_expr> is a superset of <expr>. It also includes
-// OBSOLETE <conditional expressions> and untyped <tuples>, whose types
-// OBSOLETE are not given by their constituents. Hence, these are only
-// OBSOLETE allowed in certain contexts that expect a certain type.
-// OBSOLETE You should call convert() to fix up the <untyped_expr>. */
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE parse_untyped_expr (void)
-// OBSOLETE {
-// OBSOLETE switch (PEEK_TOKEN ())
-// OBSOLETE {
-// OBSOLETE case IF:
-// OBSOLETE parse_if_expression ();
-// OBSOLETE return;
-// OBSOLETE case CASE:
-// OBSOLETE error ("not implemented: CASE expression");
-// OBSOLETE case '(':
-// OBSOLETE switch (PEEK_TOKEN1 ())
-// OBSOLETE {
-// OBSOLETE case IF:
-// OBSOLETE case CASE:
-// OBSOLETE goto skip_lprn;
-// OBSOLETE case '[':
-// OBSOLETE skip_lprn:
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE parse_untyped_expr ();
-// OBSOLETE expect (')', "missing ')'");
-// OBSOLETE return;
-// OBSOLETE default:;
-// OBSOLETE /* fall through */
-// OBSOLETE }
-// OBSOLETE default:
-// OBSOLETE parse_operand0 ();
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE int
-// OBSOLETE chill_parse (void)
-// OBSOLETE {
-// OBSOLETE terminal_buffer[0] = TOKEN_NOT_READ;
-// OBSOLETE if (PEEK_TOKEN () == TYPENAME && PEEK_TOKEN1 () == END_TOKEN)
-// OBSOLETE {
-// OBSOLETE write_exp_elt_opcode (OP_TYPE);
-// OBSOLETE write_exp_elt_type (PEEK_LVAL ().tsym.type);
-// OBSOLETE write_exp_elt_opcode (OP_TYPE);
-// OBSOLETE FORWARD_TOKEN ();
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE parse_expr ();
-// OBSOLETE if (terminal_buffer[0] != END_TOKEN)
-// OBSOLETE {
-// OBSOLETE if (comma_terminates && terminal_buffer[0] == ',')
-// OBSOLETE lexptr--; /* Put the comma back. */
-// OBSOLETE else
-// OBSOLETE error ("Junk after end of expression.");
-// OBSOLETE }
-// OBSOLETE return 0;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE
-// OBSOLETE /* Implementation of a dynamically expandable buffer for processing input
-// OBSOLETE characters acquired through lexptr and building a value to return in
-// OBSOLETE yylval. */
-// OBSOLETE
-// OBSOLETE static char *tempbuf; /* Current buffer contents */
-// OBSOLETE static int tempbufsize; /* Size of allocated buffer */
-// OBSOLETE static int tempbufindex; /* Current index into buffer */
-// OBSOLETE
-// OBSOLETE #define GROWBY_MIN_SIZE 64 /* Minimum amount to grow buffer by */
-// OBSOLETE
-// OBSOLETE #define CHECKBUF(size) \
-// OBSOLETE do { \
-// OBSOLETE if (tempbufindex + (size) >= tempbufsize) \
-// OBSOLETE { \
-// OBSOLETE growbuf_by_size (size); \
-// OBSOLETE } \
-// OBSOLETE } while (0);
-// OBSOLETE
-// OBSOLETE /* Grow the static temp buffer if necessary, including allocating the first one
-// OBSOLETE on demand. */
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE growbuf_by_size (int count)
-// OBSOLETE {
-// OBSOLETE int growby;
-// OBSOLETE
-// OBSOLETE growby = max (count, GROWBY_MIN_SIZE);
-// OBSOLETE tempbufsize += growby;
-// OBSOLETE if (tempbuf == NULL)
-// OBSOLETE {
-// OBSOLETE tempbuf = (char *) xmalloc (tempbufsize);
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE tempbuf = (char *) xrealloc (tempbuf, tempbufsize);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Try to consume a simple name string token. If successful, returns
-// OBSOLETE a pointer to a nullbyte terminated copy of the name that can be used
-// OBSOLETE in symbol table lookups. If not successful, returns NULL. */
-// OBSOLETE
-// OBSOLETE static char *
-// OBSOLETE match_simple_name_string (void)
-// OBSOLETE {
-// OBSOLETE char *tokptr = lexptr;
-// OBSOLETE
-// OBSOLETE if (isalpha (*tokptr) || *tokptr == '_')
-// OBSOLETE {
-// OBSOLETE char *result;
-// OBSOLETE do
-// OBSOLETE {
-// OBSOLETE tokptr++;
-// OBSOLETE }
-// OBSOLETE while (isalnum (*tokptr) || (*tokptr == '_'));
-// OBSOLETE yylval.sval.ptr = lexptr;
-// OBSOLETE yylval.sval.length = tokptr - lexptr;
-// OBSOLETE lexptr = tokptr;
-// OBSOLETE result = copy_name (yylval.sval);
-// OBSOLETE return result;
-// OBSOLETE }
-// OBSOLETE return (NULL);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Start looking for a value composed of valid digits as set by the base
-// OBSOLETE in use. Note that '_' characters are valid anywhere, in any quantity,
-// OBSOLETE and are simply ignored. Since we must find at least one valid digit,
-// OBSOLETE or reject this token as an integer literal, we keep track of how many
-// OBSOLETE digits we have encountered. */
-// OBSOLETE
-// OBSOLETE static int
-// OBSOLETE decode_integer_value (int base, char **tokptrptr, LONGEST *ivalptr)
-// OBSOLETE {
-// OBSOLETE char *tokptr = *tokptrptr;
-// OBSOLETE int temp;
-// OBSOLETE int digits = 0;
-// OBSOLETE
-// OBSOLETE while (*tokptr != '\0')
-// OBSOLETE {
-// OBSOLETE temp = *tokptr;
-// OBSOLETE if (isupper (temp))
-// OBSOLETE temp = tolower (temp);
-// OBSOLETE tokptr++;
-// OBSOLETE switch (temp)
-// OBSOLETE {
-// OBSOLETE case '_':
-// OBSOLETE continue;
-// OBSOLETE case '0':
-// OBSOLETE case '1':
-// OBSOLETE case '2':
-// OBSOLETE case '3':
-// OBSOLETE case '4':
-// OBSOLETE case '5':
-// OBSOLETE case '6':
-// OBSOLETE case '7':
-// OBSOLETE case '8':
-// OBSOLETE case '9':
-// OBSOLETE temp -= '0';
-// OBSOLETE break;
-// OBSOLETE case 'a':
-// OBSOLETE case 'b':
-// OBSOLETE case 'c':
-// OBSOLETE case 'd':
-// OBSOLETE case 'e':
-// OBSOLETE case 'f':
-// OBSOLETE temp -= 'a';
-// OBSOLETE temp += 10;
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE temp = base;
-// OBSOLETE break;
-// OBSOLETE }
-// OBSOLETE if (temp < base)
-// OBSOLETE {
-// OBSOLETE digits++;
-// OBSOLETE *ivalptr *= base;
-// OBSOLETE *ivalptr += temp;
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE /* Found something not in domain for current base. */
-// OBSOLETE tokptr--; /* Unconsume what gave us indigestion. */
-// OBSOLETE break;
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* If we didn't find any digits, then we don't have a valid integer
-// OBSOLETE value, so reject the entire token. Otherwise, update the lexical
-// OBSOLETE scan pointer, and return non-zero for success. */
-// OBSOLETE
-// OBSOLETE if (digits == 0)
-// OBSOLETE {
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE *tokptrptr = tokptr;
-// OBSOLETE return (1);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static int
-// OBSOLETE decode_integer_literal (LONGEST *valptr, char **tokptrptr)
-// OBSOLETE {
-// OBSOLETE char *tokptr = *tokptrptr;
-// OBSOLETE int base = 0;
-// OBSOLETE LONGEST ival = 0;
-// OBSOLETE int explicit_base = 0;
-// OBSOLETE
-// OBSOLETE /* Look for an explicit base specifier, which is optional. */
-// OBSOLETE
-// OBSOLETE switch (*tokptr)
-// OBSOLETE {
-// OBSOLETE case 'd':
-// OBSOLETE case 'D':
-// OBSOLETE explicit_base++;
-// OBSOLETE base = 10;
-// OBSOLETE tokptr++;
-// OBSOLETE break;
-// OBSOLETE case 'b':
-// OBSOLETE case 'B':
-// OBSOLETE explicit_base++;
-// OBSOLETE base = 2;
-// OBSOLETE tokptr++;
-// OBSOLETE break;
-// OBSOLETE case 'h':
-// OBSOLETE case 'H':
-// OBSOLETE explicit_base++;
-// OBSOLETE base = 16;
-// OBSOLETE tokptr++;
-// OBSOLETE break;
-// OBSOLETE case 'o':
-// OBSOLETE case 'O':
-// OBSOLETE explicit_base++;
-// OBSOLETE base = 8;
-// OBSOLETE tokptr++;
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE base = 10;
-// OBSOLETE break;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* If we found an explicit base ensure that the character after the
-// OBSOLETE explicit base is a single quote. */
-// OBSOLETE
-// OBSOLETE if (explicit_base && (*tokptr++ != '\''))
-// OBSOLETE {
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Attempt to decode whatever follows as an integer value in the
-// OBSOLETE indicated base, updating the token pointer in the process and
-// OBSOLETE computing the value into ival. Also, if we have an explicit
-// OBSOLETE base, then the next character must not be a single quote, or we
-// OBSOLETE have a bitstring literal, so reject the entire token in this case.
-// OBSOLETE Otherwise, update the lexical scan pointer, and return non-zero
-// OBSOLETE for success. */
-// OBSOLETE
-// OBSOLETE if (!decode_integer_value (base, &tokptr, &ival))
-// OBSOLETE {
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE else if (explicit_base && (*tokptr == '\''))
-// OBSOLETE {
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE *valptr = ival;
-// OBSOLETE *tokptrptr = tokptr;
-// OBSOLETE return (1);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* If it wasn't for the fact that floating point values can contain '_'
-// OBSOLETE characters, we could just let strtod do all the hard work by letting it
-// OBSOLETE try to consume as much of the current token buffer as possible and
-// OBSOLETE find a legal conversion. Unfortunately we need to filter out the '_'
-// OBSOLETE characters before calling strtod, which we do by copying the other
-// OBSOLETE legal chars to a local buffer to be converted. However since we also
-// OBSOLETE need to keep track of where the last unconsumed character in the input
-// OBSOLETE buffer is, we have transfer only as many characters as may compose a
-// OBSOLETE legal floating point value. */
-// OBSOLETE
-// OBSOLETE static enum ch_terminal
-// OBSOLETE match_float_literal (void)
-// OBSOLETE {
-// OBSOLETE char *tokptr = lexptr;
-// OBSOLETE char *buf;
-// OBSOLETE char *copy;
-// OBSOLETE double dval;
-// OBSOLETE extern double strtod ();
-// OBSOLETE
-// OBSOLETE /* Make local buffer in which to build the string to convert. This is
-// OBSOLETE required because underscores are valid in chill floating point numbers
-// OBSOLETE but not in the string passed to strtod to convert. The string will be
-// OBSOLETE no longer than our input string. */
-// OBSOLETE
-// OBSOLETE copy = buf = (char *) alloca (strlen (tokptr) + 1);
-// OBSOLETE
-// OBSOLETE /* Transfer all leading digits to the conversion buffer, discarding any
-// OBSOLETE underscores. */
-// OBSOLETE
-// OBSOLETE while (isdigit (*tokptr) || *tokptr == '_')
-// OBSOLETE {
-// OBSOLETE if (*tokptr != '_')
-// OBSOLETE {
-// OBSOLETE *copy++ = *tokptr;
-// OBSOLETE }
-// OBSOLETE tokptr++;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Now accept either a '.', or one of [eEdD]. Dot is legal regardless
-// OBSOLETE of whether we found any leading digits, and we simply accept it and
-// OBSOLETE continue on to look for the fractional part and/or exponent. One of
-// OBSOLETE [eEdD] is legal only if we have seen digits, and means that there
-// OBSOLETE is no fractional part. If we find neither of these, then this is
-// OBSOLETE not a floating point number, so return failure. */
-// OBSOLETE
-// OBSOLETE switch (*tokptr++)
-// OBSOLETE {
-// OBSOLETE case '.':
-// OBSOLETE /* Accept and then look for fractional part and/or exponent. */
-// OBSOLETE *copy++ = '.';
-// OBSOLETE break;
-// OBSOLETE
-// OBSOLETE case 'e':
-// OBSOLETE case 'E':
-// OBSOLETE case 'd':
-// OBSOLETE case 'D':
-// OBSOLETE if (copy == buf)
-// OBSOLETE {
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE *copy++ = 'e';
-// OBSOLETE goto collect_exponent;
-// OBSOLETE break;
-// OBSOLETE
-// OBSOLETE default:
-// OBSOLETE return (0);
-// OBSOLETE break;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* We found a '.', copy any fractional digits to the conversion buffer, up
-// OBSOLETE to the first nondigit, non-underscore character. */
-// OBSOLETE
-// OBSOLETE while (isdigit (*tokptr) || *tokptr == '_')
-// OBSOLETE {
-// OBSOLETE if (*tokptr != '_')
-// OBSOLETE {
-// OBSOLETE *copy++ = *tokptr;
-// OBSOLETE }
-// OBSOLETE tokptr++;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Look for an exponent, which must start with one of [eEdD]. If none
-// OBSOLETE is found, jump directly to trying to convert what we have collected
-// OBSOLETE so far. */
-// OBSOLETE
-// OBSOLETE switch (*tokptr)
-// OBSOLETE {
-// OBSOLETE case 'e':
-// OBSOLETE case 'E':
-// OBSOLETE case 'd':
-// OBSOLETE case 'D':
-// OBSOLETE *copy++ = 'e';
-// OBSOLETE tokptr++;
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE goto convert_float;
-// OBSOLETE break;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Accept an optional '-' or '+' following one of [eEdD]. */
-// OBSOLETE
-// OBSOLETE collect_exponent:
-// OBSOLETE if (*tokptr == '+' || *tokptr == '-')
-// OBSOLETE {
-// OBSOLETE *copy++ = *tokptr++;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Now copy an exponent into the conversion buffer. Note that at the
-// OBSOLETE moment underscores are *not* allowed in exponents. */
-// OBSOLETE
-// OBSOLETE while (isdigit (*tokptr))
-// OBSOLETE {
-// OBSOLETE *copy++ = *tokptr++;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* If we transfered any chars to the conversion buffer, try to interpret its
-// OBSOLETE contents as a floating point value. If any characters remain, then we
-// OBSOLETE must not have a valid floating point string. */
-// OBSOLETE
-// OBSOLETE convert_float:
-// OBSOLETE *copy = '\0';
-// OBSOLETE if (copy != buf)
-// OBSOLETE {
-// OBSOLETE dval = strtod (buf, &copy);
-// OBSOLETE if (*copy == '\0')
-// OBSOLETE {
-// OBSOLETE yylval.dval = dval;
-// OBSOLETE lexptr = tokptr;
-// OBSOLETE return (FLOAT_LITERAL);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Recognize a string literal. A string literal is a sequence
-// OBSOLETE of characters enclosed in matching single or double quotes, except that
-// OBSOLETE a single character inside single quotes is a character literal, which
-// OBSOLETE we reject as a string literal. To embed the terminator character inside
-// OBSOLETE a string, it is simply doubled (I.E. "this""is""one""string") */
-// OBSOLETE
-// OBSOLETE static enum ch_terminal
-// OBSOLETE match_string_literal (void)
-// OBSOLETE {
-// OBSOLETE char *tokptr = lexptr;
-// OBSOLETE int in_ctrlseq = 0;
-// OBSOLETE LONGEST ival;
-// OBSOLETE
-// OBSOLETE for (tempbufindex = 0, tokptr++; *tokptr != '\0'; tokptr++)
-// OBSOLETE {
-// OBSOLETE CHECKBUF (1);
-// OBSOLETE tryagain:;
-// OBSOLETE if (in_ctrlseq)
-// OBSOLETE {
-// OBSOLETE /* skip possible whitespaces */
-// OBSOLETE while ((*tokptr == ' ' || *tokptr == '\t') && *tokptr)
-// OBSOLETE tokptr++;
-// OBSOLETE if (*tokptr == ')')
-// OBSOLETE {
-// OBSOLETE in_ctrlseq = 0;
-// OBSOLETE tokptr++;
-// OBSOLETE goto tryagain;
-// OBSOLETE }
-// OBSOLETE else if (*tokptr != ',')
-// OBSOLETE error ("Invalid control sequence");
-// OBSOLETE tokptr++;
-// OBSOLETE /* skip possible whitespaces */
-// OBSOLETE while ((*tokptr == ' ' || *tokptr == '\t') && *tokptr)
-// OBSOLETE tokptr++;
-// OBSOLETE if (!decode_integer_literal (&ival, &tokptr))
-// OBSOLETE error ("Invalid control sequence");
-// OBSOLETE tokptr--;
-// OBSOLETE }
-// OBSOLETE else if (*tokptr == *lexptr)
-// OBSOLETE {
-// OBSOLETE if (*(tokptr + 1) == *lexptr)
-// OBSOLETE {
-// OBSOLETE ival = *tokptr++;
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE break;
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE else if (*tokptr == '^')
-// OBSOLETE {
-// OBSOLETE if (*(tokptr + 1) == '(')
-// OBSOLETE {
-// OBSOLETE in_ctrlseq = 1;
-// OBSOLETE tokptr += 2;
-// OBSOLETE if (!decode_integer_literal (&ival, &tokptr))
-// OBSOLETE error ("Invalid control sequence");
-// OBSOLETE tokptr--;
-// OBSOLETE }
-// OBSOLETE else if (*(tokptr + 1) == '^')
-// OBSOLETE ival = *tokptr++;
-// OBSOLETE else
-// OBSOLETE error ("Invalid control sequence");
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE ival = *tokptr;
-// OBSOLETE tempbuf[tempbufindex++] = ival;
-// OBSOLETE }
-// OBSOLETE if (in_ctrlseq)
-// OBSOLETE error ("Invalid control sequence");
-// OBSOLETE
-// OBSOLETE if (*tokptr == '\0' /* no terminator */
-// OBSOLETE || (tempbufindex == 1 && *tokptr == '\'')) /* char literal */
-// OBSOLETE {
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE tempbuf[tempbufindex] = '\0';
-// OBSOLETE yylval.sval.ptr = tempbuf;
-// OBSOLETE yylval.sval.length = tempbufindex;
-// OBSOLETE lexptr = ++tokptr;
-// OBSOLETE return (CHARACTER_STRING_LITERAL);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Recognize a character literal. A character literal is single character
-// OBSOLETE or a control sequence, enclosed in single quotes. A control sequence
-// OBSOLETE is a comma separated list of one or more integer literals, enclosed
-// OBSOLETE in parenthesis and introduced with a circumflex character.
-// OBSOLETE
-// OBSOLETE EX: 'a' '^(7)' '^(7,8)'
-// OBSOLETE
-// OBSOLETE As a GNU chill extension, the syntax C'xx' is also recognized as a
-// OBSOLETE character literal, where xx is a hex value for the character.
-// OBSOLETE
-// OBSOLETE Note that more than a single character, enclosed in single quotes, is
-// OBSOLETE a string literal.
-// OBSOLETE
-// OBSOLETE Returns CHARACTER_LITERAL if a match is found.
-// OBSOLETE */
-// OBSOLETE
-// OBSOLETE static enum ch_terminal
-// OBSOLETE match_character_literal (void)
-// OBSOLETE {
-// OBSOLETE char *tokptr = lexptr;
-// OBSOLETE LONGEST ival = 0;
-// OBSOLETE
-// OBSOLETE if ((*tokptr == 'c' || *tokptr == 'C') && (*(tokptr + 1) == '\''))
-// OBSOLETE {
-// OBSOLETE /* We have a GNU chill extension form, so skip the leading "C'",
-// OBSOLETE decode the hex value, and then ensure that we have a trailing
-// OBSOLETE single quote character. */
-// OBSOLETE tokptr += 2;
-// OBSOLETE if (!decode_integer_value (16, &tokptr, &ival) || (*tokptr != '\''))
-// OBSOLETE {
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE tokptr++;
-// OBSOLETE }
-// OBSOLETE else if (*tokptr == '\'')
-// OBSOLETE {
-// OBSOLETE tokptr++;
-// OBSOLETE
-// OBSOLETE /* Determine which form we have, either a control sequence or the
-// OBSOLETE single character form. */
-// OBSOLETE
-// OBSOLETE if (*tokptr == '^')
-// OBSOLETE {
-// OBSOLETE if (*(tokptr + 1) == '(')
-// OBSOLETE {
-// OBSOLETE /* Match and decode a control sequence. Return zero if we don't
-// OBSOLETE find a valid integer literal, or if the next unconsumed character
-// OBSOLETE after the integer literal is not the trailing ')'. */
-// OBSOLETE tokptr += 2;
-// OBSOLETE if (!decode_integer_literal (&ival, &tokptr) || (*tokptr++ != ')'))
-// OBSOLETE {
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE else if (*(tokptr + 1) == '^')
-// OBSOLETE {
-// OBSOLETE ival = *tokptr;
-// OBSOLETE tokptr += 2;
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE /* fail */
-// OBSOLETE error ("Invalid control sequence");
-// OBSOLETE }
-// OBSOLETE else if (*tokptr == '\'')
-// OBSOLETE {
-// OBSOLETE /* this must be duplicated */
-// OBSOLETE ival = *tokptr;
-// OBSOLETE tokptr += 2;
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE ival = *tokptr++;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* The trailing quote has not yet been consumed. If we don't find
-// OBSOLETE it, then we have no match. */
-// OBSOLETE
-// OBSOLETE if (*tokptr++ != '\'')
-// OBSOLETE {
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE /* Not a character literal. */
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE yylval.typed_val.val = ival;
-// OBSOLETE yylval.typed_val.type = builtin_type_chill_char;
-// OBSOLETE lexptr = tokptr;
-// OBSOLETE return (CHARACTER_LITERAL);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Recognize an integer literal, as specified in Z.200 sec 5.2.4.2.
-// OBSOLETE Note that according to 5.2.4.2, a single "_" is also a valid integer
-// OBSOLETE literal, however GNU-chill requires there to be at least one "digit"
-// OBSOLETE in any integer literal. */
-// OBSOLETE
-// OBSOLETE static enum ch_terminal
-// OBSOLETE match_integer_literal (void)
-// OBSOLETE {
-// OBSOLETE char *tokptr = lexptr;
-// OBSOLETE LONGEST ival;
-// OBSOLETE
-// OBSOLETE if (!decode_integer_literal (&ival, &tokptr))
-// OBSOLETE {
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE yylval.typed_val.val = ival;
-// OBSOLETE #if defined(CC_HAS_LONG_LONG)
-// OBSOLETE if (ival > (LONGEST) 2147483647U || ival < -(LONGEST) 2147483648U)
-// OBSOLETE yylval.typed_val.type = builtin_type_long_long;
-// OBSOLETE else
-// OBSOLETE #endif
-// OBSOLETE yylval.typed_val.type = builtin_type_int;
-// OBSOLETE lexptr = tokptr;
-// OBSOLETE return (INTEGER_LITERAL);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Recognize a bit-string literal, as specified in Z.200 sec 5.2.4.8
-// OBSOLETE Note that according to 5.2.4.8, a single "_" is also a valid bit-string
-// OBSOLETE literal, however GNU-chill requires there to be at least one "digit"
-// OBSOLETE in any bit-string literal. */
-// OBSOLETE
-// OBSOLETE static enum ch_terminal
-// OBSOLETE match_bitstring_literal (void)
-// OBSOLETE {
-// OBSOLETE register char *tokptr = lexptr;
-// OBSOLETE int bitoffset = 0;
-// OBSOLETE int bitcount = 0;
-// OBSOLETE int bits_per_char;
-// OBSOLETE int digit;
-// OBSOLETE
-// OBSOLETE tempbufindex = 0;
-// OBSOLETE CHECKBUF (1);
-// OBSOLETE tempbuf[0] = 0;
-// OBSOLETE
-// OBSOLETE /* Look for the required explicit base specifier. */
-// OBSOLETE
-// OBSOLETE switch (*tokptr++)
-// OBSOLETE {
-// OBSOLETE case 'b':
-// OBSOLETE case 'B':
-// OBSOLETE bits_per_char = 1;
-// OBSOLETE break;
-// OBSOLETE case 'o':
-// OBSOLETE case 'O':
-// OBSOLETE bits_per_char = 3;
-// OBSOLETE break;
-// OBSOLETE case 'h':
-// OBSOLETE case 'H':
-// OBSOLETE bits_per_char = 4;
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE return (0);
-// OBSOLETE break;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Ensure that the character after the explicit base is a single quote. */
-// OBSOLETE
-// OBSOLETE if (*tokptr++ != '\'')
-// OBSOLETE {
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE while (*tokptr != '\0' && *tokptr != '\'')
-// OBSOLETE {
-// OBSOLETE digit = *tokptr;
-// OBSOLETE if (isupper (digit))
-// OBSOLETE digit = tolower (digit);
-// OBSOLETE tokptr++;
-// OBSOLETE switch (digit)
-// OBSOLETE {
-// OBSOLETE case '_':
-// OBSOLETE continue;
-// OBSOLETE case '0':
-// OBSOLETE case '1':
-// OBSOLETE case '2':
-// OBSOLETE case '3':
-// OBSOLETE case '4':
-// OBSOLETE case '5':
-// OBSOLETE case '6':
-// OBSOLETE case '7':
-// OBSOLETE case '8':
-// OBSOLETE case '9':
-// OBSOLETE digit -= '0';
-// OBSOLETE break;
-// OBSOLETE case 'a':
-// OBSOLETE case 'b':
-// OBSOLETE case 'c':
-// OBSOLETE case 'd':
-// OBSOLETE case 'e':
-// OBSOLETE case 'f':
-// OBSOLETE digit -= 'a';
-// OBSOLETE digit += 10;
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE /* this is not a bitstring literal, probably an integer */
-// OBSOLETE return 0;
-// OBSOLETE }
-// OBSOLETE if (digit >= 1 << bits_per_char)
-// OBSOLETE {
-// OBSOLETE /* Found something not in domain for current base. */
-// OBSOLETE error ("Too-large digit in bitstring or integer.");
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE /* Extract bits from digit, packing them into the bitstring byte. */
-// OBSOLETE int k = TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? bits_per_char - 1 : 0;
-// OBSOLETE for (; TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? k >= 0 : k < bits_per_char;
-// OBSOLETE TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? k-- : k++)
-// OBSOLETE {
-// OBSOLETE bitcount++;
-// OBSOLETE if (digit & (1 << k))
-// OBSOLETE {
-// OBSOLETE tempbuf[tempbufindex] |=
-// OBSOLETE (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
-// OBSOLETE ? (1 << (HOST_CHAR_BIT - 1 - bitoffset))
-// OBSOLETE : (1 << bitoffset);
-// OBSOLETE }
-// OBSOLETE bitoffset++;
-// OBSOLETE if (bitoffset == HOST_CHAR_BIT)
-// OBSOLETE {
-// OBSOLETE bitoffset = 0;
-// OBSOLETE tempbufindex++;
-// OBSOLETE CHECKBUF (1);
-// OBSOLETE tempbuf[tempbufindex] = 0;
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Verify that we consumed everything up to the trailing single quote,
-// OBSOLETE and that we found some bits (IE not just underbars). */
-// OBSOLETE
-// OBSOLETE if (*tokptr++ != '\'')
-// OBSOLETE {
-// OBSOLETE return (0);
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE yylval.sval.ptr = tempbuf;
-// OBSOLETE yylval.sval.length = bitcount;
-// OBSOLETE lexptr = tokptr;
-// OBSOLETE return (BIT_STRING_LITERAL);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE struct token
-// OBSOLETE {
-// OBSOLETE char *operator;
-// OBSOLETE int token;
-// OBSOLETE };
-// OBSOLETE
-// OBSOLETE static const struct token idtokentab[] =
-// OBSOLETE {
-// OBSOLETE {"array", ARRAY},
-// OBSOLETE {"length", LENGTH},
-// OBSOLETE {"lower", LOWER},
-// OBSOLETE {"upper", UPPER},
-// OBSOLETE {"andif", ANDIF},
-// OBSOLETE {"pred", PRED},
-// OBSOLETE {"succ", SUCC},
-// OBSOLETE {"card", CARD},
-// OBSOLETE {"size", SIZE},
-// OBSOLETE {"orif", ORIF},
-// OBSOLETE {"num", NUM},
-// OBSOLETE {"abs", ABS},
-// OBSOLETE {"max", MAX_TOKEN},
-// OBSOLETE {"min", MIN_TOKEN},
-// OBSOLETE {"mod", MOD},
-// OBSOLETE {"rem", REM},
-// OBSOLETE {"not", NOT},
-// OBSOLETE {"xor", LOGXOR},
-// OBSOLETE {"and", LOGAND},
-// OBSOLETE {"in", IN},
-// OBSOLETE {"or", LOGIOR},
-// OBSOLETE {"up", UP},
-// OBSOLETE {"addr", ADDR_TOKEN},
-// OBSOLETE {"null", EMPTINESS_LITERAL}
-// OBSOLETE };
-// OBSOLETE
-// OBSOLETE static const struct token tokentab2[] =
-// OBSOLETE {
-// OBSOLETE {":=", GDB_ASSIGNMENT},
-// OBSOLETE {"//", SLASH_SLASH},
-// OBSOLETE {"->", POINTER},
-// OBSOLETE {"/=", NOTEQUAL},
-// OBSOLETE {"<=", LEQ},
-// OBSOLETE {">=", GEQ}
-// OBSOLETE };
-// OBSOLETE
-// OBSOLETE /* Read one token, getting characters through lexptr. */
-// OBSOLETE /* This is where we will check to make sure that the language and the
-// OBSOLETE operators used are compatible. */
-// OBSOLETE
-// OBSOLETE static enum ch_terminal
-// OBSOLETE ch_lex (void)
-// OBSOLETE {
-// OBSOLETE unsigned int i;
-// OBSOLETE enum ch_terminal token;
-// OBSOLETE char *inputname;
-// OBSOLETE struct symbol *sym;
-// OBSOLETE
-// OBSOLETE /* Skip over any leading whitespace. */
-// OBSOLETE while (isspace (*lexptr))
-// OBSOLETE {
-// OBSOLETE lexptr++;
-// OBSOLETE }
-// OBSOLETE /* Look for special single character cases which can't be the first
-// OBSOLETE character of some other multicharacter token. */
-// OBSOLETE switch (*lexptr)
-// OBSOLETE {
-// OBSOLETE case '\0':
-// OBSOLETE return END_TOKEN;
-// OBSOLETE case ',':
-// OBSOLETE case '=':
-// OBSOLETE case ';':
-// OBSOLETE case '!':
-// OBSOLETE case '+':
-// OBSOLETE case '*':
-// OBSOLETE case '(':
-// OBSOLETE case ')':
-// OBSOLETE case '[':
-// OBSOLETE case ']':
-// OBSOLETE return (*lexptr++);
-// OBSOLETE }
-// OBSOLETE /* Look for characters which start a particular kind of multicharacter
-// OBSOLETE token, such as a character literal, register name, convenience
-// OBSOLETE variable name, string literal, etc. */
-// OBSOLETE switch (*lexptr)
-// OBSOLETE {
-// OBSOLETE case '\'':
-// OBSOLETE case '\"':
-// OBSOLETE /* First try to match a string literal, which is any
-// OBSOLETE sequence of characters enclosed in matching single or double
-// OBSOLETE quotes, except that a single character inside single quotes
-// OBSOLETE is a character literal, so we have to catch that case also. */
-// OBSOLETE token = match_string_literal ();
-// OBSOLETE if (token != 0)
-// OBSOLETE {
-// OBSOLETE return (token);
-// OBSOLETE }
-// OBSOLETE if (*lexptr == '\'')
-// OBSOLETE {
-// OBSOLETE token = match_character_literal ();
-// OBSOLETE if (token != 0)
-// OBSOLETE {
-// OBSOLETE return (token);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE break;
-// OBSOLETE case 'C':
-// OBSOLETE case 'c':
-// OBSOLETE token = match_character_literal ();
-// OBSOLETE if (token != 0)
-// OBSOLETE {
-// OBSOLETE return (token);
-// OBSOLETE }
-// OBSOLETE break;
-// OBSOLETE case '$':
-// OBSOLETE yylval.sval.ptr = lexptr;
-// OBSOLETE do
-// OBSOLETE {
-// OBSOLETE lexptr++;
-// OBSOLETE }
-// OBSOLETE while (isalnum (*lexptr) || *lexptr == '_' || *lexptr == '$');
-// OBSOLETE yylval.sval.length = lexptr - yylval.sval.ptr;
-// OBSOLETE write_dollar_variable (yylval.sval);
-// OBSOLETE return GDB_VARIABLE;
-// OBSOLETE break;
-// OBSOLETE }
-// OBSOLETE /* See if it is a special token of length 2. */
-// OBSOLETE for (i = 0; i < sizeof (tokentab2) / sizeof (tokentab2[0]); i++)
-// OBSOLETE {
-// OBSOLETE if (STREQN (lexptr, tokentab2[i].operator, 2))
-// OBSOLETE {
-// OBSOLETE lexptr += 2;
-// OBSOLETE return (tokentab2[i].token);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE /* Look for single character cases which which could be the first
-// OBSOLETE character of some other multicharacter token, but aren't, or we
-// OBSOLETE would already have found it. */
-// OBSOLETE switch (*lexptr)
-// OBSOLETE {
-// OBSOLETE case '-':
-// OBSOLETE case ':':
-// OBSOLETE case '/':
-// OBSOLETE case '<':
-// OBSOLETE case '>':
-// OBSOLETE return (*lexptr++);
-// OBSOLETE }
-// OBSOLETE /* Look for a float literal before looking for an integer literal, so
-// OBSOLETE we match as much of the input stream as possible. */
-// OBSOLETE token = match_float_literal ();
-// OBSOLETE if (token != 0)
-// OBSOLETE {
-// OBSOLETE return (token);
-// OBSOLETE }
-// OBSOLETE token = match_bitstring_literal ();
-// OBSOLETE if (token != 0)
-// OBSOLETE {
-// OBSOLETE return (token);
-// OBSOLETE }
-// OBSOLETE token = match_integer_literal ();
-// OBSOLETE if (token != 0)
-// OBSOLETE {
-// OBSOLETE return (token);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Try to match a simple name string, and if a match is found, then
-// OBSOLETE further classify what sort of name it is and return an appropriate
-// OBSOLETE token. Note that attempting to match a simple name string consumes
-// OBSOLETE the token from lexptr, so we can't back out if we later find that
-// OBSOLETE we can't classify what sort of name it is. */
-// OBSOLETE
-// OBSOLETE inputname = match_simple_name_string ();
-// OBSOLETE
-// OBSOLETE if (inputname != NULL)
-// OBSOLETE {
-// OBSOLETE char *simplename = (char *) alloca (strlen (inputname) + 1);
-// OBSOLETE
-// OBSOLETE char *dptr = simplename, *sptr = inputname;
-// OBSOLETE for (; *sptr; sptr++)
-// OBSOLETE *dptr++ = isupper (*sptr) ? tolower (*sptr) : *sptr;
-// OBSOLETE *dptr = '\0';
-// OBSOLETE
-// OBSOLETE /* See if it is a reserved identifier. */
-// OBSOLETE for (i = 0; i < sizeof (idtokentab) / sizeof (idtokentab[0]); i++)
-// OBSOLETE {
-// OBSOLETE if (STREQ (simplename, idtokentab[i].operator))
-// OBSOLETE {
-// OBSOLETE return (idtokentab[i].token);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Look for other special tokens. */
-// OBSOLETE if (STREQ (simplename, "true"))
-// OBSOLETE {
-// OBSOLETE yylval.ulval = 1;
-// OBSOLETE return (BOOLEAN_LITERAL);
-// OBSOLETE }
-// OBSOLETE if (STREQ (simplename, "false"))
-// OBSOLETE {
-// OBSOLETE yylval.ulval = 0;
-// OBSOLETE return (BOOLEAN_LITERAL);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE sym = lookup_symbol (inputname, expression_context_block,
-// OBSOLETE VAR_NAMESPACE, (int *) NULL,
-// OBSOLETE (struct symtab **) NULL);
-// OBSOLETE if (sym == NULL && strcmp (inputname, simplename) != 0)
-// OBSOLETE {
-// OBSOLETE sym = lookup_symbol (simplename, expression_context_block,
-// OBSOLETE VAR_NAMESPACE, (int *) NULL,
-// OBSOLETE (struct symtab **) NULL);
-// OBSOLETE }
-// OBSOLETE if (sym != NULL)
-// OBSOLETE {
-// OBSOLETE yylval.ssym.stoken.ptr = NULL;
-// OBSOLETE yylval.ssym.stoken.length = 0;
-// OBSOLETE yylval.ssym.sym = sym;
-// OBSOLETE yylval.ssym.is_a_field_of_this = 0; /* FIXME, C++'ism */
-// OBSOLETE switch (SYMBOL_CLASS (sym))
-// OBSOLETE {
-// OBSOLETE case LOC_BLOCK:
-// OBSOLETE /* Found a procedure name. */
-// OBSOLETE return (GENERAL_PROCEDURE_NAME);
-// OBSOLETE case LOC_STATIC:
-// OBSOLETE /* Found a global or local static variable. */
-// OBSOLETE return (LOCATION_NAME);
-// OBSOLETE case LOC_REGISTER:
-// OBSOLETE case LOC_ARG:
-// OBSOLETE case LOC_REF_ARG:
-// OBSOLETE case LOC_REGPARM:
-// OBSOLETE case LOC_REGPARM_ADDR:
-// OBSOLETE case LOC_LOCAL:
-// OBSOLETE case LOC_LOCAL_ARG:
-// OBSOLETE case LOC_BASEREG:
-// OBSOLETE case LOC_BASEREG_ARG:
-// OBSOLETE if (innermost_block == NULL
-// OBSOLETE || contained_in (block_found, innermost_block))
-// OBSOLETE {
-// OBSOLETE innermost_block = block_found;
-// OBSOLETE }
-// OBSOLETE return (LOCATION_NAME);
-// OBSOLETE break;
-// OBSOLETE case LOC_CONST:
-// OBSOLETE case LOC_LABEL:
-// OBSOLETE return (LOCATION_NAME);
-// OBSOLETE break;
-// OBSOLETE case LOC_TYPEDEF:
-// OBSOLETE yylval.tsym.type = SYMBOL_TYPE (sym);
-// OBSOLETE return TYPENAME;
-// OBSOLETE case LOC_UNDEF:
-// OBSOLETE case LOC_CONST_BYTES:
-// OBSOLETE case LOC_OPTIMIZED_OUT:
-// OBSOLETE error ("Symbol \"%s\" names no location.", inputname);
-// OBSOLETE break;
-// OBSOLETE default:
-// OBSOLETE internal_error (__FILE__, __LINE__,
-// OBSOLETE "unhandled SYMBOL_CLASS in ch_lex()");
-// OBSOLETE break;
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE else if (!have_full_symbols () && !have_partial_symbols ())
-// OBSOLETE {
-// OBSOLETE error ("No symbol table is loaded. Use the \"file\" command.");
-// OBSOLETE }
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE error ("No symbol \"%s\" in current context.", inputname);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE /* Catch single character tokens which are not part of some
-// OBSOLETE longer token. */
-// OBSOLETE
-// OBSOLETE switch (*lexptr)
-// OBSOLETE {
-// OBSOLETE case '.': /* Not float for example. */
-// OBSOLETE lexptr++;
-// OBSOLETE while (isspace (*lexptr))
-// OBSOLETE lexptr++;
-// OBSOLETE inputname = match_simple_name_string ();
-// OBSOLETE if (!inputname)
-// OBSOLETE return '.';
-// OBSOLETE return DOT_FIELD_NAME;
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE return (ILLEGAL_TOKEN);
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE static void
-// OBSOLETE write_lower_upper_value (enum exp_opcode opcode, /* Either UNOP_LOWER or UNOP_UPPER */
-// OBSOLETE struct type *type)
-// OBSOLETE {
-// OBSOLETE if (type == NULL)
-// OBSOLETE write_exp_elt_opcode (opcode);
-// OBSOLETE else
-// OBSOLETE {
-// OBSOLETE struct type *result_type;
-// OBSOLETE LONGEST val = type_lower_upper (opcode, type, &result_type);
-// OBSOLETE write_exp_elt_opcode (OP_LONG);
-// OBSOLETE write_exp_elt_type (result_type);
-// OBSOLETE write_exp_elt_longcst (val);
-// OBSOLETE write_exp_elt_opcode (OP_LONG);
-// OBSOLETE }
-// OBSOLETE }
-// OBSOLETE
-// OBSOLETE void
-// OBSOLETE chill_error (char *msg)
-// OBSOLETE {
-// OBSOLETE /* Never used. */
-// OBSOLETE }