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_field > | rust_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 type * | rust_lookup_type (const char *name, const struct block *block)
static struct type * | rust_type (const char *name)
static const struct rust_op * | crate_name (const struct rust_op *name)
static const struct rust_op * | super_name (const struct rust_op *name, unsigned int n_supers)
static const struct rust_op * | ast_operation (enum exp_opcode opcode, const struct rust_op *left, const struct rust_op *right)
static const struct rust_op * | ast_compound_assignment (enum exp_opcode opcode, const struct rust_op *left, const struct rust_op *rust_op)
static const struct rust_op * | ast_literal (struct typed_val_int val)
static const struct rust_op * | ast_dliteral (struct typed_val_float val)
static const struct rust_op * | ast_structop (const struct rust_op *left, const char *name, int completing)
static const struct rust_op * | ast_structop_anonymous (const struct rust_op *left, struct typed_val_int number)
static const struct rust_op * | ast_unary (enum exp_opcode opcode, const struct rust_op *expr)
static const struct rust_op * | ast_cast (const struct rust_op *expr, const struct rust_op *type)
static const struct rust_op * | ast_call_ish (enum exp_opcode opcode, const struct rust_op *expr, rust_op_vector *params)
static const struct rust_op * | ast_path (struct stoken name, rust_op_vector *params)
static const struct rust_op * | ast_string (struct stoken str)
static const struct rust_op * | ast_struct (const struct rust_op *name, rust_set_vector *fields)
static const struct rust_op * | ast_range (const struct rust_op *lhs, const struct rust_op *rhs)
static const struct rust_op * | ast_array_type (const struct rust_op *lhs, struct typed_val_int val)
static const struct rust_op * | ast_slice_type (const struct rust_op *type)
static const struct rust_op * | ast_reference_type (const struct rust_op *type)
static const struct rust_op * | ast_pointer_type (const struct rust_op *type, int is_mut)
static const struct rust_op * | ast_function_type (const struct rust_op *result, rust_op_vector *params)
static const struct rust_op * | ast_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_op * | ast_basic_type (enum type_code typecode)
static void | munge_name_and_block (const char **name, const struct block **block)
static struct type * | convert_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_parser * | current_parser
static const char * | number_regex_text
static regex_t | number_regex
static auto_obstack * | work_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)
yyssp
#define yyssp
Definition: cp-name-parser.c:205
yyvsp
#define yyvsp
Definition: cp-name-parser.c:208
yydebug
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)
yydebug
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)
yydebug
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:
do \
if (yychar == YYEMPTY) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
YY_
#define YY_(Msgid)
Definition: rust-exp.c:527
yylen
#define yylen
Definition: cp-name-parser.c:195
yyssp
#define yyssp
Definition: cp-name-parser.c:205
if
if(!(yy_init))
Definition: ada-lex.c:1075
YYEMPTY
#define YYEMPTY
Definition: rust-exp.c:1199
yychar
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)
yydebug
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)) \
+ YYSTACK_GAP_MAXIMUM)
YYSTYPE
union YYSTYPE YYSTYPE
Definition: rust-exp.c:431
YYSTACK_GAP_MAXIMUM
#define YYSTACK_GAP_MAXIMUM
Definition: rust-exp.c:664
yytype_int16
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)
YYSTACK_GAP_MAXIMUM
#define YYSTACK_GAP_MAXIMUM
Definition: rust-exp.c:664
yystacksize
#define yystacksize
Definition: cp-name-parser.c:206

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

enum 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

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

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

Referenced by ast_array_type(), ast_function_type(), ast_pointer_type(), ast_reference_type(), ast_slice_type(), and ast_tuple_type().

## ◆ 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

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

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

Referenced by yyparse().

## ◆ 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

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

References rust_op::completing, rust_op::left, make_stoken(), name, OBSTACK_ZALLOC, rust_op::opcode, rust_op::right, and work_obstack.

Referenced by yyparse().

## ◆ 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

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

