GDB (xrefs)
Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-8.1/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 "yy-remap.h"
#include <stddef.h>

Go to the source code of this file.

Classes

union  YYSTYPE
 
union  yyalloc
 
struct  token
 
struct  token_and_value
 

Macros

#define YYBISON   1
 
#define YYBISON_VERSION   "3.0.4"
 
#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 GDB_YY_REMAP_PREFIX   d_
 
#define YY_NULLPTRPTR   0
 
#define YYERROR_VERBOSE   0
 
#define YYTOKENTYPE
 
#define IDENTIFIER   258
 
#define UNKNOWN_NAME   259
 
#define TYPENAME   260
 
#define COMPLETE   261
 
#define NAME_OR_INT   262
 
#define INTEGER_LITERAL   263
 
#define FLOAT_LITERAL   264
 
#define CHARACTER_LITERAL   265
 
#define STRING_LITERAL   266
 
#define ENTRY   267
 
#define ERROR   268
 
#define TRUE_KEYWORD   269
 
#define FALSE_KEYWORD   270
 
#define NULL_KEYWORD   271
 
#define SUPER_KEYWORD   272
 
#define CAST_KEYWORD   273
 
#define SIZEOF_KEYWORD   274
 
#define TYPEOF_KEYWORD   275
 
#define TYPEID_KEYWORD   276
 
#define INIT_KEYWORD   277
 
#define IMMUTABLE_KEYWORD   278
 
#define CONST_KEYWORD   279
 
#define SHARED_KEYWORD   280
 
#define STRUCT_KEYWORD   281
 
#define UNION_KEYWORD   282
 
#define CLASS_KEYWORD   283
 
#define INTERFACE_KEYWORD   284
 
#define ENUM_KEYWORD   285
 
#define TEMPLATE_KEYWORD   286
 
#define DELEGATE_KEYWORD   287
 
#define FUNCTION_KEYWORD   288
 
#define DOLLAR_VARIABLE   289
 
#define ASSIGN_MODIFY   290
 
#define OROR   291
 
#define ANDAND   292
 
#define EQUAL   293
 
#define NOTEQUAL   294
 
#define LEQ   295
 
#define GEQ   296
 
#define LSH   297
 
#define RSH   298
 
#define HATHAT   299
 
#define IDENTITY   300
 
#define NOTIDENTITY   301
 
#define INCREMENT   302
 
#define DECREMENT   303
 
#define DOTDOT   304
 
#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   70
 
#define YYLAST   200
 
#define YYNTOKENS   71
 
#define YYNNTS   35
 
#define YYNRULES   104
 
#define YYNSTATES   169
 
#define YYUNDEFTOK   2
 
#define YYMAXUTOK   304
 
#define YYTRANSLATE(YYX)   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
#define YYPACT_NINF   -91
 
#define yypact_value_is_default(Yystate)   (!!((Yystate) == (-91)))
 
