GDB (xrefs)
Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-7.10/gdb/d-exp.c File Reference
#include "defs.h"
#include <ctype.h>
#include "expression.h"
#include "value.h"
#include "parser-defs.h"
#include "language.h"
#include "c-lang.h"
#include "d-lang.h"
#include "bfd.h"
#include "symfile.h"
#include "objfiles.h"
#include "charset.h"
#include "block.h"
#include <stddef.h>

Go to the source code of this file.

Classes

union  YYSTYPE
 
union  yyalloc
 
struct  token
 

Macros

#define YYBISON   1
 
#define YYBISON_VERSION   "3.0.2"
 
#define YYSKELETON_NAME   "yacc.c"
 
#define YYPURE   0
 
#define YYPUSH   0
 
#define YYPULL   1
 
#define parse_type(ps)   builtin_type (parse_gdbarch (ps))
 
#define parse_d_type(ps)   builtin_d_type (parse_gdbarch (ps))
 
#define yymaxdepth   d_maxdepth
 
#define yyparse   d_parse_internal
 
#define yylex   d_lex
 
#define yyerror   d_error
 
#define yylval   d_lval
 
#define yychar   d_char
 
#define yydebug   d_debug
 
#define yypact   d_pact
 
#define yyr1   d_r1
 
#define yyr2   d_r2
 
#define yydef   d_def
 
#define yychk   d_chk
 
#define yypgo   d_pgo
 
#define yyact   d_act
 
#define yyexca   d_exca
 
#define yyerrflag   d_errflag
 
#define yynerrs   d_nerrs
 
#define yyps   d_ps
 
#define yypv   d_pv
 
#define yys   d_s
 
#define yy_yys   d_yys
 
#define yystate   d_state
 
#define yytmp   d_tmp
 
#define yyv   d_v
 
#define yy_yyv   d_yyv
 
#define yyval   d_val
 
#define yylloc   d_lloc
 
#define yyreds   d_reds /* With YYDEBUG defined */
 
#define yytoks   d_toks /* With YYDEBUG defined */
 
#define yyname   d_name /* With YYDEBUG defined */
 
#define yyrule   d_rule /* With YYDEBUG defined */
 
#define yylhs   d_yylhs
 
#define yylen   d_yylen
 
#define yydefre   d_yydefred
 
#define yydgoto   d_yydgoto
 
#define yysindex   d_yysindex
 
#define yyrindex   d_yyrindex
 
#define yygindex   d_yygindex
 
#define yytable   d_yytable
 
#define yycheck   d_yycheck
 
#define yyss   d_yyss
 
#define yysslim   d_yysslim
 
#define yyssp   d_yyssp
 
#define yystacksize   d_yystacksize
 
#define yyvs   d_yyvs
 
#define yyvsp   d_yyvsp
 
#define YYDEBUG   1 /* Default to yydebug support */
 
#define YYFPRINTF   parser_fprintf
 
#define YY_NULLPTR   0
 
#define YYERROR_VERBOSE   0
 
#define YYTOKENTYPE
 
#define IDENTIFIER   258
 
#define TYPENAME   259
 
#define COMPLETE   260
 
#define NAME_OR_INT   261
 
#define INTEGER_LITERAL   262
 
#define FLOAT_LITERAL   263
 
#define CHARACTER_LITERAL   264
 
#define STRING_LITERAL   265
 
#define ENTRY   266
 
#define ERROR   267
 
#define TRUE_KEYWORD   268
 
#define FALSE_KEYWORD   269
 
#define NULL_KEYWORD   270
 
#define SUPER_KEYWORD   271
 
#define CAST_KEYWORD   272
 
#define SIZEOF_KEYWORD   273
 
#define TYPEOF_KEYWORD   274
 
#define TYPEID_KEYWORD   275
 
#define INIT_KEYWORD   276
 
#define IMMUTABLE_KEYWORD   277
 
#define CONST_KEYWORD   278
 
#define SHARED_KEYWORD   279
 
#define STRUCT_KEYWORD   280
 
#define UNION_KEYWORD   281
 
#define CLASS_KEYWORD   282
 
#define INTERFACE_KEYWORD   283
 
#define ENUM_KEYWORD   284
 
#define TEMPLATE_KEYWORD   285
 
#define DELEGATE_KEYWORD   286
 
#define FUNCTION_KEYWORD   287
 
#define DOLLAR_VARIABLE   288
 
#define ASSIGN_MODIFY   289
 
#define OROR   290
 
#define ANDAND   291
 
#define EQUAL   292
 
#define NOTEQUAL   293
 
#define LEQ   294
 
#define GEQ   295
 
#define LSH   296
 
#define RSH   297
 
#define HATHAT   298
 
#define IDENTITY   299
 
#define NOTIDENTITY   300
 
#define INCREMENT   301
 
#define DECREMENT   302
 
#define DOTDOT   303
 
#define YYSTYPE_IS_TRIVIAL   1
 
#define YYSTYPE_IS_DECLARED   1
 
#define YYSIZE_T   size_t
 
#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)
 
#define YY_(Msgid)   Msgid
 
#define YY_ATTRIBUTE(Spec)   /* empty */
 
#define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
 
#define YY_ATTRIBUTE_UNUSED   YY_ATTRIBUTE ((__unused__))
 
#define YYUSE(E)   ((void) (E))
 
#define YY_INITIAL_VALUE(Value)   Value
 
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
 
#define YYSTACK_ALLOC   YYMALLOC
 
#define YYSTACK_FREE   YYFREE
 
#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM
 
#define YYMALLOC   xmalloc
 
#define YYFREE   xfree
 
#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)
 
#define YYSTACK_BYTES(N)
 
#define YYCOPY_NEEDED   1
 
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
 
#define YYCOPY(Dst, Src, Count)
 
#define YYFINAL   79
 
#define YYLAST   236
 
#define YYNTOKENS   70
 
#define YYNNTS   35
 
#define YYNRULES   111
 
#define YYNSTATES   175
 
#define YYUNDEFTOK   2
 
#define YYMAXUTOK   303
 
#define YYTRANSLATE(YYX)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
#define YYPACT_NINF   -86
 
#define yypact_value_is_default(Yystate)   (!!((Yystate) == (-86)))
 
#define YYTABLE_NINF   -1
 
#define yytable_value_is_error(Yytable_value)   0
 
#define yyerrok   (yyerrstatus = 0)
 
#define yyclearin   (yychar = YYEMPTY)
 
#define YYEMPTY   (-2)
 
#define YYEOF   0
 
#define YYACCEPT   goto yyacceptlab
 
#define YYABORT   goto yyabortlab
 
#define YYERROR   goto yyerrorlab
 
#define YYRECOVERING()   (!!yyerrstatus)
 
#define YYBACKUP(Token, Value)
 
#define YYTERROR   1
 
#define YYERRCODE   256
 
#define YYDPRINTF(Args)
 
#define YY_LOCATION_PRINT(File, Loc)   ((void) 0)
 
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 
#define YY_STACK_PRINT(Bottom, Top)
 
#define YY_REDUCE_PRINT(Rule)
 
#define YYINITDEPTH   200
 
#define YYMAXDEPTH   10000
 
#define YYPOPSTACK(N)    (yyvsp -= (N), yyssp -= (N))
 

Typedefs

typedef union YYSTYPE YYSTYPE
 
typedef unsigned char yytype_uint8
 
typedef signed char yytype_int8
 
typedef unsigned short int yytype_uint16
 
typedef short int yytype_int16
 

Enumerations

