URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gdb-7.2/] [gdb/] [ada-operator.inc] - Rev 478
Go to most recent revision | Compare with Previous | Blame | View Log
/* Ada language operator definitions for GDB, the GNU debugger.Copyright (C) 1992, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,2007, 2008, 2009, 2010 Free Software Foundation, Inc.This file is part of GDB.This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 3 of the License, or(at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program. If not, see <http://www.gnu.org/licenses/>. *//* X IN A'RANGE(N). N is an immediate operand, surrounded byBINOP_IN_BOUNDS before and after. A is an array, X an indexvalue. Evaluates to true iff X is within range of the Nthdimension (1-based) of A. (A multi-dimensional arraytype is represented as array of array of ...) */BINOP_IN_BOUNDS = OP_EXTENDED0,/* X IN L .. U. True iff L <= X <= U. */TERNOP_IN_RANGE,/* Ada attributes ('Foo). */OP_ATR_FIRST,OP_ATR_LAST,OP_ATR_LENGTH,OP_ATR_IMAGE,OP_ATR_MAX,OP_ATR_MIN,OP_ATR_MODULUS,OP_ATR_POS,OP_ATR_SIZE,OP_ATR_TAG,OP_ATR_VAL,/* Ada type qualification. It is encoded as for UNOP_CAST, above,and denotes the TYPE'(EXPR) construct. */UNOP_QUAL,/* X IN TYPE. The `TYPE' argument is immediate, withUNOP_IN_RANGE before and after it. True iff X is a member oftype TYPE (typically a subrange). */UNOP_IN_RANGE,/* An aggregate. A single immediate operand, N>0, givesthe number of component specifications that follow. Theimmediate operand is followed by a second OP_AGGREGATE.Next come N component specifications. A componentspecification is either an OP_OTHERS (others=>...), anOP_CHOICES (for named associations), or other expression (forpositional aggregates only). Aggregates currentlyoccur only as the right sides of assignments. */OP_AGGREGATE,/* An others clause. Followed by a single expression. */OP_OTHERS,/* An aggregate component association. A single immediate operand, N,gives the number of choices that follow. This is followed by a secondOP_CHOICES operator. Next come N operands, each of which is anexpression, an OP_DISCRETE_RANGE, or an OP_NAME---the latterfor a simple name that must be a record component name and doesnot correspond to a single existing symbol. After the N choiceindicators comes an expression giving the value.In an aggregate such as (X => E1, ...), where X is a simplename, X could syntactically be either a component_selector_nameor an expression used as a discrete_choice, depending on theaggregate's type context. Since this is not known at parsingtime, we don't attempt to disambiguate X if it has multipledefinitions, but instead supply an OP_NAME. If X has a singledefinition, we represent it with an OP_VAR_VALUE, even thoughit may turn out to be within a record aggregate. Aggregateevaluation can use either OP_NAMEs or OP_VAR_VALUEs to get arecord field name, and can evaluate OP_VAR_VALUE normally toget its value as an expression. Unfortunately, we lose out incases where X has multiple meanings and is part of an arrayaggregate. I hope these are not common enough to annoy users,who can work around the problem in any case by puttingparentheses around X. */OP_CHOICES,/* A positional aggregate component association. The operator isfollowed by a single integer indicating the position in theaggregate (0-based), followed by a second OP_POSITIONAL. Nextfollows a single expression giving the component value. */OP_POSITIONAL,/* A range of values. Followed by two expressions giving theupper and lower bounds of the range. */OP_DISCRETE_RANGE,/* End marker */OP_ADA_LAST,
Go to most recent revision | Compare with Previous | Blame | View Log