#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,
  STRING = 260, NSSTRING = 261, SELECTOR = 262, CHAR = 263,
  NAME = 264, UNKNOWN_CPP_NAME = 265, COMPLETE = 266, TYPENAME = 267,
  CLASSNAME = 268, OBJC_LBRAC = 269, NAME_OR_INT = 270, OPERATOR = 271,
  STRUCT = 272, CLASS = 273, UNION = 274, ENUM = 275,
  SIZEOF = 276, UNSIGNED = 277, COLONCOLON = 278, TEMPLATE = 279,
  ERROR = 280, NEW = 281, DELETE = 282, REINTERPRET_CAST = 283,
  DYNAMIC_CAST = 284, STATIC_CAST = 285, CONST_CAST = 286, ENTRY = 287,
  TYPEOF = 288, DECLTYPE = 289, TYPEID = 290, SIGNED_KEYWORD = 291,
  LONG = 292, SHORT = 293, INT_KEYWORD = 294, CONST_KEYWORD = 295,
  VOLATILE_KEYWORD = 296, DOUBLE_KEYWORD = 297, VARIABLE = 298, ASSIGN_MODIFY = 299,
  TRUEKEYWORD = 300, FALSEKEYWORD = 301, ABOVE_COMMA = 302, OROR = 303,
  ANDAND = 304, EQUAL = 305, NOTEQUAL = 306, LEQ = 307,
  GEQ = 308, LSH = 309, RSH = 310, UNARY = 311,
  INCREMENT = 312, DECREMENT = 313, ARROW = 314, ARROW_STAR = 315,
  DOT_STAR = 316, BLOCKNAME = 317, FILENAME = 318, DOTDOTDOT = 319,
  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, UNKNOWN_NAME = 259,
  TYPENAME = 260, COMPLETE = 261, NAME_OR_INT = 262, INTEGER_LITERAL = 263,
  FLOAT_LITERAL = 264, CHARACTER_LITERAL = 265, STRING_LITERAL = 266, ENTRY = 267,
  ERROR = 268, TRUE_KEYWORD = 269, FALSE_KEYWORD = 270, NULL_KEYWORD = 271,
  SUPER_KEYWORD = 272, CAST_KEYWORD = 273, SIZEOF_KEYWORD = 274, TYPEOF_KEYWORD = 275,
  TYPEID_KEYWORD = 276, INIT_KEYWORD = 277, IMMUTABLE_KEYWORD = 278, CONST_KEYWORD = 279,
  SHARED_KEYWORD = 280, STRUCT_KEYWORD = 281, UNION_KEYWORD = 282, CLASS_KEYWORD = 283,
  INTERFACE_KEYWORD = 284, ENUM_KEYWORD = 285, TEMPLATE_KEYWORD = 286, DELEGATE_KEYWORD = 287,
  FUNCTION_KEYWORD = 288, DOLLAR_VARIABLE = 289, ASSIGN_MODIFY = 290, OROR = 291,
  ANDAND = 292, EQUAL = 293, NOTEQUAL = 294, LEQ = 295,
  GEQ = 296, LSH = 297, RSH = 298, HATHAT = 299,
  IDENTITY = 300, NOTIDENTITY = 301, INCREMENT = 302, DECREMENT = 303,
  DOTDOT = 304, 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, 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, GDBVAR = 258,
  IDENT = 259, COMPLETE = 260, INTEGER = 261, DECIMAL_INTEGER = 262,
  STRING = 263, BYTESTRING = 264, FLOAT = 265, COMPOUND_ASSIGN = 266,
  KW_AS = 267, KW_IF = 268, KW_TRUE = 269, KW_FALSE = 270,
  KW_SUPER = 271, KW_SELF = 272, KW_MUT = 273, KW_EXTERN = 274,
  KW_CONST = 275, KW_FN = 276, KW_SIZEOF = 277, DOTDOT = 278,
  OROR = 279, ANDAND = 280, EQEQ = 281, NOTEQ = 282,
  LTEQ = 283, GTEQ = 284, LSH = 285, RSH = 286,
  COLONCOLON = 287, ARROW = 288, UNARY = 289
}
 

Functions

int yyparse (void)
 
static int yylex (void)
 
void yyerror (const char *)
 
static int type_aggregate_p (struct type *)
 
static int parse_number (struct parser_state *, const char *, int, int, YYSTYPE *)
 
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 int lex_one_token (struct parser_state *par_state)
 
 DEF_VEC_O (token_and_value)
 
static VEC (token_and_value)
 
static int classify_inner_name (struct parser_state *par_state, const struct block *block, struct type *context)
 
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

◆ ANDAND

#define ANDAND   292

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

◆ ASSIGN_MODIFY

#define ASSIGN_MODIFY   290

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

◆ CAST_KEYWORD

#define CAST_KEYWORD   273

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

◆ CHARACTER_LITERAL

#define CHARACTER_LITERAL   265

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

Referenced by lex_one_token(), and parse_string_or_char().

◆ CLASS_KEYWORD

#define CLASS_KEYWORD   283

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

◆ COMPLETE

#define COMPLETE   261

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

Referenced by lex_one_token().

◆ CONST_KEYWORD