enum  yytokentype {
  INT = 258, NULL_PTR = 259, CHARLIT = 260, FLOAT = 261,
  TRUEKEYWORD = 262, FALSEKEYWORD = 263, COLONCOLON = 264, STRING = 265,
  NAME = 266, DOT_ID = 267, DOT_ALL = 268, SPECIAL_VARIABLE = 269,
  ASSIGN = 270, _AND_ = 271, OR = 272, XOR = 273,
  THEN = 274, ELSE = 275, NOTEQUAL = 276, LEQ = 277,
  GEQ = 278, IN = 279, DOTDOT = 280, UNARY = 281,
  MOD = 282, REM = 283, STARSTAR = 284, ABS = 285,
  NOT = 286, VAR = 287, ARROW = 288, TICK_ACCESS = 289,
  TICK_ADDRESS = 290, TICK_FIRST = 291, TICK_LAST = 292, TICK_LENGTH = 293,
  TICK_MAX = 294, TICK_MIN = 295, TICK_MODULUS = 296, TICK_POS = 297,
  TICK_RANGE = 298, TICK_SIZE = 299, TICK_TAG = 300, TICK_VAL = 301,
  NEW = 302, OTHERS = 303, INT = 258, FLOAT = 259,
  DECFLOAT = 260, STRING = 261, NSSTRING = 262, SELECTOR = 263,
  CHAR = 264, NAME = 265, UNKNOWN_CPP_NAME = 266, COMPLETE = 267,
  TYPENAME = 268, CLASSNAME = 269, OBJC_LBRAC = 270, NAME_OR_INT = 271,
  OPERATOR = 272, STRUCT = 273, CLASS = 274, UNION = 275,
  ENUM = 276, SIZEOF = 277, UNSIGNED = 278, COLONCOLON = 279,
  TEMPLATE = 280, ERROR = 281, NEW = 282, DELETE = 283,
  REINTERPRET_CAST = 284, DYNAMIC_CAST = 285, STATIC_CAST = 286, CONST_CAST = 287,
  ENTRY = 288, TYPEOF = 289, DECLTYPE = 290, TYPEID = 291,
  SIGNED_KEYWORD = 292, LONG = 293, SHORT = 294, INT_KEYWORD = 295,
  CONST_KEYWORD = 296, VOLATILE_KEYWORD = 297, DOUBLE_KEYWORD = 298, VARIABLE = 299,
  ASSIGN_MODIFY = 300, TRUEKEYWORD = 301, FALSEKEYWORD = 302, ABOVE_COMMA = 303,
  OROR = 304, ANDAND = 305, EQUAL = 306, NOTEQUAL = 307,
  LEQ = 308, GEQ = 309, LSH = 310, RSH = 311,
  UNARY = 312, INCREMENT = 313, DECREMENT = 314, ARROW = 315,
  ARROW_STAR = 316, DOT_STAR = 317, BLOCKNAME = 318, FILENAME = 319,
  DOTDOTDOT = 320, INT = 258, FLOAT = 259, NAME = 260,
  STRUCT = 261, CLASS = 262, UNION = 263, ENUM = 264,
  SIZEOF = 265, UNSIGNED = 266, COLONCOLON = 267, TEMPLATE = 268,
  ERROR = 269, NEW = 270, DELETE = 271, OPERATOR = 272,
  STATIC_CAST = 273, REINTERPRET_CAST = 274, DYNAMIC_CAST = 275, SIGNED_KEYWORD = 276,
  LONG = 277, SHORT = 278, INT_KEYWORD = 279, CONST_KEYWORD = 280,
  VOLATILE_KEYWORD = 281, DOUBLE_KEYWORD = 282, BOOL = 283, ELLIPSIS = 284,
  RESTRICT = 285, VOID = 286, FLOAT_KEYWORD = 287, CHAR = 288,
  WCHAR_T = 289, ASSIGN_MODIFY = 290, TRUEKEYWORD = 291, FALSEKEYWORD = 292,
  DEMANGLER_SPECIAL = 293, CONSTRUCTION_VTABLE = 294, CONSTRUCTION_IN = 295, OROR = 296,
  ANDAND = 297, EQUAL = 298, NOTEQUAL = 299, LEQ = 300,
  GEQ = 301, LSH = 302, RSH = 303, UNARY = 304,
  INCREMENT = 305, DECREMENT = 306, ARROW = 307, IDENTIFIER = 258,
  TYPENAME = 259, COMPLETE = 260, NAME_OR_INT = 261, INTEGER_LITERAL = 262,
  FLOAT_LITERAL = 263, CHARACTER_LITERAL = 264, STRING_LITERAL = 265, ENTRY = 266,
  ERROR = 267, TRUE_KEYWORD = 268, FALSE_KEYWORD = 269, NULL_KEYWORD = 270,
  SUPER_KEYWORD = 271, CAST_KEYWORD = 272, SIZEOF_KEYWORD = 273, TYPEOF_KEYWORD = 274,
  TYPEID_KEYWORD = 275, INIT_KEYWORD = 276, IMMUTABLE_KEYWORD = 277, CONST_KEYWORD = 278,
  SHARED_KEYWORD = 279, STRUCT_KEYWORD = 280, UNION_KEYWORD = 281, CLASS_KEYWORD = 282,
  INTERFACE_KEYWORD = 283, ENUM_KEYWORD = 284, TEMPLATE_KEYWORD = 285, DELEGATE_KEYWORD = 286,
  FUNCTION_KEYWORD = 287, DOLLAR_VARIABLE = 288, ASSIGN_MODIFY = 289, OROR = 290,
  ANDAND = 291, EQUAL = 292, NOTEQUAL = 293, LEQ = 294,
  GEQ = 295, LSH = 296, RSH = 297, HATHAT = 298,
  IDENTITY = 299, NOTIDENTITY = 300, INCREMENT = 301, DECREMENT = 302,
  DOTDOT = 303, INT = 258, FLOAT = 259, STRING_LITERAL = 260,
  BOOLEAN_LITERAL = 261, NAME = 262, TYPENAME = 263, NAME_OR_INT = 264,
  SIZEOF = 265, ERROR = 266, INT_KEYWORD = 267, INT_S2_KEYWORD = 268,
  LOGICAL_S1_KEYWORD = 269, LOGICAL_S2_KEYWORD = 270, LOGICAL_S8_KEYWORD = 271, LOGICAL_KEYWORD = 272,
  REAL_KEYWORD = 273, REAL_S8_KEYWORD = 274, REAL_S16_KEYWORD = 275, COMPLEX_S8_KEYWORD = 276,
  COMPLEX_S16_KEYWORD = 277, COMPLEX_S32_KEYWORD = 278, BOOL_AND = 279, BOOL_OR = 280,
  BOOL_NOT = 281, CHARACTER = 282, VARIABLE = 283, ASSIGN_MODIFY = 284,
  ABOVE_COMMA = 285, EQUAL = 286, NOTEQUAL = 287, LESSTHAN = 288,
  GREATERTHAN = 289, LEQ = 290, GEQ = 291, LSH = 292,
  RSH = 293, STARSTAR = 294, UNARY = 295, INT = 258,
  FLOAT = 259, RAW_STRING = 260, STRING = 261, CHAR = 262,
  NAME = 263, TYPENAME = 264, COMPLETE = 265, NAME_OR_INT = 266,
  TRUE_KEYWORD = 267, FALSE_KEYWORD = 268, STRUCT_KEYWORD = 269, INTERFACE_KEYWORD = 270,
  TYPE_KEYWORD = 271, CHAN_KEYWORD = 272, SIZEOF_KEYWORD = 273, LEN_KEYWORD = 274,
  CAP_KEYWORD = 275, NEW_KEYWORD = 276, IOTA_KEYWORD = 277, NIL_KEYWORD = 278,
  CONST_KEYWORD = 279, DOTDOTDOT = 280, ENTRY = 281, ERROR = 282,
  BYTE_KEYWORD = 283, DOLLAR_VARIABLE = 284, ASSIGN_MODIFY = 285, ABOVE_COMMA = 286,
  OROR = 287, ANDAND = 288, ANDNOT = 289, EQUAL = 290,
  NOTEQUAL = 291, LEQ = 292, GEQ = 293, LSH = 294,
  RSH = 295, UNARY = 296, INCREMENT = 297, DECREMENT = 298,
  LEFT_ARROW = 299, INTEGER_LITERAL = 258, FLOATING_POINT_LITERAL = 259, IDENTIFIER = 260,
  STRING_LITERAL = 261, BOOLEAN_LITERAL = 262, TYPENAME = 263, NAME_OR_INT = 264,
  ERROR = 265, LONG = 266, SHORT = 267, BYTE = 268,
  INT = 269, CHAR = 270, BOOLEAN = 271, DOUBLE = 272,
  FLOAT = 273, VARIABLE = 274, ASSIGN_MODIFY = 275, SUPER = 276,
  NEW = 277, OROR = 278, ANDAND = 279, EQUAL = 280,
  NOTEQUAL = 281, LEQ = 282, GEQ = 283, LSH = 284,
  RSH = 285, INCREMENT = 286, DECREMENT = 287, INT = 258,
  HEX = 259, ERROR = 260, UINT = 261, M2_TRUE = 262,
  M2_FALSE = 263, CHAR = 264, FLOAT = 265, STRING = 266,
  NAME = 267, BLOCKNAME = 268, IDENT = 269, VARNAME = 270,
  TYPENAME = 271, SIZE = 272, CAP = 273, ORD = 274,
  HIGH = 275, ABS = 276, MIN_FUNC = 277, MAX_FUNC = 278,
  FLOAT_FUNC = 279, VAL = 280, CHR = 281, ODD = 282,
  TRUNC = 283, TSIZE = 284, INC = 285, DEC = 286,
  INCL = 287, EXCL = 288, COLONCOLON = 289, INTERNAL_VAR = 290,
  ABOVE_COMMA = 291, ASSIGN = 292, LEQ = 293, GEQ = 294,
  NOTEQUAL = 295, IN = 296, OROR = 297, LOGICAL_AND = 298,
  DIV = 299, MOD = 300, UNARY = 301, DOT = 302,
  NOT = 303, QID = 304, INT = 258, FLOAT = 259,
  STRING = 260, FIELDNAME = 261, COMPLETE = 262, NAME = 263,
  TYPENAME = 264, NAME_OR_INT = 265, STRUCT = 266, CLASS = 267,
  SIZEOF = 268, COLONCOLON = 269, ERROR = 270, VARIABLE = 271,
  THIS = 272, TRUEKEYWORD = 273, FALSEKEYWORD = 274, ABOVE_COMMA = 275,
  ASSIGN = 276, NOT = 277, OR = 278, XOR = 279,
  ANDAND = 280, NOTEQUAL = 281, LEQ = 282, GEQ = 283,
  LSH = 284, RSH = 285, DIV = 286, MOD = 287,
  UNARY = 288, INCREMENT = 289, DECREMENT = 290, ARROW = 291,
  BLOCKNAME = 292
}
 

