GDB (xrefs)
Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/rust-exp.c File Reference
#include "defs.h"
#include "block.h"
#include "charset.h"
#include "cp-support.h"
#include "gdb_obstack.h"
#include "gdb_regex.h"
#include "rust-lang.h"
#include "parser-defs.h"
#include "selftest.h"
#include "value.h"
#include "vec.h"
#include "yy-remap.h"
#include <stddef.h>

Go to the source code of this file.

Classes

struct  typed_val_int
 
struct  typed_val_float
 
struct  set_field
 
struct  rust_parser
 
union  YYSTYPE
 
struct  rust_op
 
union  yyalloc
 
struct  token_info
 

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 GDB_YY_REMAP_PREFIX   rust
 
#define RUSTSTYPE   YYSTYPE
 
#define FLOAT_TYPE1   3
 
#define FLOAT_TYPE2   4
 
#define INT_TEXT   5
 
#define INT_TYPE   6
 
#define NUM_SUBEXPRESSIONS   8
 
#define YY_NULLPTRPTR   0
 
#define YYERROR_VERBOSE   0
 
#define YYTOKENTYPE
 
#define GDBVAR   258
 
#define IDENT   259
 
#define COMPLETE   260
 
#define INTEGER   261
 
#define DECIMAL_INTEGER   262
 
#define STRING   263
 
#define BYTESTRING   264
 
#define FLOAT   265
 
#define COMPOUND_ASSIGN   266
 
#define KW_AS   267
 
#define KW_IF   268
 
#define KW_TRUE   269
 
#define KW_FALSE   270
 
#define KW_SUPER   271
 
#define KW_SELF   272
 
#define KW_MUT   273
 
#define KW_EXTERN   274
 
#define KW_CONST   275
 
#define KW_FN   276
 
#define KW_SIZEOF   277
 
#define DOTDOT   278
 
#define OROR   279
 
#define ANDAND   280
 
#define EQEQ   281
 
#define NOTEQ   282
 
#define LTEQ   283
 
#define GTEQ   284
 
#define LSH   285
 
#define RSH   286
 
#define COLONCOLON   287
 
#define ARROW   288
 
#define UNARY   289
 
#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   60
 
#define YYLAST   1031
 
#define YYNTOKENS   58
 
#define YYNNTS   35
 
#define YYNRULES   121
 
#define YYNSTATES   213
 
#define YYUNDEFTOK   2
 
#define YYMAXUTOK   289
 
#define YYTRANSLATE(YYX)   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
#define YYPACT_NINF   -151
 
#define yypact_value_is_default(Yystate)   (!!((Yystate) == (-151)))
 
#define YYTABLE_NINF   -119
 
#define yytable_value_is_error(Yytable_value)   (!!((Yytable_value) == (-119)))
 
#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 std::vector< const struct rust_op * > rust_op_vector
 
typedef std::vector< set_fieldrust_set_vector
 
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

static int rustyylex (void)
 
static void rust_push_back (char c)
 
static const char * rust_copy_name (const char *, int)
 
static struct stoken rust_concat3 (const char *, const char *, const char *)
 
static struct stoken make_stoken (const char *)
 
static struct block_symbol rust_lookup_symbol (const char *name, const struct block *block, const domain_enum domain)
 
static struct typerust_lookup_type (const char *name, const struct block *block)
 
static struct typerust_type (const char *name)
 
static const struct rust_opcrate_name (const struct rust_op *name)
 
static const struct rust_opsuper_name (const struct rust_op *name, unsigned int n_supers)
 
static const struct rust_opast_operation (enum exp_opcode opcode, const struct rust_op *left, const struct rust_op *right)
 
static const struct rust_opast_compound_assignment (enum exp_opcode opcode, const struct rust_op *left, const struct rust_op *rust_op)
 
static const struct rust_opast_literal (struct typed_val_int val)
 
static const struct rust_opast_dliteral (struct typed_val_float val)
 
static const struct rust_opast_structop (const struct rust_op *left, const char *name, int completing)
 
static const struct rust_opast_structop_anonymous (const struct rust_op *left, struct typed_val_int number)
 
static const struct rust_opast_unary (enum exp_opcode opcode, const struct rust_op *expr)
 
static const struct rust_opast_cast (const struct rust_op *expr, const struct rust_op *type)
 
static const struct rust_opast_call_ish (enum exp_opcode opcode, const struct rust_op *expr, rust_op_vector *params)
 
static const struct rust_opast_path (struct stoken name, rust_op_vector *params)
 
static const struct rust_opast_string (struct stoken str)
 
static const struct rust_opast_struct (const struct rust_op *name, rust_set_vector *fields)
 
static const struct rust_opast_range (const struct rust_op *lhs, const struct rust_op *rhs)
 
static const struct rust_opast_array_type (const struct rust_op *lhs, struct typed_val_int val)
 
static const struct rust_opast_slice_type (const struct rust_op *type)
 
static const struct rust_opast_reference_type (const struct rust_op *type)
 
static const struct rust_opast_pointer_type (const struct rust_op *type, int is_mut)
 
static const struct rust_opast_function_type (const struct rust_op *result, rust_op_vector *params)
 
static const struct rust_opast_tuple_type (rust_op_vector *params)
 
int yyparse (void)
 
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 void update_innermost_block (struct block_symbol sym)
 
static uint32_t lex_hex (int min, int max)
 