#define CONST_KEYWORD   279

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

◆ DECREMENT

#define DECREMENT   303

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

◆ DELEGATE_KEYWORD

#define DELEGATE_KEYWORD   287

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

◆ DOLLAR_VARIABLE

#define DOLLAR_VARIABLE   289

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

Referenced by lex_one_token().

◆ DOTDOT

#define DOTDOT   304

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

◆ ENTRY

#define ENTRY   267

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

Referenced by lex_one_token().

◆ ENUM_KEYWORD

#define ENUM_KEYWORD   285

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

◆ EQUAL

#define EQUAL   293

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

◆ ERROR

#define ERROR   268

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

Referenced by classify_inner_name(), lex_one_token(), and parse_number().

◆ FALSE_KEYWORD

#define FALSE_KEYWORD   270

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

◆ FLOAT_LITERAL

#define FLOAT_LITERAL   264

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

Referenced by parse_number().

◆ FUNCTION_KEYWORD

#define FUNCTION_KEYWORD   288

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

◆ GDB_YY_REMAP_PREFIX

#define GDB_YY_REMAP_PREFIX   d_

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

◆ GEQ

#define GEQ   296

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

◆ HATHAT

#define HATHAT   299

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

◆ IDENTIFIER

#define IDENTIFIER   258

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

Referenced by classify_inner_name(), lex_one_token(), VEC(), and yylex().

◆ IDENTITY

#define IDENTITY   300

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

◆ IMMUTABLE_KEYWORD

#define IMMUTABLE_KEYWORD   278

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

◆ INCREMENT

#define INCREMENT   302

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

◆ INIT_KEYWORD

#define INIT_KEYWORD   277

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

◆ INTEGER_LITERAL

#define INTEGER_LITERAL   263

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

Referenced by lex_one_token(), and parse_number().

◆ INTERFACE_KEYWORD

#define INTERFACE_KEYWORD   284

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

◆ LEQ

#define LEQ   295

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

◆ LSH

#define LSH   297

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

◆ NAME_OR_INT

#define NAME_OR_INT   262

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

Referenced by lex_one_token().

◆ NOTEQUAL

#define NOTEQUAL   294

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

◆ NOTIDENTITY

#define NOTIDENTITY   301

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

◆ NULL_KEYWORD

#define NULL_KEYWORD   271

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

◆ OROR

#define OROR   291

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

◆ parse_d_type

#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().

◆ parse_type

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

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

◆ RSH

#define RSH   298

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

◆ SHARED_KEYWORD

#define SHARED_KEYWORD   280

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

◆ SIZEOF_KEYWORD

#define SIZEOF_KEYWORD   274

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

◆ STRING_LITERAL

#define STRING_LITERAL   266

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

Referenced by parse_string_or_char().

◆ STRUCT_KEYWORD

#define STRUCT_KEYWORD   281

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

◆ SUPER_KEYWORD

#define SUPER_KEYWORD   272

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

◆ TEMPLATE_KEYWORD

#define TEMPLATE_KEYWORD   286

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

◆ TRUE_KEYWORD

#define TRUE_KEYWORD   269

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

◆ TYPEID_KEYWORD

#define TYPEID_KEYWORD   276

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

◆ TYPENAME

#define TYPENAME   260

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

Referenced by classify_inner_name(), lex_one_token(), VEC(), and yylex().

◆ TYPEOF_KEYWORD

#define TYPEOF_KEYWORD   275

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

◆ UNION_KEYWORD

#define UNION_KEYWORD   282

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

◆ UNKNOWN_NAME

#define UNKNOWN_NAME   259

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

Referenced by VEC(), and yylex().

◆ YY_

#define YY_ (   Msgid)    Msgid

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

Referenced by yyparse().

◆ YY_ATTRIBUTE

#define YY_ATTRIBUTE (   Spec)    /* empty */

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

◆ YY_ATTRIBUTE_PURE

#define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))

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

◆ YY_ATTRIBUTE_UNUSED

#define YY_ATTRIBUTE_UNUSED   YY_ATTRIBUTE ((__unused__))

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