Functions

int yyparse (void)
 
static int yylex (void)
 
void yyerror (char *)
 
static int parse_number (struct parser_state *, const char *, int, int, YYSTYPE *)
 
static void push_expression_name (struct parser_state *, struct stoken)
 
void * xmalloc (YYSIZE_T)
 
void xfree (void *)
 
static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep)
 
static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep)
 
static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
 
static void yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
 
static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
 
static int parse_string_or_char (const char *tokptr, const char **outptr, struct typed_stoken *value, int *host_chars)
 
static struct typed_type_from_name (struct stoken name)
 
static struct typed_module_from_name (struct stoken name)
 
static int push_variable (struct parser_state *ps, struct stoken name)
 
static void push_fieldnames (struct parser_state *ps, struct stoken name)
 
static void push_type_name (struct parser_state *ps, struct type *type, struct stoken name, int dot_index)
 
static int push_module_name (struct parser_state *ps, struct type *module, struct stoken name, int dot_index)
 
int d_parse (struct parser_state *par_state)
 

Variables

static struct parser_statepstate = NULL
 
int yydebug
 
YYSTYPE yylval
 
static const yytype_uint8 yytranslate []
 
static const yytype_uint16 yyrline []
 
static const char *const yytname []
 
static const yytype_int16 yypact []
 
static const yytype_uint8 yydefact []
 
static const yytype_int8 yypgoto []
 
static const yytype_int16 yydefgoto []
 
static const yytype_uint8 yytable []
 
static const yytype_int16 yycheck []
 
static const yytype_uint8 yystos []
 
static const yytype_uint8 yyr1 []
 
static const yytype_uint8 yyr2 []
 
int yychar
 
int yynerrs
 
static struct obstack tempbuf
 
static int tempbuf_init
 
static const struct token tokentab3 []
 
static const struct token tokentab2 []
 
static const struct token ident_tokens []
 
static int saw_name_at_eof
 
static int last_was_structop
 

Macro Definition Documentation

#define ANDAND   291

Definition at line 271 of file d-exp.c.

#define ASSIGN_MODIFY   289

Definition at line 269 of file d-exp.c.

#define CAST_KEYWORD   272

Definition at line 252 of file d-exp.c.

#define CHARACTER_LITERAL   264

Definition at line 244 of file d-exp.c.

Referenced by parse_string_or_char(), and yylex().

#define CLASS_KEYWORD   282

Definition at line 262 of file d-exp.c.

#define COMPLETE   260

Definition at line 240 of file d-exp.c.

Referenced by yylex().

#define CONST_KEYWORD   278

Definition at line 258 of file d-exp.c.

#define DECREMENT   302

Definition at line 282 of file d-exp.c.

#define DELEGATE_KEYWORD   286

Definition at line 266 of file d-exp.c.

#define DOLLAR_VARIABLE   288

Definition at line 268 of file d-exp.c.

Referenced by yylex().

#define DOTDOT   303

Definition at line 283 of file d-exp.c.

#define ENTRY   266

Definition at line 246 of file d-exp.c.

Referenced by yylex().

#define ENUM_KEYWORD   284

Definition at line 264 of file d-exp.c.

#define EQUAL   292

Definition at line 272 of file d-exp.c.

#define ERROR   267

Definition at line 247 of file d-exp.c.

Referenced by parse_number(), and yylex().

#define FALSE_KEYWORD   269

Definition at line 249 of file d-exp.c.

#define FLOAT_LITERAL   263

Definition at line 243 of file d-exp.c.

Referenced by parse_number().

#define FUNCTION_KEYWORD   287

Definition at line 267 of file d-exp.c.

#define GEQ   295

Definition at line 275 of file d-exp.c.

#define HATHAT   298

Definition at line 278 of file d-exp.c.

#define IDENTIFIER   258

Definition at line 238 of file d-exp.c.

Referenced by yylex().

#define IDENTITY   299

Definition at line 279 of file d-exp.c.

#define IMMUTABLE_KEYWORD   277

Definition at line 257 of file d-exp.c.

#define INCREMENT   301

Definition at line 281 of file d-exp.c.

#define INIT_KEYWORD   276

Definition at line 256 of file d-exp.c.

#define INTEGER_LITERAL   262

Definition at line 242 of file d-exp.c.

Referenced by parse_number(), and yylex().

#define INTERFACE_KEYWORD   283

Definition at line 263 of file d-exp.c.

#define LEQ   294

Definition at line 274 of file d-exp.c.

#define LSH   296

Definition at line 276 of file d-exp.c.

#define NAME_OR_INT   261

Definition at line 241 of file d-exp.c.

Referenced by yylex().

#define NOTEQUAL   293

Definition at line 273 of file d-exp.c.

#define NOTIDENTITY   300

Definition at line 280 of file d-exp.c.

#define NULL_KEYWORD   270

Definition at line 250 of file d-exp.c.

#define OROR   290

Definition at line 270 of file d-exp.c.

#define parse_d_type (   ps)    builtin_d_type (parse_gdbarch (ps))

Definition at line 83 of file d-exp.c.

Referenced by parse_number(), and yyparse().

#define parse_type (   ps)    builtin_type (parse_gdbarch (ps))

Definition at line 82 of file d-exp.c.

#define RSH   297

Definition at line 277 of file d-exp.c.

#define SHARED_KEYWORD   279

Definition at line 259 of file d-exp.c.

#define SIZEOF_KEYWORD   273

Definition at line 253 of file d-exp.c.

#define STRING_LITERAL   265

Definition at line 245 of file d-exp.c.

Referenced by parse_string_or_char().

#define STRUCT_KEYWORD   280

Definition at line 260 of file d-exp.c.

#define SUPER_KEYWORD   271

Definition at line 251 of file d-exp.c.

#define TEMPLATE_KEYWORD   285

Definition at line 265 of file d-exp.c.

#define TRUE_KEYWORD   268

Definition at line 248 of file d-exp.c.

#define TYPEID_KEYWORD   275

Definition at line 255 of file d-exp.c.

#define TYPENAME   259

Definition at line 239 of file d-exp.c.

Referenced by yylex().

#define TYPEOF_KEYWORD   274

Definition at line 254 of file d-exp.c.

#define UNION_KEYWORD   281

Definition at line 261 of file d-exp.c.

#define YY_ (   Msgid)    Msgid

Definition at line 387 of file d-exp.c.

Referenced by yyparse().

#define YY_ATTRIBUTE (   Spec)    /* empty */

Definition at line 397 of file d-exp.c.

#define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))

Definition at line 402 of file d-exp.c.

#define YY_ATTRIBUTE_UNUSED   YY_ATTRIBUTE ((__unused__))

Definition at line 406 of file d-exp.c.

#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

Definition at line 437 of file d-exp.c.

Referenced by yydestruct(), and yyparse().

#define YY_IGNORE_MAYBE_UNINITIALIZED_END

Definition at line 438 of file d-exp.c.

Referenced by yydestruct(), and yyparse().

#define YY_INITIAL_VALUE (   Value)    Value

Definition at line 434 of file d-exp.c.

#define YY_LOCATION_PRINT (   File,
  Loc 
)    ((void) 0)

Definition at line 941 of file d-exp.c.

#define YY_NULLPTR   0

Definition at line 163 of file d-exp.c.

#define YY_REDUCE_PRINT (   Rule)
Value:
do { \
yy_reduce_print (yyssp, yyvsp, Rule); \
} while (0)
#define yydebug
Definition: d-exp.c:98
if(!(yy_init))
Definition: ada-lex.c:1072
#define yyvsp
Definition: d-exp.c:137
#define yyssp
Definition: d-exp.c:134

Definition at line 1038 of file d-exp.c.

Referenced by yyparse().

#define YY_STACK_PRINT (   Bottom,
  Top 
)
Value:
do { \
yy_stack_print ((Bottom), (Top)); \
} while (0)
#define yydebug
Definition: d-exp.c:98
if(!(yy_init))
Definition: ada-lex.c:1072

Definition at line 1007 of file d-exp.c.

Referenced by yyparse().