static uint32_t lex_escape (int is_byte)
 
static int lex_character (void)
 
static int starts_raw_string (const char *str)
 
static bool ends_raw_string (const char *str, int n)
 
static int lex_string (void)
 
static bool space_then_number (const char *string)
 
static bool rust_identifier_start_p (char c)
 
static int lex_identifier (void)
 
static int lex_operator (void)
 
static int lex_number (void)
 
static struct rust_opast_basic_type (enum type_code typecode)
 
static void munge_name_and_block (const char **name, const struct block **block)
 
static struct typeconvert_ast_to_type (struct parser_state *state, const struct rust_op *operation)
 
static const char * convert_name (struct parser_state *state, const struct rust_op *operation)
 
static std::vector< struct type * > convert_params_to_types (struct parser_state *state, rust_op_vector *params)
 
static void convert_ast_to_expression (struct parser_state *state, const struct rust_op *operation, const struct rust_op *top, bool want_type=false)
 
static void convert_params_to_expression (struct parser_state *state, rust_op_vector *params, const struct rust_op *top)
 
int rust_parse (struct parser_state *state)
 
void rustyyerror (const char *msg)
 
void _initialize_rust_exp (void)
 

Variables

static rust_parsercurrent_parser
 
static const char * number_regex_text
 
static regex_t number_regex
 
static auto_obstackwork_obstack
 
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_int16 yypgoto []
 
static const yytype_int16 yydefgoto []
 
static const yytype_int16 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 const struct token_info identifier_tokens []
 
static const struct token_info operator_tokens []
 

Macro Definition Documentation

◆ ANDAND

#define ANDAND   280

Definition at line 381 of file rust-exp.c.

◆ ARROW

#define ARROW   288

Definition at line 389 of file rust-exp.c.

◆ BYTESTRING

#define BYTESTRING   264

Definition at line 365 of file rust-exp.c.

Referenced by lex_string().

◆ COLONCOLON

#define COLONCOLON   287

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

◆ COMPLETE

#define COMPLETE   260

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

Referenced by lex_identifier(), and rustyylex().

◆ COMPOUND_ASSIGN

#define COMPOUND_ASSIGN   266

Definition at line 367 of file rust-exp.c.

◆ DECIMAL_INTEGER

#define DECIMAL_INTEGER   262

Definition at line 363 of file rust-exp.c.

Referenced by lex_number().

◆ DOTDOT

#define DOTDOT   278

Definition at line 379 of file rust-exp.c.

◆ EQEQ

#define EQEQ   281

Definition at line 382 of file rust-exp.c.

◆ FLOAT

#define FLOAT   265

Definition at line 366 of file rust-exp.c.

Referenced by lex_number().

◆ FLOAT_TYPE1

#define FLOAT_TYPE1   3

Referenced by lex_number().

◆ FLOAT_TYPE2

#define FLOAT_TYPE2   4

Referenced by lex_number().

◆ GDB_YY_REMAP_PREFIX

#define GDB_YY_REMAP_PREFIX   rust

Definition at line 81 of file rust-exp.c.

◆ GDBVAR

#define GDBVAR   258

Definition at line 359 of file rust-exp.c.

Referenced by lex_identifier().

◆ GTEQ

#define GTEQ   284

Definition at line 385 of file rust-exp.c.

◆ IDENT

#define IDENT   259

Definition at line 360 of file rust-exp.c.

Referenced by lex_identifier().

◆ INT_TEXT

#define INT_TEXT   5

Referenced by lex_number().

◆ INT_TYPE

#define INT_TYPE   6

Referenced by lex_number().

◆ INTEGER

#define INTEGER   261

Definition at line 362 of file rust-exp.c.

Referenced by lex_character(), and lex_number().

◆ KW_AS

#define KW_AS   267

Definition at line 368 of file rust-exp.c.

◆ KW_CONST

#define KW_CONST   275

Definition at line 376 of file rust-exp.c.

◆ KW_EXTERN

#define KW_EXTERN   274

Definition at line 375 of file rust-exp.c.

◆ KW_FALSE

#define KW_FALSE   270

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

◆ KW_FN

#define KW_FN   276

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

◆ KW_IF

#define KW_IF   268

Definition at line 369 of file rust-exp.c.

◆ KW_MUT

#define KW_MUT   273

Definition at line 374 of file rust-exp.c.

◆ KW_SELF

#define KW_SELF   272

Definition at line 373 of file rust-exp.c.

◆ KW_SIZEOF

#define KW_SIZEOF   277

Definition at line 378 of file rust-exp.c.

◆ KW_SUPER

#define KW_SUPER   271

Definition at line 372 of file rust-exp.c.

◆ KW_TRUE

#define KW_TRUE   269

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

◆ LSH

#define LSH   285

Definition at line 386 of file rust-exp.c.

◆ LTEQ

#define LTEQ   283

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

◆ NOTEQ

#define NOTEQ   282

Definition at line 383 of file rust-exp.c.

◆ NUM_SUBEXPRESSIONS

#define NUM_SUBEXPRESSIONS   8

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

Referenced by lex_number().

◆ OROR

#define OROR   279

Definition at line 380 of file rust-exp.c.

◆ RSH

#define RSH   286

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

◆ RUSTSTYPE

#define RUSTSTYPE   YYSTYPE

Definition at line 84 of file rust-exp.c.

◆ STRING