◆ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

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

Referenced by yydestruct(), and yyparse().

◆ YY_IGNORE_MAYBE_UNINITIALIZED_END

#define YY_IGNORE_MAYBE_UNINITIALIZED_END

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

Referenced by yydestruct(), and yyparse().

◆ YY_INITIAL_VALUE

#define YY_INITIAL_VALUE (   Value)    Value

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

◆ YY_LOCATION_PRINT

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

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

◆ YY_NULLPTRPTR

#define YY_NULLPTRPTR   0

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

◆ YY_REDUCE_PRINT

#define YY_REDUCE_PRINT (   Rule)
Value:
do { \
if (yydebug) \
yy_reduce_print (yyssp, yyvsp, Rule); \
} while (0)
#define yyssp
#define yyvsp
int yydebug
Definition: d-exp.c:985

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

Referenced by yyparse().

◆ YY_STACK_PRINT

#define YY_STACK_PRINT (   Bottom,
  Top 
)
Value:
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
} while (0)
int yydebug
Definition: d-exp.c:985

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

Referenced by yyparse().

◆ YY_SYMBOL_PRINT

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

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

Referenced by yydestruct(), and yyparse().

◆ YYABORT

#define YYABORT   goto yyabortlab

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

Referenced by yyparse().

◆ YYACCEPT

#define YYACCEPT   goto yyacceptlab

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

Referenced by yyparse().

◆ YYBACKUP

#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)
int yychar
Definition: d-exp.c:1254
#define yylen
#define yyssp
if(!(yy_init))
Definition: ada-lex.c:1075
#define YY_(Msgid)
Definition: d-exp.c:337
#define YYEMPTY
Definition: d-exp.c:831

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

◆ YYBISON

#define YYBISON   1

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

◆ YYBISON_VERSION

#define YYBISON_VERSION   "3.0.4"

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

◆ yyclearin

#define yyclearin   (yychar = YYEMPTY)

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

◆ YYCOPY

#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 510 of file d-exp.c.

◆ YYCOPY_NEEDED

#define YYCOPY_NEEDED   1

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

◆ YYDPRINTF

#define YYDPRINTF (   Args)
Value:
do { \
if (yydebug) \
YYFPRINTF Args; \
} while (0)
int yydebug
Definition: d-exp.c:985

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

Referenced by yyparse().

◆ YYEMPTY

#define YYEMPTY   (-2)

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

Referenced by yyparse().

◆ YYEOF

#define YYEOF   0

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

Referenced by yyparse().

◆ YYERRCODE

#define YYERRCODE   256

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

◆ yyerrok

#define yyerrok   (yyerrstatus = 0)

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

◆ YYERROR

#define YYERROR   goto yyerrorlab

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

◆ YYERROR_VERBOSE

#define YYERROR_VERBOSE   0

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

◆ YYFINAL

#define YYFINAL   70

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

Referenced by yyparse().

◆ YYFREE

#define YYFREE   xfree

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

◆ YYINITDEPTH

#define YYINITDEPTH   200

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

Referenced by yyparse().

◆ YYLAST

#define YYLAST   200

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

Referenced by yyparse().

◆ YYMALLOC

#define YYMALLOC   xmalloc

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

◆ YYMAXDEPTH

#define YYMAXDEPTH   10000

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

Referenced by yyparse().

◆ YYMAXUTOK

#define YYMAXUTOK   304

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

◆ YYNNTS

#define YYNNTS   35

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

◆ YYNRULES

#define YYNRULES   104

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

◆ YYNSTATES

#define YYNSTATES   169

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

◆ YYNTOKENS

#define YYNTOKENS   71

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

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

◆ YYPACT_NINF

#define YYPACT_NINF   -91

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

◆ yypact_value_is_default

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

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

Referenced by yyparse().

◆ YYPOPSTACK

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

Referenced by yyparse().

◆ YYPULL

#define YYPULL   1

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

◆ YYPURE

#define YYPURE   0

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

◆ YYPUSH

#define YYPUSH   0

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