References _, block_symbol::block, BOTH_BOUND_DEFAULT, rust_op::completing, rust_op::compound_assignment, convert_ast_to_type(), convert_name(), convert_params_to_expression(), error(), expression_context_block, gdb_assert, gdb_assert_not_reached, get_print_cell(), HIGH_BOUND_DEFAULT, language_lookup_primitive_type(), rust_op::left, type::length, LOC_TYPEDEF, LOW_BOUND_DEFAULT, make_stoken(), mark_struct_expression(), name, NONE_BOUND_DEFAULT, rust_op::opcode, parse_gdbarch, parse_language, PRINT_CELL_SIZE, rust_op::right, rust_lookup_symbol(), rust_lookup_type(), rust_tuple_struct_type_p(), rust_tuple_type_p(), block_symbol::symbol, SYMBOL_CLASS, SYMBOL_TYPE, type, TYPE_CODE, TYPE_CODE_NAMESPACE, TYPE_CODE_STRUCT, TYPE_NFIELDS, 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_string(), and xsnprintf().

Referenced by convert_params_to_expression(), and rust_parse().

## ◆ convert_ast_to_type()

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

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

References _, convert_name(), convert_params_to_types(), error(), expression_context_block, gdb_assert, gdb_assert_not_reached, rust_op::left, lookup_array_range_type(), lookup_function_type_with_arguments(), lookup_pointer_type(), name, obstack_grow_str, obstack_grow_str0, rust_op::opcode, rust_op::right, rust_lookup_type(), rust_slice_type(), rust_type(), string, type, TYPE_CODE_ARRAY, TYPE_CODE_COMPLEX, TYPE_CODE_FUNC, TYPE_CODE_PTR, TYPE_CODE_REF, TYPE_CODE_STRUCT, type_to_string(), rust_op::typecode, and work_obstack.

Referenced by convert_ast_to_expression(), and convert_params_to_types().

## ◆ convert_name()

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

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

References convert_params_to_types(), gdb_assert, rust_op::left, obstack_grow_str, obstack_grow_str0, rust_op::opcode, rust_op::right, string, type_to_string(), and work_obstack.

Referenced by convert_ast_to_expression(), and convert_ast_to_type().

## ◆ 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

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

References _, ast_path(), error(), expression_context_block, gdb_assert, make_stoken(), name, obconcat(), rust_crate_for_block(), string, and work_obstack.

Referenced by yyparse().

## ◆ 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

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

References COMPLETE, gdb_assert, GDBVAR, IDENT, identifier_tokens, type::length, lexptr, make_stoken(), name, parse_completion, prev_lexptr, rust_copy_name(), rust_identifier_start_p(), space_then_number(), and token.

Referenced by rustyylex().

## ◆ lex_number()

static int lex_number | ( | void |  | ) |
| static

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

References DECIMAL_INTEGER, FLOAT, FLOAT_TYPE1, FLOAT_TYPE2, gdb_assert, INT_TEXT, INT_TYPE, INTEGER, lexptr, NUM_SUBEXPRESSIONS, number_regex, offset, parse_float(), rust_identifier_start_p(), rust_type(), skip_spaces(), string, type, and value::type.

Referenced by rustyylex().

## ◆ 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

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

References _, BYTESTRING, convert_between_encodings(), ends_raw_string(), error(), gdb_assert, lex_escape(), lexptr, starts_raw_string(), STRING, translit_none, and work_obstack.

Referenced by rustyylex().

## ◆ make_stoken()

static struct stoken make_stoken | ( | const char * | p | ) |
| static

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

References stoken::length, and stoken::ptr.

Referenced by ast_structop(), convert_ast_to_expression(), crate_name(), lex_identifier(), rust_concat3(), rustyylex(), super_name(), and yyparse().

## ◆ 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

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

References lookup_symbol(), munge_name_and_block(), name, block_symbol::symbol, and update_innermost_block().

Referenced by convert_ast_to_expression().

## ◆ rust_lookup_type()

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

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

References rust_parser::arch(), current_parser, rust_parser::language(), language_lookup_primitive_type(), lookup_symbol(), lookup_typename(), munge_name_and_block(), name, STRUCT_DOMAIN, block_symbol::symbol, SYMBOL_TYPE, type, and update_innermost_block().

Referenced by convert_ast_to_expression(), and convert_ast_to_type().

## ◆ 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

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

References _, rust_parser::arch(), current_parser, error(), rust_parser::language(), language_lookup_primitive_type(), name, and type.

Referenced by convert_ast_to_type(), lex_character(), lex_number(), and yyparse().

## ◆ 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

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