#define STRING   263

Definition at line 364 of file rust-exp.c.

Referenced by lex_string().

◆ UNARY

#define UNARY   289

Definition at line 390 of file rust-exp.c.

◆ YY_

#define YY_ (   Msgid)    Msgid

Definition at line 527 of file rust-exp.c.

Referenced by yyparse().

◆ YY_ATTRIBUTE

#define YY_ATTRIBUTE (   Spec)    /* empty */

Definition at line 537 of file rust-exp.c.

◆ YY_ATTRIBUTE_PURE

#define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))

Definition at line 542 of file rust-exp.c.

◆ YY_ATTRIBUTE_UNUSED

#define YY_ATTRIBUTE_UNUSED   YY_ATTRIBUTE ((__unused__))

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

◆ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

Definition at line 577 of file rust-exp.c.

Referenced by yydestruct(), and yyparse().

◆ YY_IGNORE_MAYBE_UNINITIALIZED_END

#define YY_IGNORE_MAYBE_UNINITIALIZED_END

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

Referenced by yydestruct(), and yyparse().

◆ YY_INITIAL_VALUE

#define YY_INITIAL_VALUE (   Value)    Value

Definition at line 574 of file rust-exp.c.

◆ YY_LOCATION_PRINT

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

Definition at line 1248 of file rust-exp.c.

◆ YY_NULLPTRPTR

#define YY_NULLPTRPTR   0

Definition at line 298 of file rust-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: rust-exp.c:1353

Definition at line 1345 of file rust-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: rust-exp.c:1353

Definition at line 1314 of file rust-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: rust-exp.c:1353

Definition at line 1252 of file rust-exp.c.

Referenced by yydestruct(), and yyparse().

◆ YYABORT

#define YYABORT   goto yyabortlab

Definition at line 1203 of file rust-exp.c.

Referenced by yyparse().

◆ YYACCEPT

#define YYACCEPT   goto yyacceptlab

Definition at line 1202 of file rust-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)
#define YY_(Msgid)
Definition: rust-exp.c:527
#define yylen
#define yyssp
if(!(yy_init))
Definition: ada-lex.c:1075
#define YYEMPTY
Definition: rust-exp.c:1199
int yychar
Definition: rust-exp.c:1622

Definition at line 1209 of file rust-exp.c.

◆ YYBISON

#define YYBISON   1

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

◆ YYBISON_VERSION

#define YYBISON_VERSION   "3.0.4"

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

◆ yyclearin

#define yyclearin   (yychar = YYEMPTY)

Definition at line 1198 of file rust-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 700 of file rust-exp.c.

◆ YYCOPY_NEEDED

#define YYCOPY_NEEDED   1

Definition at line 672 of file rust-exp.c.

◆ YYDPRINTF

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

Definition at line 1240 of file rust-exp.c.

Referenced by yyparse().

◆ YYEMPTY

#define YYEMPTY   (-2)

Definition at line 1199 of file rust-exp.c.

Referenced by yyparse().

◆ YYEOF

#define YYEOF   0

Definition at line 1200 of file rust-exp.c.

Referenced by yyparse().

◆ YYERRCODE

#define YYERRCODE   256

Definition at line 1228 of file rust-exp.c.

◆ yyerrok

#define yyerrok   (yyerrstatus = 0)

Definition at line 1197 of file rust-exp.c.

◆ YYERROR

#define YYERROR   goto yyerrorlab

Definition at line 1204 of file rust-exp.c.

◆ YYERROR_VERBOSE

#define YYERROR_VERBOSE   0

Definition at line 307 of file rust-exp.c.

◆ YYFINAL

#define YYFINAL   60

Definition at line 713 of file rust-exp.c.

Referenced by yyparse().

◆ YYFREE

#define YYFREE   xfree

Definition at line 643 of file rust-exp.c.

◆ YYINITDEPTH

#define YYINITDEPTH   200

Definition at line 1364 of file rust-exp.c.

Referenced by yyparse().

◆ YYLAST

#define YYLAST   1031

Definition at line 715 of file rust-exp.c.

Referenced by yyparse().

◆ YYMALLOC

#define YYMALLOC   xmalloc

Definition at line 637 of file rust-exp.c.

◆ YYMAXDEPTH

#define YYMAXDEPTH   10000

Definition at line 1375 of file rust-exp.c.

Referenced by yyparse().

◆ YYMAXUTOK

#define YYMAXUTOK   289

Definition at line 729 of file rust-exp.c.

◆ YYNNTS

#define YYNNTS   35

Definition at line 720 of file rust-exp.c.

◆ YYNRULES

#define YYNRULES   121

Definition at line 722 of file rust-exp.c.

◆ YYNSTATES

#define YYNSTATES   213

Definition at line 724 of file rust-exp.c.

◆ YYNTOKENS

#define YYNTOKENS   58

Definition at line 718 of file rust-exp.c.

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

◆ YYPACT_NINF

#define YYPACT_NINF   -151

Definition at line 828 of file rust-exp.c.

◆ yypact_value_is_default

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

Definition at line 830 of file rust-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 rust-exp.c.

◆ YYPURE

#define YYPURE   0

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

◆ YYPUSH

#define YYPUSH   0

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

◆ YYRECOVERING

#define YYRECOVERING ( )    (!!yyerrstatus)

Definition at line 1207 of file rust-exp.c.