◆ YYRECOVERING

#define YYRECOVERING ( )    (!!yyerrstatus)

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

◆ YYSIZE_MAXIMUM

#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)

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

◆ YYSIZE_T

#define YYSIZE_T   size_t

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

Referenced by yyparse().

◆ YYSKELETON_NAME

#define YYSKELETON_NAME   "yacc.c"

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

◆ YYSTACK_ALLOC

#define YYSTACK_ALLOC   YYMALLOC

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

Referenced by yyparse().

◆ YYSTACK_ALLOC_MAXIMUM

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

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

◆ YYSTACK_BYTES

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

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

Referenced by yyparse().

◆ YYSTACK_FREE

#define YYSTACK_FREE   YYFREE

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

Referenced by yyparse().

◆ YYSTACK_GAP_MAXIMUM

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

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

◆ YYSTACK_RELOCATE

#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 YYSTACK_GAP_MAXIMUM
Definition: d-exp.c:474
#define yystacksize

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

Referenced by yyparse().

◆ YYSTYPE_IS_DECLARED

#define YYSTYPE_IS_DECLARED   1

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

◆ YYSTYPE_IS_TRIVIAL

#define YYSTYPE_IS_TRIVIAL   1

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

◆ YYTABLE_NINF

#define YYTABLE_NINF   -1

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

◆ yytable_value_is_error

#define yytable_value_is_error (   Yytable_value)    0

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

Referenced by yyparse().

◆ YYTERROR

#define YYTERROR   1

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

Referenced by yyparse().

◆ YYTOKENTYPE

#define YYTOKENTYPE

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

◆ YYTRANSLATE

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

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

Referenced by yyparse().

◆ YYUNDEFTOK

#define YYUNDEFTOK   2

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

◆ YYUSE

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

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

Referenced by yy_symbol_value_print(), and yydestruct().

Typedef Documentation

◆ YYSTYPE

typedef union YYSTYPE YYSTYPE

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

◆ yytype_int16

typedef short int yytype_int16

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

◆ yytype_int8

typedef signed char yytype_int8

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

◆ yytype_uint16

typedef unsigned short int yytype_uint16

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

◆ yytype_uint8

typedef unsigned char yytype_uint8

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

Enumeration Type Documentation

◆ yytokentype

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 
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 
UNKNOWN_NAME 
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 
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 
GDBVAR 
IDENT 
COMPLETE 
INTEGER 
DECIMAL_INTEGER 
STRING 
BYTESTRING 
FLOAT 
COMPOUND_ASSIGN 
KW_AS 
KW_IF 
KW_TRUE 
KW_FALSE 
KW_SUPER 
KW_SELF 
KW_MUT 
KW_EXTERN 
KW_CONST 
KW_FN 
KW_SIZEOF 
DOTDOT 
OROR 
ANDAND 
EQEQ 
NOTEQ 
LTEQ 
GTEQ 
LSH 
RSH 
COLONCOLON 
ARROW 
UNARY 

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

Function Documentation

◆ classify_inner_name()

static int classify_inner_name ( struct parser_state par_state,
const struct block block,
struct type context 
)
static

◆ d_parse()

int d_parse ( struct parser_state par_state)

◆ DEF_VEC_O()

DEF_VEC_O ( token_and_value  )

◆ lex_one_token()

static int lex_one_token ( struct parser_state par_state)
static

◆ parse_number()

static int parse_number ( struct parser_state ps,
const char *  p,
int  len,
int  parsed_float,
YYSTYPE putithere 
)
static

◆ parse_string_or_char()

static int parse_string_or_char ( const char *  tokptr,
const char **  outptr,
struct typed_stoken value,
int *  host_chars 
)
static

◆ type_aggregate_p()

static int type_aggregate_p ( struct type type)
static

◆ VEC()

static VEC ( token_and_value  )
static

◆ xfree()

void xfree ( void *  )

Referenced by yyparse().

◆ xmalloc()

void* xmalloc ( YYSIZE_T  )

Referenced by yyparse().

◆ yy_reduce_print()

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

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

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