#define YY_SYMBOL_PRINT (   Title,
  Type,
  Value,
  Location 
)
Value:
do { \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yy_symbol_print (stderr, \
Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
#define yydebug
Definition: d-exp.c:98
if(!(yy_init))
Definition: ada-lex.c:1072

Definition at line 945 of file d-exp.c.

Referenced by yydestruct(), and yyparse().

#define yy_yys   d_yys

Definition at line 112 of file d-exp.c.

#define yy_yyv   d_yyv

Definition at line 116 of file d-exp.c.

#define YYABORT   goto yyabortlab

Definition at line 896 of file d-exp.c.

Referenced by yyparse().

#define YYACCEPT   goto yyacceptlab

Definition at line 895 of file d-exp.c.

Referenced by yyparse().

#define yyact   d_act

Definition at line 105 of file d-exp.c.

#define YYBACKUP (   Token,
  Value 
)
Value:
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
#define yylen
Definition: d-exp.c:124
if(!(yy_init))
Definition: ada-lex.c:1072
#define YY_(Msgid)
Definition: d-exp.c:387
#define yyssp
Definition: d-exp.c:134
#define yychar
Definition: d-exp.c:97
#define YYEMPTY
Definition: d-exp.c:892

Definition at line 902 of file d-exp.c.

#define YYBISON   1

Definition at line 44 of file d-exp.c.

#define YYBISON_VERSION   "3.0.2"

Definition at line 47 of file d-exp.c.

#define yychar   d_char

Definition at line 97 of file d-exp.c.

#define yycheck   d_yycheck

Definition at line 131 of file d-exp.c.

Referenced by yyparse().

#define yychk   d_chk

Definition at line 103 of file d-exp.c.

#define yyclearin   (yychar = YYEMPTY)

Definition at line 891 of file d-exp.c.

#define YYCOPY (   Dst,
  Src,
  Count 
)
Value:
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
while (0)

Definition at line 560 of file d-exp.c.

#define YYCOPY_NEEDED   1

Definition at line 532 of file d-exp.c.

#define yydebug   d_debug

Definition at line 98 of file d-exp.c.

Referenced by d_parse().

#define YYDEBUG   1 /* Default to yydebug support */

Definition at line 140 of file d-exp.c.

#define yydef   d_def

Definition at line 102 of file d-exp.c.

#define yydefre   d_yydefred

Definition at line 125 of file d-exp.c.

#define yydgoto   d_yydgoto

Definition at line 126 of file d-exp.c.

#define YYDPRINTF (   Args)
Value:
do { \
YYFPRINTF Args; \
} while (0)
#define yydebug
Definition: d-exp.c:98
if(!(yy_init))
Definition: ada-lex.c:1072

Definition at line 933 of file d-exp.c.

Referenced by yyparse().

#define YYEMPTY   (-2)

Definition at line 892 of file d-exp.c.

Referenced by yyparse().

#define YYEOF   0

Definition at line 893 of file d-exp.c.

Referenced by yyparse().

#define YYERRCODE   256

Definition at line 921 of file d-exp.c.

#define yyerrflag   d_errflag

Definition at line 107 of file d-exp.c.

#define yyerrok   (yyerrstatus = 0)

Definition at line 890 of file d-exp.c.

#define yyerror   d_error

Definition at line 95 of file d-exp.c.

Referenced by yyparse().

#define YYERROR   goto yyerrorlab

Definition at line 897 of file d-exp.c.

#define YYERROR_VERBOSE   0

Definition at line 172 of file d-exp.c.

#define yyexca   d_exca

Definition at line 106 of file d-exp.c.

#define YYFINAL   79

Definition at line 573 of file d-exp.c.

Referenced by yyparse().

#define YYFPRINTF   parser_fprintf

Definition at line 143 of file d-exp.c.

Referenced by yy_reduce_print(), yy_stack_print(), and yy_symbol_print().

#define YYFREE   xfree

Definition at line 503 of file d-exp.c.

#define yygindex   d_yygindex

Definition at line 129 of file d-exp.c.

#define YYINITDEPTH   200

Definition at line 1057 of file d-exp.c.

Referenced by yyparse().

#define YYLAST   236

Definition at line 575 of file d-exp.c.

Referenced by yyparse().

#define yylen   d_yylen

Definition at line 124 of file d-exp.c.

Referenced by yyparse().

#define yylex   d_lex

Definition at line 94 of file d-exp.c.

Referenced by yyparse().

#define yylhs   d_yylhs

Definition at line 123 of file d-exp.c.

#define yylloc   d_lloc

Definition at line 118 of file d-exp.c.

Referenced by yyparse().

#define yylval   d_lval

Definition at line 96 of file d-exp.c.

Referenced by yyparse().

#define YYMALLOC   xmalloc

Definition at line 497 of file d-exp.c.

#define yymaxdepth   d_maxdepth

Definition at line 92 of file d-exp.c.

#define YYMAXDEPTH   10000

Definition at line 1068 of file d-exp.c.

Referenced by yyparse().

#define YYMAXUTOK   303

Definition at line 589 of file d-exp.c.

#define yyname   d_name /* With YYDEBUG defined */

Definition at line 121 of file d-exp.c.

#define yynerrs   d_nerrs

Definition at line 108 of file d-exp.c.

Referenced by yyparse().

#define YYNNTS   35

Definition at line 580 of file d-exp.c.

#define YYNRULES   111

Definition at line 582 of file d-exp.c.

#define YYNSTATES   175

Definition at line 584 of file d-exp.c.

#define YYNTOKENS   70

Definition at line 578 of file d-exp.c.

Referenced by yy_symbol_print(), yy_symbol_value_print(), and yyparse().

#define yypact   d_pact

Definition at line 99 of file d-exp.c.

Referenced by yyparse().

#define YYPACT_NINF   -86

Definition at line 695 of file d-exp.c.

#define yypact_value_is_default (   Yystate)    (!!((Yystate) == (-86)))

Definition at line 697 of file d-exp.c.

Referenced by yyparse().

#define yyparse   d_parse_internal

Definition at line 93 of file d-exp.c.

Referenced by d_parse().

#define yypgo   d_pgo

Definition at line 104 of file d-exp.c.

#define YYPOPSTACK (   N)    (yyvsp -= (N), yyssp -= (N))

Referenced by yyparse().

#define yyps   d_ps

Definition at line 109 of file d-exp.c.

#define YYPULL   1

Definition at line 59 of file d-exp.c.

#define YYPURE   0

Definition at line 53 of file d-exp.c.

#define YYPUSH   0

Definition at line 56 of file d-exp.c.

#define yypv   d_pv

Definition at line 110 of file d-exp.c.

#define yyr1   d_r1

Definition at line 100 of file d-exp.c.

Referenced by yyparse().

#define yyr2   d_r2

Definition at line 101 of file d-exp.c.

Referenced by yy_reduce_print(), and yyparse().

#define YYRECOVERING ( )    (!!yyerrstatus)

Definition at line 900 of file d-exp.c.

#define yyreds   d_reds /* With YYDEBUG defined */

Definition at line 119 of file d-exp.c.

#define yyrindex   d_yyrindex

Definition at line 128 of file d-exp.c.

#define yyrule   d_rule /* With YYDEBUG defined */

Definition at line 122 of file d-exp.c.

Referenced by yy_reduce_print().

#define yys   d_s

Definition at line 111 of file d-exp.c.

#define yysindex   d_yysindex

Definition at line 127 of file d-exp.c.

#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)

Definition at line 377 of file d-exp.c.

#define YYSIZE_T   size_t

Definition at line 371 of file d-exp.c.

Referenced by yyparse().

#define YYSKELETON_NAME   "yacc.c"

Definition at line 50 of file d-exp.c.

#define yyss   d_yyss

Definition at line 132 of file d-exp.c.

Referenced by yyparse().

#define yysslim   d_yysslim

Definition at line 133 of file d-exp.c.

#define yyssp   d_yyssp

Definition at line 134 of file d-exp.c.

Referenced by yyparse().

#define YYSTACK_ALLOC   YYMALLOC

Definition at line 483 of file d-exp.c.

Referenced by yyparse().

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Definition at line 486 of file d-exp.c.

#define YYSTACK_BYTES (   N)
Value:
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
union YYSTYPE YYSTYPE
Definition: d-exp.c:287
short int yytype_int16
Definition: ada-exp.c:395
#define YYSTACK_GAP_MAXIMUM
Definition: d-exp.c:524

Definition at line 528 of file d-exp.c.

Referenced by yyparse().

#define YYSTACK_FREE   YYFREE

Definition at line 484 of file d-exp.c.

Referenced by yyparse().

#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)

Definition at line 524 of file d-exp.c.

#define YYSTACK_RELOCATE (   Stack_alloc,
  Stack 
)
Value:
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (0)
#define yystacksize
Definition: d-exp.c:135
#define YYSTACK_GAP_MAXIMUM
Definition: d-exp.c:524