◆ YYSIZE_MAXIMUM

#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)

Definition at line 517 of file rust-exp.c.

◆ YYSIZE_T

#define YYSIZE_T   size_t

Definition at line 511 of file rust-exp.c.

Referenced by yyparse().

◆ YYSKELETON_NAME

#define YYSKELETON_NAME   "yacc.c"

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

◆ YYSTACK_ALLOC

#define YYSTACK_ALLOC   YYMALLOC

Definition at line 623 of file rust-exp.c.

Referenced by yyparse().

◆ YYSTACK_ALLOC_MAXIMUM

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Definition at line 626 of file rust-exp.c.

◆ YYSTACK_BYTES

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

Definition at line 668 of file rust-exp.c.

Referenced by yyparse().

◆ YYSTACK_FREE

#define YYSTACK_FREE   YYFREE

Definition at line 624 of file rust-exp.c.

Referenced by yyparse().

◆ YYSTACK_GAP_MAXIMUM

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

Definition at line 664 of file rust-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: rust-exp.c:664
#define yystacksize

Definition at line 679 of file rust-exp.c.

Referenced by yyparse().

◆ YYSTYPE_IS_DECLARED

#define YYSTYPE_IS_DECLARED   1

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

◆ YYSTYPE_IS_TRIVIAL

#define YYSTYPE_IS_TRIVIAL   1

Definition at line 432 of file rust-exp.c.

◆ YYTABLE_NINF

#define YYTABLE_NINF   -119

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

◆ yytable_value_is_error

#define yytable_value_is_error (   Yytable_value)    (!!((Yytable_value) == (-119)))

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

Referenced by yyparse().

◆ YYTERROR

#define YYTERROR   1

Definition at line 1227 of file rust-exp.c.

Referenced by yyparse().

◆ YYTOKENTYPE

#define YYTOKENTYPE

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

◆ YYTRANSLATE

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

Definition at line 731 of file rust-exp.c.

Referenced by yyparse().

◆ YYUNDEFTOK

#define YYUNDEFTOK   2

Definition at line 728 of file rust-exp.c.

◆ YYUSE

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

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

Referenced by yy_symbol_value_print(), and yydestruct().

Typedef Documentation

◆ rust_op_vector

typedef std::vector<const struct rust_op *> rust_op_vector

Definition at line 86 of file rust-exp.c.

◆ rust_set_vector

typedef std::vector<set_field> rust_set_vector

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

◆ YYSTYPE

typedef union YYSTYPE YYSTYPE

Definition at line 431 of file rust-exp.c.

◆ yytype_int16

typedef short int yytype_int16

Definition at line 501 of file rust-exp.c.

◆ yytype_int8

typedef signed char yytype_int8

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

◆ yytype_uint16

typedef unsigned short int yytype_uint16

Definition at line 495 of file rust-exp.c.

◆ yytype_uint8

typedef unsigned char yytype_uint8

Definition at line 483 of file rust-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 322 of file rust-exp.c.

Function Documentation

◆ _initialize_rust_exp()

void _initialize_rust_exp ( void  )

Definition at line 4689 of file rust-exp.c.

References code, gdb_assert, number_regex, number_regex_text, and selftests::register_test().

◆ ast_array_type()

static const struct rust_op * ast_array_type ( const struct rust_op lhs,
struct typed_val_int  val 
)
static

Definition at line 3781 of file rust-exp.c.

References ast_basic_type(), rust_op::left, rust_op::right, and TYPE_CODE_ARRAY.

Referenced by yyparse().

◆ ast_basic_type()

static struct rust_op* ast_basic_type ( enum type_code  typecode)
static

◆ ast_call_ish()

static const struct rust_op * ast_call_ish ( enum exp_opcode  opcode,
const struct rust_op expr,
rust_op_vector params 
)
static

Definition at line 3669 of file rust-exp.c.

References rust_op::left, OBSTACK_ZALLOC, rust_op::opcode, rust_op::right, and work_obstack.

Referenced by yyparse().

◆ ast_cast()

static const struct rust_op * ast_cast ( const struct rust_op expr,
const struct rust_op type 
)
static

Definition at line 3653 of file rust-exp.c.

References rust_op::left, OBSTACK_ZALLOC, rust_op::opcode, rust_op::right, type, and work_obstack.

Referenced by yyparse().

◆ ast_compound_assignment()

static const struct rust_op * ast_compound_assignment ( enum exp_opcode  opcode,
const struct rust_op left,
const struct rust_op rust_op 
)
static

◆ ast_dliteral()

static const struct rust_op * ast_dliteral ( struct typed_val_float  val)
static

Definition at line 3632 of file rust-exp.c.

References rust_op::left, OBSTACK_ZALLOC, rust_op::opcode, and work_obstack.

Referenced by yyparse().

◆ ast_function_type()

static const struct rust_op * ast_function_type ( const struct rust_op result,
rust_op_vector params 
)
static

Definition at line 3828 of file rust-exp.c.

References ast_basic_type(), rust_op::left, rust_op::right, and TYPE_CODE_FUNC.

Referenced by yyparse().

◆ ast_literal()

static const struct rust_op * ast_literal ( struct typed_val_int  val)
static

Definition at line 3619 of file rust-exp.c.

References rust_op::left, OBSTACK_ZALLOC, rust_op::opcode, and work_obstack.

Referenced by yyparse().

◆ ast_operation()