◆ yy_stack_print()

static void yy_stack_print ( yytype_int16 yybottom,
yytype_int16 yytop 
)
static

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

References YYFPRINTF.

◆ yy_symbol_print()

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

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

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

Referenced by yy_reduce_print().

◆ yy_symbol_value_print()

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

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

References YYNTOKENS, YYPRINT, yytoknum, and YYUSE.

Referenced by yy_symbol_print().

◆ yydestruct()

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

◆ yyerror()

void yyerror ( const char *  msg)

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

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

Referenced by yyparse().

◆ yylex()

static int yylex ( void  )
static

◆ yyparse()

int yyparse ( void  )

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

References _, arglist_len, block_symbol::block, check_typedef(), contained_in(), copy_name(), end_arglist(), error(), expression_context_block, follow_types(), have_full_symbols(), have_partial_symbols(), innermost_block, stoken_vector::len, stoken::length, typed_stoken::length, type::length, LOC_TYPEDEF, lookup_bound_minimal_symbol(), lookup_pointer_type(), lookup_symbol(), mark_struct_expression(), bound_minimal_symbol::minsym, name, parse_d_type, parse_number(), pstate, stoken::ptr, typed_stoken::ptr, push_type(), push_type_int(), start_arglist(), string, string_printf(), block_symbol::symbol, SYMBOL_CLASS, symbol_read_needs_frame(), stoken_vector::tokens, tp_array, tp_pointer, typed_stoken::type, YYSTYPE::type, field_of_this_result::type, type_aggregate_p(), TYPE_CODE, TYPE_CODE_MODULE, TYPE_SAFE_NAME, YYSTYPE::typed_val_int, YYSTYPE::val, VAR_DOMAIN, write_dollar_variable(), write_exp_elt_block(), write_exp_elt_floatcst(), write_exp_elt_longcst(), write_exp_elt_opcode(), write_exp_elt_sym(), write_exp_elt_type(), write_exp_msymbol(), write_exp_string(), write_exp_string_vector(), xfree(), xmalloc(), XNEW, XRESIZEVEC, YY_, YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN, YY_IGNORE_MAYBE_UNINITIALIZED_END, YY_REDUCE_PRINT, YY_STACK_PRINT, YY_SYMBOL_PRINT, YYABORT, YYACCEPT, yychar, 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.

Referenced by d_parse().

Variable Documentation

◆ ident_tokens

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:198
#define NOTIDENTITY
Definition: d-exp.c:229
#define TRUE_KEYWORD
Definition: d-exp.c:197
#define FUNCTION_KEYWORD
Definition: d-exp.c:216
#define SUPER_KEYWORD
Definition: d-exp.c:200
#define CLASS_KEYWORD
Definition: d-exp.c:211
#define NULL_KEYWORD
Definition: d-exp.c:199
#define INTERFACE_KEYWORD
Definition: d-exp.c:212
#define TYPEOF_KEYWORD
Definition: d-exp.c:203
#define TEMPLATE_KEYWORD
Definition: d-exp.c:214
#define INIT_KEYWORD
Definition: d-exp.c:205
#define UNION_KEYWORD
Definition: d-exp.c:210
#define SHARED_KEYWORD
Definition: d-exp.c:208
#define CONST_KEYWORD
Definition: d-exp.c:207
#define DELEGATE_KEYWORD
Definition: d-exp.c:215
#define IMMUTABLE_KEYWORD
Definition: d-exp.c:206
#define SIZEOF_KEYWORD
Definition: d-exp.c:202
#define STRUCT_KEYWORD
Definition: d-exp.c:209
#define IDENTITY
Definition: d-exp.c:228
#define ENUM_KEYWORD
Definition: d-exp.c:213
#define TYPEID_KEYWORD
Definition: d-exp.c:204
#define CAST_KEYWORD
Definition: d-exp.c:201

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

Referenced by lex_one_token().

◆ last_was_structop

int last_was_structop
static

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

Referenced by d_parse(), and lex_one_token().

◆ pstate

struct parser_state* pstate = NULL
static

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