Definition at line 539 of file d-exp.c.

Referenced by yyparse().

#define yystacksize   d_yystacksize

Definition at line 135 of file d-exp.c.

Referenced by yyparse().

#define yystate   d_state

Definition at line 113 of file d-exp.c.

Referenced by yyparse().

#define YYSTYPE_IS_DECLARED   1

Definition at line 315 of file d-exp.c.

#define YYSTYPE_IS_TRIVIAL   1

Definition at line 314 of file d-exp.c.

#define yytable   d_yytable

Definition at line 130 of file d-exp.c.

Referenced by yyparse().

#define YYTABLE_NINF   -1

Definition at line 700 of file d-exp.c.

#define yytable_value_is_error (   Yytable_value)    0

Definition at line 702 of file d-exp.c.

Referenced by yyparse().

#define YYTERROR   1

Definition at line 920 of file d-exp.c.

Referenced by yyparse().

#define yytmp   d_tmp

Definition at line 114 of file d-exp.c.

#define YYTOKENTYPE

Definition at line 186 of file d-exp.c.

#define yytoks   d_toks /* With YYDEBUG defined */

Definition at line 120 of file d-exp.c.

#define YYTRANSLATE (   YYX)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

Definition at line 591 of file d-exp.c.

Referenced by yyparse().

#define YYUNDEFTOK   2

Definition at line 588 of file d-exp.c.

#define YYUSE (   E)    ((void) (E))

Definition at line 420 of file d-exp.c.

Referenced by yy_symbol_value_print(), and yydestruct().

#define yyv   d_v

Definition at line 115 of file d-exp.c.

#define yyval   d_val

Definition at line 117 of file d-exp.c.

Referenced by yyparse().

#define yyvs   d_yyvs

Definition at line 136 of file d-exp.c.

Referenced by yyparse().

#define yyvsp   d_yyvsp

Definition at line 137 of file d-exp.c.

Referenced by yyparse().

Typedef Documentation

typedef union YYSTYPE YYSTYPE

Definition at line 287 of file d-exp.c.

typedef short int yytype_int16

Definition at line 361 of file d-exp.c.

typedef signed char yytype_int8

Definition at line 349 of file d-exp.c.

typedef unsigned short int yytype_uint16

Definition at line 355 of file d-exp.c.

typedef unsigned char yytype_uint8

Definition at line 343 of file d-exp.c.

Enumeration Type Documentation

Enumerator
INT 
NULL_PTR 
CHARLIT 
FLOAT 
TRUEKEYWORD 
FALSEKEYWORD 
COLONCOLON 
STRING 
NAME 
DOT_ID 
DOT_ALL 
SPECIAL_VARIABLE 
ASSIGN 
_AND_ 
OR 
XOR 
THEN 
ELSE 
NOTEQUAL 
LEQ 
GEQ 
IN 
DOTDOT 
UNARY 
MOD 
REM 
STARSTAR 
ABS 
NOT 
VAR 
ARROW 
TICK_ACCESS 
TICK_ADDRESS 
TICK_FIRST 
TICK_LAST 
TICK_LENGTH 
TICK_MAX 
TICK_MIN 
TICK_MODULUS 
TICK_POS 
TICK_RANGE 
TICK_SIZE 
TICK_TAG 
TICK_VAL 
NEW 
OTHERS 
INT 
FLOAT 
DECFLOAT 
STRING 
NSSTRING 
SELECTOR 
CHAR 
NAME 
UNKNOWN_CPP_NAME 
COMPLETE 
TYPENAME 
CLASSNAME 
OBJC_LBRAC 
NAME_OR_INT 
OPERATOR 
STRUCT 
CLASS 
UNION 
ENUM 
SIZEOF 
UNSIGNED 
COLONCOLON 
TEMPLATE 
ERROR 
NEW 
DELETE 
REINTERPRET_CAST 
DYNAMIC_CAST 
STATIC_CAST 
CONST_CAST 
ENTRY 
TYPEOF 
DECLTYPE 
TYPEID 
SIGNED_KEYWORD 
LONG 
SHORT 
INT_KEYWORD 
CONST_KEYWORD 
VOLATILE_KEYWORD 
DOUBLE_KEYWORD 
VARIABLE 
ASSIGN_MODIFY 
TRUEKEYWORD 
FALSEKEYWORD 
ABOVE_COMMA 
OROR 
ANDAND 
EQUAL 
NOTEQUAL 
LEQ 
GEQ 
LSH 
RSH 
UNARY 
INCREMENT 
DECREMENT 
ARROW 
ARROW_STAR 
DOT_STAR 
BLOCKNAME 
FILENAME 
DOTDOTDOT 
INT 
FLOAT 
NAME 
STRUCT 
CLASS 
UNION 
ENUM 
SIZEOF 
UNSIGNED 
COLONCOLON 
TEMPLATE 
ERROR 
NEW 
DELETE 
OPERATOR 
STATIC_CAST 
REINTERPRET_CAST 
DYNAMIC_CAST 
SIGNED_KEYWORD 
LONG 
SHORT 
INT_KEYWORD 
CONST_KEYWORD 
VOLATILE_KEYWORD 
DOUBLE_KEYWORD 
BOOL 
ELLIPSIS 
RESTRICT 
VOID 
FLOAT_KEYWORD 
CHAR 
WCHAR_T 
ASSIGN_MODIFY 
TRUEKEYWORD 
FALSEKEYWORD 
DEMANGLER_SPECIAL 
CONSTRUCTION_VTABLE 
CONSTRUCTION_IN 
OROR 
ANDAND 
EQUAL 
NOTEQUAL 
LEQ 
GEQ 
LSH 
RSH 
UNARY 
INCREMENT 
DECREMENT 
ARROW 
IDENTIFIER 
TYPENAME 
COMPLETE 
NAME_OR_INT 
INTEGER_LITERAL 
FLOAT_LITERAL 
CHARACTER_LITERAL 
STRING_LITERAL 
ENTRY 
ERROR 
TRUE_KEYWORD 
FALSE_KEYWORD 
NULL_KEYWORD 
SUPER_KEYWORD 
CAST_KEYWORD 
SIZEOF_KEYWORD 
TYPEOF_KEYWORD 
TYPEID_KEYWORD 
INIT_KEYWORD 
IMMUTABLE_KEYWORD 
CONST_KEYWORD 
SHARED_KEYWORD 
STRUCT_KEYWORD 
UNION_KEYWORD 
CLASS_KEYWORD 
INTERFACE_KEYWORD 
ENUM_KEYWORD 
TEMPLATE_KEYWORD 
DELEGATE_KEYWORD 
FUNCTION_KEYWORD 
DOLLAR_VARIABLE 
ASSIGN_MODIFY 
OROR 
ANDAND 
EQUAL 
NOTEQUAL 
LEQ 
GEQ 
LSH 
RSH 
HATHAT 
IDENTITY 
NOTIDENTITY 
INCREMENT 
DECREMENT 
DOTDOT 
INT 
FLOAT 
STRING_LITERAL 
BOOLEAN_LITERAL 
NAME 
TYPENAME 
NAME_OR_INT 
SIZEOF 
ERROR 
INT_KEYWORD 
INT_S2_KEYWORD 
LOGICAL_S1_KEYWORD 
LOGICAL_S2_KEYWORD 
LOGICAL_S8_KEYWORD 
LOGICAL_KEYWORD 
REAL_KEYWORD 
REAL_S8_KEYWORD 
REAL_S16_KEYWORD 
COMPLEX_S8_KEYWORD 
COMPLEX_S16_KEYWORD 
COMPLEX_S32_KEYWORD 
BOOL_AND 
BOOL_OR 
BOOL_NOT 
CHARACTER 
VARIABLE 
ASSIGN_MODIFY 
ABOVE_COMMA 
EQUAL 
NOTEQUAL 
LESSTHAN 
GREATERTHAN 
LEQ 
GEQ 
LSH 
RSH 
STARSTAR 
UNARY 
INT 
FLOAT 
RAW_STRING 
STRING 
CHAR 
NAME 
TYPENAME 
COMPLETE 
NAME_OR_INT 
TRUE_KEYWORD 
FALSE_KEYWORD 
STRUCT_KEYWORD 
INTERFACE_KEYWORD 
TYPE_KEYWORD 
CHAN_KEYWORD 
SIZEOF_KEYWORD 
LEN_KEYWORD 
CAP_KEYWORD 
NEW_KEYWORD 
IOTA_KEYWORD 
NIL_KEYWORD 
CONST_KEYWORD 
DOTDOTDOT 
ENTRY 
ERROR 
BYTE_KEYWORD 
DOLLAR_VARIABLE 
ASSIGN_MODIFY 
ABOVE_COMMA 
OROR 
ANDAND 
ANDNOT 
EQUAL 
NOTEQUAL 
LEQ 
GEQ 
LSH 
RSH 
UNARY 
INCREMENT 
DECREMENT 
LEFT_ARROW 
INTEGER_LITERAL 
FLOATING_POINT_LITERAL 
IDENTIFIER 
STRING_LITERAL 
BOOLEAN_LITERAL 
TYPENAME 
NAME_OR_INT 
ERROR 
LONG 
SHORT 
BYTE 
INT 
CHAR 
BOOLEAN 
DOUBLE 
FLOAT 
VARIABLE 
ASSIGN_MODIFY 
SUPER 
NEW 
OROR 
ANDAND 
EQUAL 
NOTEQUAL 
LEQ 
GEQ 
LSH 
RSH 
INCREMENT 
DECREMENT 
INT 
HEX 
ERROR 
UINT 
M2_TRUE 
M2_FALSE 
CHAR 
FLOAT 
STRING 
NAME 
BLOCKNAME 
IDENT 
VARNAME 
TYPENAME 
SIZE 
CAP 
ORD 
HIGH 
ABS 
MIN_FUNC 
MAX_FUNC 
FLOAT_FUNC 
VAL 
CHR 
ODD 
TRUNC 
TSIZE 
INC 
DEC 
INCL 
EXCL 
COLONCOLON 
INTERNAL_VAR 
ABOVE_COMMA 
ASSIGN 
LEQ 
GEQ 
NOTEQUAL 
IN 
OROR 
LOGICAL_AND 
DIV 
MOD 
UNARY 
DOT 
NOT 
QID 
INT 
FLOAT 
STRING 
FIELDNAME 
COMPLETE 
NAME 
TYPENAME 
NAME_OR_INT 
STRUCT 
CLASS 
SIZEOF 
COLONCOLON 
ERROR 
VARIABLE 
THIS 
TRUEKEYWORD 
FALSEKEYWORD 
ABOVE_COMMA 
ASSIGN 
NOT 
OR 
XOR 
ANDAND 
NOTEQUAL 
LEQ 
GEQ 
LSH 
RSH 
DIV 
MOD 
UNARY 
INCREMENT 
DECREMENT 
ARROW 
BLOCKNAME 