static const struct rust_op * ast_operation ( enum exp_opcode  opcode,
const struct rust_op left,
const struct rust_op right 
)
static

Definition at line 3588 of file rust-exp.c.

References rust_op::left, OBSTACK_ZALLOC, rust_op::opcode, rust_op::right, and work_obstack.

Referenced by ast_unary(), and yyparse().

◆ ast_path()

static const struct rust_op * ast_path ( struct stoken  name,
rust_op_vector params 
)
static

Definition at line 3698 of file rust-exp.c.

References rust_op::left, OBSTACK_ZALLOC, rust_op::opcode, rust_op::right, and work_obstack.

Referenced by crate_name(), super_name(), and yyparse().

◆ ast_pointer_type()

static const struct rust_op * ast_pointer_type ( const struct rust_op type,
int  is_mut 
)
static

Definition at line 3816 of file rust-exp.c.

References ast_basic_type(), rust_op::left, type, and TYPE_CODE_PTR.

Referenced by yyparse().

◆ ast_range()

static const struct rust_op * ast_range ( const struct rust_op lhs,
const struct rust_op rhs 
)
static

Definition at line 3755 of file rust-exp.c.

References rust_op::left, OBSTACK_ZALLOC, rust_op::opcode, rust_op::right, and work_obstack.

Referenced by yyparse().

◆ ast_reference_type()

static const struct rust_op * ast_reference_type ( const struct rust_op type)
static

Definition at line 3805 of file rust-exp.c.

References ast_basic_type(), rust_op::left, type, and TYPE_CODE_REF.

Referenced by yyparse().

◆ ast_slice_type()

static const struct rust_op * ast_slice_type ( const struct rust_op type)
static

Definition at line 3793 of file rust-exp.c.

References ast_basic_type(), rust_op::left, type, and TYPE_CODE_COMPLEX.

Referenced by yyparse().

◆ ast_string()

static const struct rust_op * ast_string ( struct stoken  str)
static

Definition at line 3712 of file rust-exp.c.

References rust_op::left, OBSTACK_ZALLOC, rust_op::opcode, and work_obstack.

Referenced by yyparse().

◆ ast_struct()

static const struct rust_op * ast_struct ( const struct rust_op name,
rust_set_vector fields 
)
static

Definition at line 3684 of file rust-exp.c.

References rust_op::left, name, OBSTACK_ZALLOC, rust_op::opcode, rust_op::right, and work_obstack.

Referenced by yyparse().

◆ ast_structop()

static const struct rust_op * ast_structop ( const struct rust_op left,
const char *  name,
int  completing 
)
static

◆ ast_structop_anonymous()

static const struct rust_op * ast_structop_anonymous ( const struct rust_op left,
struct typed_val_int  number 
)
static

Definition at line 3740 of file rust-exp.c.

References rust_op::left, OBSTACK_ZALLOC, rust_op::opcode, rust_op::right, and work_obstack.

Referenced by yyparse().

◆ ast_tuple_type()

static const struct rust_op * ast_tuple_type ( rust_op_vector params)
static

Definition at line 3840 of file rust-exp.c.

References ast_basic_type(), rust_op::left, and TYPE_CODE_STRUCT.

Referenced by yyparse().

◆ ast_unary()

static const struct rust_op * ast_unary ( enum exp_opcode  opcode,
const struct rust_op expr 
)
static

Definition at line 3645 of file rust-exp.c.

References ast_operation(), and rust_op::opcode.

Referenced by yyparse().

◆ convert_ast_to_expression()

static void convert_ast_to_expression ( struct parser_state state,
const struct rust_op operation,
const struct rust_op top,
bool  want_type = false 
)
static

◆ convert_ast_to_type()

static struct type * convert_ast_to_type ( struct parser_state state,
const struct rust_op operation 
)
static

◆ convert_name()

static const char * convert_name ( struct parser_state state,
const struct rust_op operation 
)
static

◆ convert_params_to_expression()

static void convert_params_to_expression ( struct parser_state state,
rust_op_vector params,
const struct rust_op top 
)
static

Definition at line 4068 of file rust-exp.c.

References convert_ast_to_expression().

Referenced by convert_ast_to_expression().

◆ convert_params_to_types()

static std::vector<struct type *> convert_params_to_types ( struct parser_state state,
rust_op_vector params 
)
static

Definition at line 3917 of file rust-exp.c.

References convert_ast_to_type().

Referenced by convert_ast_to_type(), and convert_name().

◆ crate_name()

static const struct rust_op * crate_name ( const struct rust_op name)
static

◆ ends_raw_string()

static bool ends_raw_string ( const char *  str,
int  n 
)
static

Definition at line 3160 of file rust-exp.c.

References gdb_assert.

Referenced by lex_string().

◆ lex_character()

static int lex_character ( void  )
static

Definition at line 3107 of file rust-exp.c.

References _, error(), gdb_assert, INTEGER, lex_escape(), lexptr, rust_type(), and value::type.

Referenced by rustyylex().

◆ lex_escape()

static uint32_t lex_escape ( int  is_byte)
static

Definition at line 3041 of file rust-exp.c.

References _, error(), gdb_assert, lex_hex(), and lexptr.

Referenced by lex_character(), and lex_string().

◆ lex_hex()

static uint32_t lex_hex ( int  min,
int  max 
)
static

Definition at line 3003 of file rust-exp.c.

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