Referenced by d_parse(), yylex(), and yyparse().

◆ saw_name_at_eof

int saw_name_at_eof
static

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

Referenced by d_parse(), and lex_one_token().

◆ tempbuf

struct obstack tempbuf
static

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

Referenced by parse_string_or_char().

◆ tempbuf_init

int tempbuf_init
static

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

Referenced by parse_string_or_char().

◆ tokentab2

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:227
#define EQUAL
Definition: d-exp.c:221
#define NOTEQUAL
Definition: d-exp.c:222
#define OROR
Definition: d-exp.c:219
#define INCREMENT
Definition: d-exp.c:230
#define RSH
Definition: d-exp.c:226
#define LSH
Definition: d-exp.c:225
#define DECREMENT
Definition: d-exp.c:231
#define GEQ
Definition: d-exp.c:224
#define ASSIGN_MODIFY
Definition: d-exp.c:218
#define ANDAND
Definition: d-exp.c:220
#define LEQ
Definition: d-exp.c:223
#define DOTDOT
Definition: d-exp.c:232

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

Referenced by lex_one_token().

◆ tokentab3

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:218

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

Referenced by lex_one_token().

◆ yychar

int yychar

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

Referenced by yyparse().

◆ yycheck

const yytype_int16 yycheck[]
static
Initial value:
=
{
14, 15, 16, 17, 18, 19, 36, 20, 22, 23,
0, 5, 3, 62, 104, 6, 3, 54, 52, 53,
69, 64, 21, 54, 55, 56, 63, 35, 19, 37,
0, 21, 19, 67, 90, 91, 92, 64, 38, 39,
70, 50, 51, 44, 45, 46, 47, 48, 49, 50,
51, 86, 87, 36, 40, 43, 55, 58, 59, 72,
73, 3, 41, 5, 54, 7, 8, 9, 10, 11,
64, 161, 14, 15, 16, 74, 18, 42, 20, 93,
94, 95, 96, 11, 62, 36, 70, 100, 69, 8,
6, 65, 34, 69, 69, 66, 69, 110, 70, 113,
57, 43, 69, 60, 61, 62, 63, 64, 70, 156,
52, 53, 54, 71, 75, 78, 76, 107, 60, 61,
79, 63, 64, 77, 146, 67, 68, -1, 70, -1,
-1, 100, -1, 146, -1, 3, -1, 5, 152, 7,
8, 9, 10, 11, -1, 158, 14, 15, 16, -1,
18, 103, 20, 80, 81, 82, 83, 84, 85, -1,
-1, 88, 89, -1, -1, -1, 34, -1, -1, -1,
-1, -1, -1, -1, -1, 43, -1, -1, -1, -1,
-1, -1, -1, -1, 52, 53, 54, -1, -1, -1,
-1, -1, 60, 61, -1, 63, 64, -1, -1, 67,
68
}

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

Referenced by yyparse().

◆ yydebug

int yydebug

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

Referenced by d_parse().

◆ yydefact

const yytype_uint8 yydefact[]
static
Initial value:
=
{
0, 94, 104, 83, 87, 88, 89, 95, 85, 86,
84, 0, 0, 82, 0, 0, 0, 0, 0, 0,
72, 0, 0, 0, 0, 2, 4, 5, 7, 10,
12, 14, 16, 18, 20, 23, 24, 25, 22, 34,
37, 41, 54, 55, 58, 67, 68, 69, 60, 91,
80, 90, 3, 98, 0, 0, 45, 0, 50, 49,
48, 46, 47, 70, 73, 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, 65, 66, 0,
0, 74, 96, 0, 100, 0, 99, 0, 0, 0,
0, 93, 79, 97, 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, 59,
62, 61, 64, 77, 70, 0, 72, 53, 81, 101,
0, 0, 0, 92, 71, 57, 0, 63, 0, 76,
0, 102, 97, 56, 11, 0, 75, 103, 78
}

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

Referenced by yyparse().

◆ yydefgoto