Definition at line 187 of file d-exp.c.

Function Documentation

static struct type* d_module_from_name ( struct stoken  name)
static

Definition at line 2799 of file d-exp.c.

References copy_name(), expression_context_block, lookup_symbol(), MODULE_DOMAIN, and SYMBOL_TYPE.

Referenced by push_expression_name().

int d_parse ( struct parser_state par_state)
static struct type* d_type_from_name ( struct stoken  name)
static

Definition at line 2783 of file d-exp.c.

References copy_name(), expression_context_block, lookup_symbol(), STRUCT_DOMAIN, and SYMBOL_TYPE.

Referenced by push_expression_name().

static int parse_number ( struct parser_state ps,
const char *  p,
int  len,
int  parsed_float,
YYSTYPE putithere 
)
static
static int parse_string_or_char ( const char *  tokptr,
const char **  outptr,
struct typed_stoken value,
int host_chars 
)
static
static void push_expression_name ( struct parser_state ps,
struct stoken  name 
)
static
static void push_fieldnames ( struct parser_state ps,
struct stoken  name 
)
static

Definition at line 2862 of file d-exp.c.

References stoken::length, stoken::ptr, write_exp_elt_opcode(), and write_exp_string().

Referenced by push_expression_name(), and push_type_name().

static int push_module_name ( struct parser_state ps,
struct type module,
struct stoken  name,
int  dot_index 
)
static
static void push_type_name ( struct parser_state ps,
struct type type,
struct stoken  name,
int  dot_index 
)
static
static int push_variable ( struct parser_state ps,
struct stoken  name 
)
static
void xfree ( void *  )

Definition at line 97 of file common-utils.c.

Referenced by yyparse().

void* xmalloc ( YYSIZE_T  )

Referenced by yyparse().

static void yy_reduce_print ( yytype_int16 yyssp,
YYSTYPE yyvsp,
int  yyrule 
)
static

Definition at line 1019 of file d-exp.c.

References yy_symbol_print(), YYFPRINTF, yyr2, yyrline, yyrule, and yystos.

static void yy_stack_print ( yytype_int16 yybottom,
yytype_int16 yytop 
)
static

Definition at line 996 of file d-exp.c.

References YYFPRINTF.

static void yy_symbol_print ( FILE *  yyoutput,
int  yytype,
YYSTYPE const *const  yyvaluep 
)
static

Definition at line 981 of file d-exp.c.

References yy_symbol_value_print(), YYFPRINTF, YYNTOKENS, and yytname.

Referenced by yy_reduce_print().

static void yy_symbol_value_print ( FILE *  yyoutput,
int  yytype,
YYSTYPE const *const  yyvaluep 
)
static

Definition at line 962 of file d-exp.c.

References YYNTOKENS, YYPRINT, yytoknum, and YYUSE.

Referenced by yy_symbol_print().

static void yydestruct ( const char *  yymsg,
int  yytype,
YYSTYPE yyvaluep 
)
static
void yyerror ( char *  msg)

Definition at line 3393 of file d-exp.c.

References _, error(), lexptr, and prev_lexptr.

static int yylex ( void  )
static
int yyparse ( void  )

Definition at line 1328 of file d-exp.c.

References arglist_len, copy_name(), end_arglist(), expression_context_block, follow_types(), YYSTYPE::ival, stoken_vector::len, len, stoken::length, typed_stoken::length, type::length, lookup_enum(), lookup_pointer_type(), lookup_struct(), lookup_union(), make_cleanup(), mark_completion_tag(), mark_struct_expression(), parse_d_type, parse_number(), stoken::ptr, typed_stoken::ptr, push_expression_name(), push_type(), push_type_int(), start_arglist(), YYSTYPE::sval, YYSTYPE::svec, stoken_vector::tokens, tp_array, tp_pointer, YYSTYPE::tval, typed_stoken::type, YYSTYPE::type, TYPE_CODE_ENUM, TYPE_CODE_STRUCT, TYPE_CODE_UNION, YYSTYPE::typed_val_int, YYSTYPE::val, write_dollar_variable(), write_exp_elt_dblcst(), write_exp_elt_longcst(), write_exp_elt_opcode(), write_exp_elt_type(), write_exp_string(), write_exp_string_vector(), xfree(), xmalloc(), xrealloc(), YY_, YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN, YY_IGNORE_MAYBE_UNINITIALIZED_END, YY_REDUCE_PRINT, YY_STACK_PRINT, YY_SYMBOL_PRINT, YYABORT, YYACCEPT, yycheck, yydefact, yydefgoto, yydestruct(), YYDPRINTF, YYEMPTY, YYEOF, yyerror, YYFINAL, YYINITDEPTH, YYLAST, yylen, yylex, yylloc, yylval, YYMAXDEPTH, yynerrs, YYNTOKENS, yypact, yypact_value_is_default, yypgoto, YYPOPSTACK, yyr1, yyr2, YYSIZE_T, yyss, yyalloc::yyss_alloc, yyssp, YYSTACK_ALLOC, YYSTACK_BYTES, YYSTACK_FREE, YYSTACK_RELOCATE, yystacksize, yystate, yystos, yytable, yytable_value_is_error, YYTERROR, YYTRANSLATE, yyval, yyvs, yyalloc::yyvs_alloc, and yyvsp.

Variable Documentation

const struct token ident_tokens[]
static
Initial value:
=
{
{"is", IDENTITY, BINOP_END},
{"!is", NOTIDENTITY, BINOP_END},
{"cast", CAST_KEYWORD, OP_NULL},
{"const", CONST_KEYWORD, OP_NULL},
{"immutable", IMMUTABLE_KEYWORD, OP_NULL},
{"shared", SHARED_KEYWORD, OP_NULL},
{"super", SUPER_KEYWORD, OP_NULL},
{"null", NULL_KEYWORD, OP_NULL},
{"true", TRUE_KEYWORD, OP_NULL},
{"false", FALSE_KEYWORD, OP_NULL},
{"init", INIT_KEYWORD, OP_NULL},
{"sizeof", SIZEOF_KEYWORD, OP_NULL},
{"typeof", TYPEOF_KEYWORD, OP_NULL},
{"typeid", TYPEID_KEYWORD, OP_NULL},
{"delegate", DELEGATE_KEYWORD, OP_NULL},
{"function", FUNCTION_KEYWORD, OP_NULL},
{"struct", STRUCT_KEYWORD, OP_NULL},
{"union", UNION_KEYWORD, OP_NULL},
{"class", CLASS_KEYWORD, OP_NULL},
{"interface", INTERFACE_KEYWORD, OP_NULL},
{"enum", ENUM_KEYWORD, OP_NULL},
{"template", TEMPLATE_KEYWORD, OP_NULL},
}
#define FALSE_KEYWORD
Definition: d-exp.c:249
#define NOTIDENTITY
Definition: d-exp.c:280
#define TRUE_KEYWORD
Definition: d-exp.c:248
#define FUNCTION_KEYWORD
Definition: d-exp.c:267
#define SUPER_KEYWORD
Definition: d-exp.c:251
#define CLASS_KEYWORD
Definition: d-exp.c:262
#define NULL_KEYWORD
Definition: d-exp.c:250
#define INTERFACE_KEYWORD
Definition: d-exp.c:263
#define TYPEOF_KEYWORD
Definition: d-exp.c:254
#define TEMPLATE_KEYWORD
Definition: d-exp.c:265
#define INIT_KEYWORD
Definition: d-exp.c:256
#define UNION_KEYWORD
Definition: d-exp.c:261
#define SHARED_KEYWORD
Definition: d-exp.c:259
#define CONST_KEYWORD
Definition: d-exp.c:258
#define DELEGATE_KEYWORD
Definition: d-exp.c:266
#define IMMUTABLE_KEYWORD
Definition: d-exp.c:257
#define SIZEOF_KEYWORD
Definition: d-exp.c:253
#define STRUCT_KEYWORD
Definition: d-exp.c:260
#define IDENTITY
Definition: d-exp.c:279
#define ENUM_KEYWORD
Definition: d-exp.c:264
#define TYPEID_KEYWORD
Definition: d-exp.c:255
#define CAST_KEYWORD
Definition: d-exp.c:252