Referenced by lex_escape().

◆ lex_identifier()

static int lex_identifier ( void  )
static

◆ lex_number()

static int lex_number ( void  )
static

◆ lex_operator()

static int lex_operator ( void  )
static

Definition at line 3345 of file rust-exp.c.

References lexptr, name, token_info::opcode, token::opcode, and operator_tokens.

Referenced by rustyylex().

◆ lex_string()

static int lex_string ( void  )
static

◆ make_stoken()

static struct stoken make_stoken ( const char *  p)
static

◆ munge_name_and_block()

static void munge_name_and_block ( const char **  name,
const struct block **  block 
)
static

Definition at line 3852 of file rust-exp.c.

References block_static_block(), and name.

Referenced by rust_lookup_symbol(), and rust_lookup_type().

◆ rust_concat3()

static struct stoken rust_concat3 ( const char *  s1,
const char *  s2,
const char *  s3 
)
static

Definition at line 2898 of file rust-exp.c.

References make_stoken(), obconcat(), and work_obstack.

Referenced by yyparse().

◆ rust_copy_name()

static const char * rust_copy_name ( const char *  name,
int  len 
)
static

Definition at line 2877 of file rust-exp.c.

References name, and work_obstack.

Referenced by lex_identifier().

◆ rust_identifier_start_p()

static bool rust_identifier_start_p ( char  c)
static

Definition at line 3260 of file rust-exp.c.

Referenced by lex_identifier(), lex_number(), and rustyylex().

◆ rust_lookup_symbol()

static struct block_symbol rust_lookup_symbol ( const char *  name,
const struct block block,
const domain_enum  domain 
)
static

◆ rust_lookup_type()

static struct type * rust_lookup_type ( const char *  name,
const struct block block 
)
static

◆ rust_parse()

int rust_parse ( struct parser_state state)

Definition at line 4410 of file rust-exp.c.

References convert_ast_to_expression(), parse_completion, and rust_parser::rust_ast.

◆ rust_push_back()

static void rust_push_back ( char  c)
static

Definition at line 3574 of file rust-exp.c.

References gdb_assert, lexptr, and prev_lexptr.

Referenced by yyparse().

◆ rust_type()

static struct type * rust_type ( const char *  name)
static

◆ rustyyerror()

void rustyyerror ( const char *  msg)

Definition at line 4429 of file rust-exp.c.

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

◆ rustyylex()

static int rustyylex ( void  )
static

◆ space_then_number()

static bool space_then_number ( const char *  string)
static

Definition at line 3245 of file rust-exp.c.

References string.

Referenced by lex_identifier().

◆ starts_raw_string()

static int starts_raw_string ( const char *  str)
static

Definition at line 3142 of file rust-exp.c.

Referenced by lex_string(), and rustyylex().

◆ super_name()

static const struct rust_op * super_name ( const struct rust_op name,
unsigned int  n_supers 
)
static

◆ update_innermost_block()

static void update_innermost_block ( struct block_symbol  sym)
static

◆ xfree()

void xfree ( void *  )

◆ xmalloc()

void* xmalloc ( YYSIZE_T  )

◆ yy_reduce_print()

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

Definition at line 1326 of file rust-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 1303 of file rust-exp.c.

References YYFPRINTF.

◆ yy_symbol_print()

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

Definition at line 1288 of file rust-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 1269 of file rust-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

◆ yyparse()

int yyparse ( void  )

Variable Documentation

◆ current_parser

rust_parser* current_parser
static

◆ identifier_tokens

const struct token_info identifier_tokens[]
static
Initial value:
=
{
{ "as", KW_AS, OP_NULL },
{ "false", KW_FALSE, OP_NULL },
{ "if", 0, OP_NULL },
{ "mut", KW_MUT, OP_NULL },
{ "const", KW_CONST, OP_NULL },
{ "self", KW_SELF, OP_NULL },
{ "super", KW_SUPER, OP_NULL },
{ "true", KW_TRUE, OP_NULL },
{ "extern", KW_EXTERN, OP_NULL },
{ "fn", KW_FN, OP_NULL },
{ "sizeof", KW_SIZEOF, OP_NULL },
}
#define KW_FN
Definition: rust-exp.c:377
#define KW_TRUE
Definition: rust-exp.c:370
#define KW_CONST
Definition: rust-exp.c:376
#define KW_EXTERN
Definition: rust-exp.c:375
#define KW_AS
Definition: rust-exp.c:368
#define KW_SELF
Definition: rust-exp.c:373
#define KW_SIZEOF
Definition: rust-exp.c:378
#define KW_FALSE
Definition: rust-exp.c:371
#define KW_MUT
Definition: rust-exp.c:374
#define KW_SUPER
Definition: rust-exp.c:372

Definition at line 2830 of file rust-exp.c.

Referenced by lex_identifier().

◆ number_regex

regex_t number_regex
static

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

Referenced by _initialize_rust_exp(), and lex_number().

◆ number_regex_text

const char* number_regex_text
static
Initial value:
=
"^("
"[0-9][0-9_]*\\.[0-9][0-9_]*([eE][-+]?[0-9][0-9_]*)?(f32|f64)?"
#define FLOAT_TYPE1
"|"
#define FLOAT_TYPE2
"[0-9][0-9_]*[eE][-+]?[0-9][0-9_]*(f32|f64)?"
"|"
"[0-9][0-9_]*\\."
"|"
#define INT_TEXT
#define INT_TYPE
"(0x[a-fA-F0-9_]+|0o[0-7_]+|0b[01_]+|[0-9][0-9_]*)"
"([iu](size|8|16|32|64))?"
")"