const yytype_int16 yydefgoto[]
static
Initial value:
=
{
-1, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
43, 44, 64, 65, 45, 146, 46, 47, 48, 49,
50, 51, 57, 106, 53
}

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

Referenced by yyparse().

◆ yylval

YYSTYPE yylval

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

Referenced by classify_inner_name(), lex_one_token(), VEC(), yylex(), and yyparse().

◆ yynerrs

int yynerrs

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

Referenced by yyparse().

◆ yypact

const yytype_int16 yypact[]
static
Initial value:
=
{
132, -91, -91, -91, -91, -91, -91, -91, -91, -91,
-91, -43, -27, -91, 132, 132, 132, 132, 132, 132,
132, 132, 132, 132, 30, -91, -91, 17, -8, 0,
14, 21, 35, 12, -91, -91, -91, -91, -1, -34,
-31, -91, -91, -91, 43, -91, -91, -91, -91, -91,
-91, 72, 22, -37, 6, 132, -91, 22, -91, -91,
-91, -91, -91, -91, 49, 16, 19, -49, -91, -91,
-91, 132, 132, 132, 132, 132, 132, 132, 132, 132,
132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
132, 132, 132, 132, 132, 132, 132, -91, -91, 9,
58, -91, -91, 13, -37, 81, -91, 6, 24, 25,
132, -91, -91, 132, -91, -91, -91, 29, 14, 21,
35, 12, -91, -9, -9, -9, -9, -9, -9, -34,
-34, -9, -9, -31, -31, -31, -91, -91, -91, -91,
84, -91, -91, -91, 26, -30, 132, -91, -91, -91,
28, 27, 132, -91, -91, -91, 132, -91, 132, -91,
33, -37, -91, -91, -91, 38, -91, -91, -91
}

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

Referenced by yyparse().

◆ yypgoto

const yytype_int8 yypgoto[]
static
Initial value:
=
{
-91, -91, 1, 42, -13, -47, -91, 39, 40, 46,
37, 41, -91, -91, -91, 73, -35, -56, -14, -91,
-91, -91, 31, -22, -91, -91, -91, -91, -91, -91,
48, -91, 10, -90, -91
}

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

Referenced by yyparse().

◆ yyr1

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

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

Referenced by yyparse().

◆ yyr2

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, 3, 1, 1, 5, 4, 1, 3,
1, 3, 3, 4, 3, 2, 2, 1, 1, 1,
1, 3, 0, 1, 0, 5, 4, 3, 6, 3,
1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 4, 3, 1, 1, 2, 3, 1, 2,
1, 2, 3, 4, 1
}

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

Referenced by yy_reduce_print(), and yyparse().

◆ yyrline

const yytype_uint16 yyrline[]
static
Initial value:
=
{
0, 178, 178, 179, 185, 189, 190, 195, 196, 198,
205, 206, 211, 212, 217, 218, 223, 224, 229, 230,
235, 236, 241, 242, 243, 244, 248, 250, 255, 257,
262, 264, 266, 268, 273, 274, 276, 281, 282, 284,
286, 291, 292, 294, 296, 300, 302, 304, 306, 308,
310, 312, 314, 316, 318, 319, 323, 327, 333, 334,
339, 340, 348, 352, 357, 359, 361, 363, 364, 365,
369, 371, 377, 378, 383, 382, 391, 404, 406, 411,
413, 461, 512, 514, 522, 529, 533, 537, 542, 547,
552, 558, 563, 568, 573, 577, 592, 610, 612, 616,
625, 627, 629, 632, 638
}

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

Referenced by yy_reduce_print().

◆ yystos

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

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

Referenced by yy_reduce_print(), and yyparse().

◆ yytable

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

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

Referenced by yyparse().

◆ yytname

const char* const yytname[]
static
Initial value:
=
{
"$end", "error", "$undefined", "IDENTIFIER", "UNKNOWN_NAME", "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_NULLPTRPTR
}
#define YY_NULLPTRPTR
Definition: d-exp.c:110

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

Referenced by yy_symbol_print().

◆ yytranslate

const yytype_uint8 yytranslate[]
static

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