Definition at line 2750 of file d-exp.c.

int last_was_structop
static

Definition at line 3074 of file d-exp.c.

Referenced by yylex().

struct parser_state* pstate = NULL
static

Definition at line 148 of file d-exp.c.

int saw_name_at_eof
static

Definition at line 3070 of file d-exp.c.

struct obstack tempbuf
static

Definition at line 2629 of file d-exp.c.

Referenced by parse_string_or_char().

int tempbuf_init
static

Definition at line 2630 of file d-exp.c.

const struct token tokentab2[]
static
Initial value:
=
{
{"+=", ASSIGN_MODIFY, BINOP_ADD},
{"-=", ASSIGN_MODIFY, BINOP_SUB},
{"*=", ASSIGN_MODIFY, BINOP_MUL},
{"/=", ASSIGN_MODIFY, BINOP_DIV},
{"%=", ASSIGN_MODIFY, BINOP_REM},
{"|=", ASSIGN_MODIFY, BINOP_BITWISE_IOR},
{"&=", ASSIGN_MODIFY, BINOP_BITWISE_AND},
{"^=", ASSIGN_MODIFY, BINOP_BITWISE_XOR},
{"++", INCREMENT, BINOP_END},
{"--", DECREMENT, BINOP_END},
{"&&", ANDAND, BINOP_END},
{"||", OROR, BINOP_END},
{"^^", HATHAT, BINOP_END},
{"<<", LSH, BINOP_END},
{">>", RSH, BINOP_END},
{"==", EQUAL, BINOP_END},
{"!=", NOTEQUAL, BINOP_END},
{"<=", LEQ, BINOP_END},
{">=", GEQ, BINOP_END},
{"..", DOTDOT, BINOP_END},
}
#define HATHAT
Definition: d-exp.c:278
#define EQUAL
Definition: d-exp.c:272
#define NOTEQUAL
Definition: d-exp.c:273
#define OROR
Definition: d-exp.c:270
#define INCREMENT
Definition: d-exp.c:281
#define RSH
Definition: d-exp.c:277
#define LSH
Definition: d-exp.c:276
#define DECREMENT
Definition: d-exp.c:282
#define GEQ
Definition: d-exp.c:275
#define ASSIGN_MODIFY
Definition: d-exp.c:269
#define ANDAND
Definition: d-exp.c:271
#define LEQ
Definition: d-exp.c:274
#define DOTDOT
Definition: d-exp.c:283

Definition at line 2725 of file d-exp.c.

const struct token tokentab3[]
static
Initial value:
=
{
{"^^=", ASSIGN_MODIFY, BINOP_EXP},
{"<<=", ASSIGN_MODIFY, BINOP_LSH},
{">>=", ASSIGN_MODIFY, BINOP_RSH},
}
#define ASSIGN_MODIFY
Definition: d-exp.c:269

Definition at line 2718 of file d-exp.c.

int yychar

Definition at line 1315 of file d-exp.c.

const yytype_int16 yycheck[]
static
Initial value:
=
{
17, 18, 19, 20, 21, 22, 5, 23, 25, 26,
24, 3, 35, 4, 6, 7, 8, 9, 10, 24,
5, 13, 14, 15, 5, 17, 5, 112, 53, 51,
52, 99, 100, 101, 25, 26, 27, 62, 29, 63,
3, 33, 5, 3, 66, 5, 69, 53, 54, 55,
42, 35, 57, 12, 13, 14, 15, 37, 38, 51,
52, 53, 61, 49, 50, 81, 82, 59, 60, 83,
62, 63, 0, 39, 66, 67, 61, 69, 40, 3,
61, 5, 61, 168, 41, 102, 103, 104, 105, 3,
42, 5, 108, 61, 43, 44, 45, 46, 47, 48,
49, 50, 34, 10, 36, 121, 35, 124, 57, 58,
3, 4, 68, 6, 7, 8, 9, 10, 95, 96,
13, 14, 15, 56, 17, 69, 59, 60, 68, 62,
63, 7, 25, 26, 27, 3, 29, 5, 154, 3,
33, 68, 159, 65, 64, 5, 69, 68, 164, 42,
69, 163, 86, 84, 80, 85, 154, 108, 51, 52,
53, -1, 87, -1, -1, -1, 59, 60, -1, 62,
63, 88, 3, 66, 67, 6, 7, 8, 9, 10,
-1, -1, 13, 14, 15, -1, 17, 89, 90, 91,
92, 93, 94, -1, -1, 97, 98, -1, -1, -1,
-1, -1, 33, -1, -1, -1, -1, -1, -1, -1,
-1, 42, -1, -1, -1, -1, -1, -1, -1, -1,
51, 52, 53, -1, -1, -1, -1, -1, 59, 60,
-1, 62, 63, -1, -1, 66, 67
}

Definition at line 803 of file d-exp.c.

int yydebug

Definition at line 1046 of file d-exp.c.

const yytype_uint8 yydefact[]
static
Initial value:
=
{
0, 89, 99, 79, 83, 84, 85, 91, 81, 82,
80, 0, 0, 0, 0, 0, 78, 0, 0, 0,
0, 0, 0, 67, 0, 0, 0, 0, 2, 4,
5, 7, 10, 12, 14, 16, 18, 20, 23, 24,
25, 22, 34, 37, 41, 53, 54, 57, 62, 63,
64, 59, 87, 75, 86, 3, 93, 0, 104, 103,
107, 106, 101, 100, 110, 109, 45, 50, 49, 48,
46, 47, 65, 68, 0, 0, 0, 52, 51, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 60, 61, 0, 69,
0, 92, 95, 0, 94, 0, 105, 0, 108, 102,
111, 0, 88, 74, 0, 6, 9, 8, 0, 13,
15, 17, 19, 21, 26, 27, 30, 32, 31, 33,
35, 36, 28, 29, 38, 39, 40, 42, 43, 44,
58, 72, 65, 0, 67, 90, 76, 96, 0, 0,
90, 66, 56, 0, 0, 71, 0, 77, 97, 55,
11, 0, 70, 98, 73
}

Definition at line 732 of file d-exp.c.

Referenced by yyparse().

const yytype_int16 yydefgoto[]
static
Initial value:
=
{
-1, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 73, 74, 48, 154, 49, 50, 51, 52,
53, 54, 55, 114, 56
}

Definition at line 764 of file d-exp.c.

Referenced by yyparse().

YYSTYPE yylval

Definition at line 1318 of file d-exp.c.

int yynerrs

Definition at line 1320 of file d-exp.c.

const yytype_int16 yypact[]
static
Initial value:
=
{
107, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -24, 37, 40, 76, 86, -86, 169, 169, 169,
169, 169, 169, 169, 107, 169, 169, 72, -86, -86,
16, 68, 20, 34, 38, 43, 48, -86, -86, -86,
-86, 51, -22, -6, -86, -86, -86, 67, -86, -86,
-86, -86, -86, 32, 93, -86, -25, 9, -86, 1,
-86, 15, -86, 19, -86, 21, -86, -86, -86, -86,
-86, -86, -86, 71, 56, 44, 60, -86, -86, -86,
169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
169, 169, 169, 169, 169, 169, -86, -86, 8, -86,
132, -86, -25, 124, -86, 73, -86, 136, -86, -86,
-86, 169, -86, -86, 169, -86, -86, -86, 78, 34,
38, 43, 48, -86, 14, 14, 14, 14, 14, 14,
-22, -22, 14, 14, -6, -6, -6, -86, -86, -86,
-86, -86, 80, -23, 169, 140, -86, -86, 77, 169,
-86, -86, -86, 169, 169, -86, 79, -86, -25, -86,
-86, 81, -86, -86, -86
}