Definition at line 178 of file rust-exp.c.

Referenced by _initialize_rust_exp().

◆ operator_tokens

const struct token_info operator_tokens[]
static
Initial value:
=
{
{ ">>=", COMPOUND_ASSIGN, BINOP_RSH },
{ "<<=", COMPOUND_ASSIGN, BINOP_LSH },
{ "<<", LSH, OP_NULL },
{ ">>", RSH, OP_NULL },
{ "&&", ANDAND, OP_NULL },
{ "||", OROR, OP_NULL },
{ "==", EQEQ, OP_NULL },
{ "!=", NOTEQ, OP_NULL },
{ "<=", LTEQ, OP_NULL },
{ ">=", GTEQ, OP_NULL },
{ "+=", COMPOUND_ASSIGN, BINOP_ADD },
{ "-=", COMPOUND_ASSIGN, BINOP_SUB },
{ "*=", COMPOUND_ASSIGN, BINOP_MUL },
{ "/=", COMPOUND_ASSIGN, BINOP_DIV },
{ "%=", COMPOUND_ASSIGN, BINOP_REM },
{ "&=", COMPOUND_ASSIGN, BINOP_BITWISE_AND },
{ "|=", COMPOUND_ASSIGN, BINOP_BITWISE_IOR },
{ "^=", COMPOUND_ASSIGN, BINOP_BITWISE_XOR },
{ "::", COLONCOLON, OP_NULL },
{ "..", DOTDOT, OP_NULL },
{ "->", ARROW, OP_NULL }
}
#define COMPOUND_ASSIGN
Definition: rust-exp.c:367
#define LTEQ
Definition: rust-exp.c:384
#define ANDAND
Definition: rust-exp.c:381
#define ARROW
Definition: rust-exp.c:389
#define DOTDOT
Definition: rust-exp.c:379
#define COLONCOLON
Definition: rust-exp.c:388
#define GTEQ
Definition: rust-exp.c:385
#define RSH
Definition: rust-exp.c:387
#define EQEQ
Definition: rust-exp.c:382
#define LSH
Definition: rust-exp.c:386
#define OROR
Definition: rust-exp.c:380
#define NOTEQ
Definition: rust-exp.c:383

Definition at line 2847 of file rust-exp.c.

Referenced by lex_operator().

◆ work_obstack

auto_obstack* work_obstack
static

◆ yychar

int yychar

Definition at line 1622 of file rust-exp.c.

Referenced by yyparse().

◆ yycheck

const yytype_int16 yycheck[]
static

Definition at line 1024 of file rust-exp.c.

Referenced by yyparse().

◆ yydebug

int yydebug

Definition at line 1353 of file rust-exp.c.

◆ yydefact

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

Definition at line 869 of file rust-exp.c.

Referenced by yyparse().

◆ yydefgoto

const yytype_int16 yydefgoto[]
static
Initial value:
=
{
-1, 22, 142, 24, 25, 26, 150, 151, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
143, 144, 87, 39, 40, 89, 41, 42, 43, 113,
114, 115, 169, 170, 171
}

Definition at line 905 of file rust-exp.c.

Referenced by yyparse().

◆ yylval

YYSTYPE yylval

Definition at line 1625 of file rust-exp.c.

Referenced by yyparse().

◆ yynerrs

int yynerrs

Definition at line 1627 of file rust-exp.c.

Referenced by yyparse().

◆ yypact

const yytype_int16 yypact[]
static
Initial value:
=
{
384, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-20, 41, -2, 119, 41, 176, 384, 384, 384, 228,
280, 384, 56, 742, -151, -151, -151, -151, -151, -151,
-151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
42, -151, 8, 30, 41, 30, 384, 781, 30, 384,
68, 68, 68, 68, 384, 425, -28, -151, 620, 68,
-151, 384, 209, 119, 384, 384, 384, 384, 384, 384,
384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
384, 384, 384, 384, 384, 96, 332, -151, 53, 10,
6, 5, 30, 661, 68, 464, 2, 384, 384, -151,
332, -151, 820, -151, 78, 109, 71, 109, 261, 15,
209, 396, 42, -151, 73, -151, -151, 781, 854, 888,
922, 922, 922, 922, 162, 162, 820, 922, 922, 942,
962, 982, 47, 313, 313, -11, -11, -11, 503, -151,
-151, -151, 742, 74, 70, -151, 98, 30, 77, 384,
-151, 86, -151, 209, -151, 384, -151, 542, 742, 89,
109, -151, 396, -151, 209, -151, 209, 209, 87, -151,
93, 95, 27, 142, 209, -151, -151, -151, 384, 742,
-151, -8, 581, -151, -151, -151, 99, -50, -151, -151,
112, -151, 209, -151, -151, -6, 702, -151, -151, -151,
114, -151, 97, 101, -151, -151, -151, 6, 209, -151,
-151, -151, -151
}

Definition at line 840 of file rust-exp.c.

Referenced by yyparse().

◆ yypgoto