References comma_terminates, COMPLETE, lex_character(), lex_identifier(), lex_number(), lex_operator(), lex_string(), lexptr, make_stoken(), paren_depth, parse_completion, prev_lexptr, rust_identifier_start_p(), and starts_raw_string().

## ◆ 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

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

References _, ast_path(), block_scope(), cp_find_first_component(), error(), expression_context_block, gdb_assert, rust_op::left, make_stoken(), offset, rust_op::opcode, rust_op::right, and work_obstack.

Referenced by yyparse().

## ◆ update_innermost_block()

static void update_innermost_block | ( | struct block_symbol | sym | ) |
| static

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

References block_symbol::block, contained_in(), innermost_block, block_symbol::symbol, and symbol_read_needs_frame().

Referenced by rust_lookup_symbol(), and rust_lookup_type().

## ◆ 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

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

References YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN, YY_IGNORE_MAYBE_UNINITIALIZED_END, YY_SYMBOL_PRINT, and YYUSE.

Referenced by yyparse().

## ◆ yyparse()

int yyparse | ( | void |  | ) |

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

References _, rust_parser::arch(), ast_array_type(), ast_call_ish(), ast_cast(), ast_compound_assignment(), ast_dliteral(), ast_function_type(), ast_literal(), ast_operation(), ast_path(), ast_pointer_type(), ast_range(), ast_reference_type(), ast_slice_type(), ast_string(), ast_struct(), ast_structop(), ast_structop_anonymous(), ast_tuple_type(), ast_unary(), crate_name(), current_parser, error(), set_field::init, rust_parser::language(), language_bool_type(), language_lookup_primitive_type(), stoken::length, make_stoken(), set_field::name, field::name, rust_parser::new_op_vector(), rust_parser::new_set_vector(), stoken::ptr, rust_parser::rust_ast, rust_concat3(), rust_push_back(), rust_type(), super_name(), typed_val_int::type, typed_val_int::val, 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.

## Variable Documentation

## ◆ current_parser

rust_parser* current_parser
| static

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

Referenced by rust_lookup_type(), rust_parser::rust_parser(), rust_type(), yyparse(), and rust_parser::~rust_parser().

## ◆ 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 },
}
KW_FN
#define KW_FN
Definition: rust-exp.c:377
KW_TRUE
#define KW_TRUE
Definition: rust-exp.c:370
KW_CONST
#define KW_CONST
Definition: rust-exp.c:376
KW_EXTERN
#define KW_EXTERN
Definition: rust-exp.c:375
KW_AS
#define KW_AS
Definition: rust-exp.c:368
KW_SELF
#define KW_SELF
Definition: rust-exp.c:373
KW_SIZEOF
#define KW_SIZEOF
Definition: rust-exp.c:378
KW_FALSE
#define KW_FALSE
Definition: rust-exp.c:371
KW_MUT
#define KW_MUT
Definition: rust-exp.c:374
KW_SUPER
#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 }
}
COMPOUND_ASSIGN
#define COMPOUND_ASSIGN
Definition: rust-exp.c:367
LTEQ
#define LTEQ
Definition: rust-exp.c:384
ANDAND
#define ANDAND
Definition: rust-exp.c:381
ARROW
#define ARROW
Definition: rust-exp.c:389
DOTDOT
#define DOTDOT
Definition: rust-exp.c:379
COLONCOLON
#define COLONCOLON
Definition: rust-exp.c:388
GTEQ
#define GTEQ
Definition: rust-exp.c:385
RSH
#define RSH
Definition: rust-exp.c:387
EQEQ
#define EQEQ
Definition: rust-exp.c:382
LSH
#define LSH
Definition: rust-exp.c:386
OROR
#define OROR
Definition: rust-exp.c:380
NOTEQ
#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

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

Referenced by ast_basic_type(), ast_call_ish(), ast_cast(), ast_compound_assignment(), ast_dliteral(), ast_literal(), ast_operation(), ast_path(), ast_range(), ast_string(), ast_struct(), ast_structop(), ast_structop_anonymous(), convert_ast_to_type(), convert_name(), crate_name(), lex_string(), rust_concat3(), rust_copy_name(), rust_parser::rust_parser(), super_name(), and rust_parser::~rust_parser().

## ◆ 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
}
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.