Definition at line 707 of file d-exp.c.

const yytype_int8 yypgoto[]
static
Initial value:
=
{
-86, -86, -14, 74, -16, -12, -86, 69, 70, 66,
75, 83, -86, -86, -86, 98, 23, -68, -17, -86,
-86, -86, 49, 2, -86, -86, -86, -86, -86, -86,
41, -86, -5, -85, -86
}

Definition at line 755 of file d-exp.c.

Referenced by yyparse().

const yytype_uint8 yyr1[]
static
Initial value:
=
{
0, 70, 71, 71, 72, 73, 73, 74, 74, 74,
75, 75, 76, 76, 77, 77, 78, 78, 79, 79,
80, 80, 81, 81, 81, 81, 82, 82, 83, 83,
84, 84, 84, 84, 85, 85, 85, 86, 86, 86,
86, 87, 87, 87, 87, 88, 88, 88, 88, 88,
88, 88, 88, 88, 88, 89, 89, 90, 90, 91,
91, 91, 91, 91, 91, 92, 92, 93, 93, 95,
94, 96, 97, 97, 98, 98, 98, 98, 98, 98,
98, 98, 98, 98, 98, 98, 98, 98, 99, 100,
100, 101, 101, 102, 102, 103, 103, 103, 103, 104,
104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
104, 104
}

Definition at line 856 of file d-exp.c.

const yytype_uint8 yyr2[]
static
Initial value:
=
{
0, 2, 1, 1, 1, 1, 3, 1, 3, 3,
1, 5, 1, 3, 1, 3, 1, 3, 1, 3,
1, 3, 1, 1, 1, 1, 3, 3, 3, 3,
3, 3, 3, 3, 1, 3, 3, 1, 3, 3,
3, 1, 3, 3, 3, 2, 2, 2, 2, 2,
2, 2, 2, 1, 1, 5, 4, 1, 3, 1,
2, 2, 1, 1, 1, 1, 3, 0, 1, 0,
5, 4, 3, 6, 3, 1, 3, 4, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
3, 1, 2, 1, 2, 1, 2, 3, 4, 1,
2, 2, 3, 2, 2, 3, 2, 2, 3, 2,
2, 3
}

Definition at line 873 of file d-exp.c.

const yytype_uint16 yyrline[]
static
Initial value:
=
{
0, 232, 232, 233, 239, 243, 244, 249, 250, 252,
259, 260, 265, 266, 271, 272, 277, 278, 283, 284,
289, 290, 295, 296, 297, 298, 302, 304, 309, 311,
316, 318, 320, 322, 327, 328, 330, 335, 336, 338,
340, 345, 346, 348, 350, 354, 356, 358, 360, 362,
364, 366, 368, 370, 371, 375, 381, 388, 389, 394,
395, 397, 399, 400, 401, 405, 407, 413, 414, 419,
418, 427, 440, 442, 447, 449, 451, 460, 466, 468,
476, 483, 487, 491, 496, 501, 506, 512, 520, 525,
526, 543, 558, 576, 580, 589, 591, 593, 596, 602,
604, 607, 610, 613, 616, 619, 622, 625, 628, 631,
634, 637
}

Definition at line 633 of file d-exp.c.

Referenced by yy_reduce_print().

const yytype_uint8 yystos[]
static
Initial value:
=
{
0, 3, 4, 6, 7, 8, 9, 10, 13, 14,
15, 17, 25, 26, 27, 29, 33, 42, 51, 52,
53, 59, 60, 62, 63, 66, 67, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 94, 96,
97, 98, 99, 100, 101, 102, 104, 63, 5, 100,
5, 100, 5, 100, 5, 100, 88, 88, 88, 88,
88, 88, 74, 92, 93, 72, 102, 88, 88, 0,
35, 34, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 57, 58, 51,
52, 66, 53, 54, 55, 56, 59, 60, 62, 63,
61, 10, 53, 62, 103, 102, 5, 61, 5, 5,
5, 35, 69, 68, 68, 73, 74, 74, 72, 77,
78, 79, 80, 81, 85, 85, 85, 85, 85, 85,
86, 86, 85, 85, 87, 87, 87, 88, 88, 88,
88, 69, 74, 92, 95, 3, 5, 103, 7, 68,
3, 74, 88, 65, 64, 69, 93, 5, 69, 88,
75, 74, 68, 103, 69
}

Definition at line 833 of file d-exp.c.

Referenced by yy_reduce_print(), and yyparse().

const yytype_uint8 yytable[]
static
Initial value:
=
{
66, 67, 68, 69, 70, 71, 116, 72, 77, 78,
75, 1, 121, 2, 3, 4, 5, 6, 7, 76,
118, 8, 9, 10, 119, 11, 120, 157, 112, 99,
100, 144, 145, 146, 12, 13, 14, 113, 15, 57,
1, 16, 58, 1, 101, 60, 165, 102, 103, 104,
17, 80, 115, 59, 61, 63, 65, 83, 84, 18,
19, 20, 117, 95, 96, 126, 127, 21, 22, 128,
23, 24, 79, 85, 25, 26, 117, 151, 86, 1,
117, 62, 117, 173, 87, 147, 148, 149, 150, 1,
88, 64, 152, 110, 89, 90, 91, 92, 93, 94,
95, 96, 81, 111, 82, 161, 121, 162, 97, 98,
1, 2, 123, 3, 4, 5, 6, 7, 140, 141,
8, 9, 10, 105, 11, 122, 106, 107, 124, 108,
109, 158, 12, 13, 14, 155, 15, 156, 72, 160,
16, 159, 169, 163, 164, 167, 168, 172, 171, 17,
174, 170, 131, 129, 125, 130, 166, 153, 18, 19,
20, 0, 132, 0, 0, 0, 21, 22, 0, 23,
24, 133, 1, 25, 26, 3, 4, 5, 6, 7,
0, 0, 8, 9, 10, 0, 11, 134, 135, 136,
137, 138, 139, 0, 0, 142, 143, 0, 0, 0,
0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
18, 19, 20, 0, 0, 0, 0, 0, 21, 22,
0, 23, 24, 0, 0, 25, 26
}

Definition at line 775 of file d-exp.c.

const char* const yytname[]
static
Initial value:
=
{
"$end", "error", "$undefined", "IDENTIFIER", "TYPENAME", "COMPLETE",
"NAME_OR_INT", "INTEGER_LITERAL", "FLOAT_LITERAL", "CHARACTER_LITERAL",
"STRING_LITERAL", "ENTRY", "ERROR", "TRUE_KEYWORD", "FALSE_KEYWORD",
"NULL_KEYWORD", "SUPER_KEYWORD", "CAST_KEYWORD", "SIZEOF_KEYWORD",
"TYPEOF_KEYWORD", "TYPEID_KEYWORD", "INIT_KEYWORD", "IMMUTABLE_KEYWORD",
"CONST_KEYWORD", "SHARED_KEYWORD", "STRUCT_KEYWORD", "UNION_KEYWORD",
"CLASS_KEYWORD", "INTERFACE_KEYWORD", "ENUM_KEYWORD", "TEMPLATE_KEYWORD",
"DELEGATE_KEYWORD", "FUNCTION_KEYWORD", "DOLLAR_VARIABLE",
"ASSIGN_MODIFY", "','", "'='", "'?'", "OROR", "ANDAND", "'|'", "'^'",
"'&'", "EQUAL", "NOTEQUAL", "'<'", "'>'", "LEQ", "GEQ", "LSH", "RSH",
"'+'", "'-'", "'*'", "'/'", "'%'", "HATHAT", "IDENTITY", "NOTIDENTITY",
"INCREMENT", "DECREMENT", "'.'", "'['", "'('", "DOTDOT", "':'", "'~'",
"'!'", "')'", "']'", "$accept", "start", "Expression", "CommaExpression",
"AssignExpression", "ConditionalExpression", "OrOrExpression",
"AndAndExpression", "OrExpression", "XorExpression", "AndExpression",
"CmpExpression", "EqualExpression", "IdentityExpression",
"RelExpression", "ShiftExpression", "AddExpression", "MulExpression",
"UnaryExpression", "CastExpression", "PowExpression",
"PostfixExpression", "ArgumentList", "ArgumentList_opt",
"CallExpression", "$@1", "IndexExpression", "SliceExpression",
"PrimaryExpression", "ArrayLiteral", "IdentifierExp", "StringExp",
"TypeExp", "BasicType2", "BasicType", YY_NULLPTR
}
#define YY_NULLPTR
Definition: d-exp.c:163

Definition at line 653 of file d-exp.c.

Referenced by yy_symbol_print().

const yytype_uint8 yytranslate[]
static

Definition at line 596 of file d-exp.c.