const yytype_int16 yypgoto[]
static
Initial value:
=
{
-151, -151, 0, -151, -151, -151, -151, -53, -151, -151,
-151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-15, 57, -151, -151, -60, 51, -151, -151, -3, -151,
-151, -73, -55, 3, -150
}

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

Referenced by yyparse().

◆ yyr1

const yytype_uint8 yyr1[]
static
Initial value:
=
{
0, 58, 59, 60, 60, 60, 60, 60, 60, 60,
60, 60, 60, 60, 60, 60, 61, 62, 63, 64,
64, 65, 65, 65, 66, 66, 66, 66, 67, 67,
67, 67, 68, 68, 68, 68, 68, 68, 68, 69,
69, 69, 70, 71, 71, 71, 71, 71, 71, 71,
72, 72, 72, 72, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 74, 75, 76, 77, 78, 78, 79,
79, 80, 81, 82, 82, 83, 83, 84, 84, 84,
85, 85, 85, 85, 85, 86, 86, 86, 86, 87,
87, 87, 87, 87, 88, 88, 89, 89, 89, 90,
90, 90, 90, 90, 90, 90, 90, 90, 91, 91,
92, 92
}

Definition at line 1161 of file rust-exp.c.

Referenced by yyparse().

◆ yyr2

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

Definition at line 1179 of file rust-exp.c.

Referenced by yy_reduce_print(), and yyparse().

◆ yyrline

const yytype_uint16 yyrline[]
static
Initial value:
=
{
0, 406, 406, 419, 420, 421, 422, 423, 424, 425,
426, 427, 428, 429, 430, 431, 435, 443, 460, 465,
475, 487, 490, 496, 508, 510, 512, 514, 519, 521,
523, 525, 530, 532, 534, 536, 563, 565, 574, 586,
588, 593, 598, 603, 606, 609, 618, 621, 624, 626,
631, 632, 633, 634, 638, 641, 644, 647, 650, 653,
656, 659, 662, 665, 668, 671, 674, 677, 680, 683,
686, 689, 692, 697, 702, 707, 713, 718, 723, 732,
736, 741, 748, 752, 754, 758, 760, 765, 767, 769,
774, 775, 777, 779, 781, 793, 795, 801, 803, 811,
812, 814, 816, 818, 830, 832, 841, 842, 844, 852,
853, 855, 857, 859, 861, 863, 865, 867, 873, 874,
879, 885
}

Definition at line 771 of file rust-exp.c.

Referenced by yy_reduce_print().

◆ yystos

const yytype_uint8 yystos[]
static
Initial value:
=
{
0, 3, 4, 6, 7, 8, 9, 10, 14, 15,
17, 19, 22, 23, 32, 39, 41, 42, 43, 47,
49, 57, 59, 60, 61, 62, 63, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 81,
82, 84, 85, 86, 32, 86, 49, 60, 86, 18,
60, 60, 60, 60, 18, 60, 78, 51, 60, 60,
0, 11, 12, 23, 24, 25, 26, 27, 28, 29,
30, 31, 34, 35, 36, 37, 38, 39, 40, 41,
42, 43, 44, 45, 47, 48, 49, 80, 16, 83,
52, 32, 86, 60, 60, 60, 78, 56, 50, 55,
50, 51, 60, 4, 17, 19, 21, 32, 39, 43,
47, 49, 82, 87, 88, 89, 90, 60, 60, 60,
60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
60, 60, 60, 60, 60, 60, 60, 60, 60, 4,
5, 7, 60, 78, 79, 32, 16, 86, 4, 23,
64, 65, 4, 35, 51, 56, 55, 60, 60, 79,
32, 89, 49, 89, 47, 90, 18, 20, 90, 90,
91, 92, 83, 32, 35, 55, 51, 32, 54, 60,
53, 92, 60, 55, 51, 89, 91, 90, 90, 90,
56, 51, 50, 89, 4, 92, 60, 31, 36, 55,
51, 55, 6, 7, 90, 31, 36, 50, 33, 55,
55, 65, 90
}

Definition at line 1134 of file rust-exp.c.

Referenced by yy_reduce_print(), and yyparse().

◆ yytable

const yytype_int16 yytable[]
static

Definition at line 916 of file rust-exp.c.

Referenced by yyparse().

◆ yytname

const char* const yytname[]
static
Initial value:
=
{
"$end", "error", "$undefined", "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", "'['", "'.'", "'('", "','", "')'", "'{'",
"'}'", "':'", "']'", "';'", "'!'", "$accept", "start", "expr",
"tuple_expr", "unit_expr", "struct_expr", "struct_expr_tail",
"struct_expr_list", "array_expr", "range_expr", "literal", "field_expr",
"idx_expr", "unop_expr", "binop_expr", "binop_expr_expr",
"type_cast_expr", "assignment_expr", "compound_assignment_expr",
"paren_expr", "expr_list", "maybe_expr_list", "paren_expr_list",
"call_expr", "maybe_self_path", "super_path", "path_expr",
"path_for_expr", "identifier_path_for_expr", "path_for_type",
"just_identifiers_for_type", "identifier_path_for_type", "type",
"maybe_type_list", "type_list", YY_NULLPTRPTR
}
#define YY_NULLPTRPTR
Definition: rust-exp.c:298

Definition at line 792 of file rust-exp.c.

Referenced by yy_symbol_print().

◆ yytranslate

const yytype_uint8 yytranslate[]
static

Definition at line 736 of file rust-exp.c.