aboutsummaryrefslogtreecommitdiff
path: root/gdb/rust-parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/rust-parse.c')
-rw-r--r--gdb/rust-parse.c350
1 files changed, 159 insertions, 191 deletions
diff --git a/gdb/rust-parse.c b/gdb/rust-parse.c
index 489be4b..680405c 100644
--- a/gdb/rust-parse.c
+++ b/gdb/rust-parse.c
@@ -49,7 +49,7 @@ static const char number_regex_text[] =
"[0-9][0-9_]*\\.[0-9][0-9_]*([eE][-+]?[0-9][0-9_]*)?(f32|f64)?"
#define FLOAT_TYPE1 3
"|"
- /* Recognize exponent without decimal point, with optional type
+/* Recognize exponent without decimal point, with optional type
suffix.
subexpression 4: if present, type suffix
*/
@@ -61,7 +61,7 @@ static const char number_regex_text[] =
separately. */
"[0-9][0-9_]*\\."
"|"
- /* Finally come integers.
+/* Finally come integers.
subexpression 5: text of integer
subexpression 6: if present, type suffix
subexpression 7: allows use of alternation, otherwise uninteresting
@@ -149,8 +149,7 @@ struct token_info
/* Identifier tokens. */
-static const struct token_info identifier_tokens[] =
-{
+static const struct token_info identifier_tokens[] = {
{ "as", KW_AS, OP_NULL },
{ "false", KW_FALSE, OP_NULL },
{ "if", 0, OP_NULL },
@@ -166,33 +165,31 @@ static const struct token_info identifier_tokens[] =
/* Operator tokens, sorted longest first. */
-static const struct token_info operator_tokens[] =
-{
- { ">>=", 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 },
- { "..=", DOTDOTEQ, OP_NULL },
-
- { "::", COLONCOLON, OP_NULL },
- { "..", DOTDOT, OP_NULL },
- { "->", ARROW, OP_NULL }
-};
+static const struct token_info operator_tokens[]
+ = { { ">>=", 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 },
+ { "..=", DOTDOTEQ, OP_NULL },
+
+ { "::", COLONCOLON, OP_NULL },
+ { "..", DOTDOT, OP_NULL },
+ { "->", ARROW, OP_NULL } };
/* An instance of this is created before parsing, and destroyed when
parsing is finished. */
@@ -207,16 +204,10 @@ struct rust_parser
DISABLE_COPY_AND_ASSIGN (rust_parser);
/* Return the parser's language. */
- const struct language_defn *language () const
- {
- return pstate->language ();
- }
+ const struct language_defn *language () const { return pstate->language (); }
/* Return the parser's gdbarch. */
- struct gdbarch *arch () const
- {
- return pstate->gdbarch ();
- }
+ struct gdbarch *arch () const { return pstate->gdbarch (); }
/* A helper to look up a Rust type, or fail. This only works for
types defined by rust_language_arch_info. */
@@ -227,7 +218,7 @@ struct rust_parser
type = language_lookup_primitive_type (language (), arch (), name);
if (type == NULL)
- error (_("Could not find Rust type %s"), name);
+ error (_ ("Could not find Rust type %s"), name);
return type;
}
@@ -246,10 +237,7 @@ struct rust_parser
/* The main interface to lexing. Lexes one token and updates the
internal state. */
- void lex ()
- {
- current_token = lex_one_token ();
- }
+ void lex () { current_token = lex_one_token (); }
/* Assuming the current token is TYPE, lex the next token. */
void assume (int type)
@@ -263,7 +251,7 @@ struct rust_parser
void require (char type)
{
if (current_token != type)
- error (_("'%c' expected"), type);
+ error (_ ("'%c' expected"), type);
lex ();
}
@@ -273,7 +261,7 @@ struct rust_parser
lex ();
operation_up result = parse_expr ();
if (current_token != 0)
- error (_("Syntax error near '%s'"), pstate->prev_lexptr);
+ error (_ ("Syntax error near '%s'"), pstate->prev_lexptr);
return result;
}
@@ -345,7 +333,10 @@ struct rust_parser
/* The current token's payload, if any. */
typed_val_int current_int_val {};
typed_val_float current_float_val {};
- struct stoken current_string_val {};
+
+ struct stoken current_string_val
+ {
+ };
enum exp_opcode current_opcode = OP_NULL;
/* When completing, this may be set to the field operation to
@@ -362,7 +353,7 @@ rust_parser::crate_name (const std::string &name)
std::string crate = rust_crate_for_block (pstate->expression_context_block);
if (crate.empty ())
- error (_("Could not find crate for current location"));
+ error (_ ("Could not find crate for current location"));
return "::" + crate + "::" + name;
}
@@ -377,7 +368,7 @@ rust_parser::super_name (const std::string &ident, unsigned int n_supers)
int offset;
if (scope[0] == '\0')
- error (_("Couldn't find namespace scope for self::"));
+ error (_ ("Couldn't find namespace scope for self::"));
if (n_supers > 0)
{
@@ -392,13 +383,12 @@ rust_parser::super_name (const std::string &ident, unsigned int n_supers)
gdb_assert (scope[current_len] == ':');
/* The "::". */
current_len += 2;
- current_len += cp_find_first_component (scope
- + current_len);
+ current_len += cp_find_first_component (scope + current_len);
}
len = offsets.size ();
if (n_supers >= len)
- error (_("Too many super:: uses from '%s'"), scope);
+ error (_ ("Too many super:: uses from '%s'"), scope);
offset = offsets[len - n_supers];
}
@@ -503,11 +493,11 @@ rust_parser::lex_hex (int min, int max)
}
if (len < min)
- error (_("Not enough hex digits seen"));
+ error (_ ("Not enough hex digits seen"));
if (len > max)
{
gdb_assert (min != max);
- error (_("Overlong hex escape"));
+ error (_ ("Overlong hex escape"));
}
return result;
@@ -532,15 +522,15 @@ rust_parser::lex_escape (int is_byte)
case 'u':
if (is_byte)
- error (_("Unicode escape in byte literal"));
+ error (_ ("Unicode escape in byte literal"));
++pstate->lexptr;
if (pstate->lexptr[0] != '{')
- error (_("Missing '{' in Unicode escape"));
+ error (_ ("Missing '{' in Unicode escape"));
++pstate->lexptr;
result = lex_hex (1, 6);
/* Could do range checks here. */
if (pstate->lexptr[0] != '}')
- error (_("Missing '}' in Unicode escape"));
+ error (_ ("Missing '}' in Unicode escape"));
++pstate->lexptr;
break;
@@ -574,7 +564,7 @@ rust_parser::lex_escape (int is_byte)
break;
default:
- error (_("Invalid escape \\%c in literal"), pstate->lexptr[0]);
+ error (_ ("Invalid escape \\%c in literal"), pstate->lexptr[0]);
}
return result;
@@ -599,12 +589,12 @@ lex_multibyte_char (const char *text, int *len)
auto_obstack result;
convert_between_encodings (host_charset (), HOST_UTF32,
- (const gdb_byte *) text,
- quote, 1, &result, translit_none);
+ (const gdb_byte *) text, quote, 1, &result,
+ translit_none);
int size = obstack_object_size (&result);
if (size > 4)
- error (_("overlong character literal"));
+ error (_ ("overlong character literal"));
uint32_t value;
memcpy (&value, obstack_finish (&result), size);
return value;
@@ -626,7 +616,7 @@ rust_parser::lex_character ()
gdb_assert (pstate->lexptr[0] == '\'');
++pstate->lexptr;
if (pstate->lexptr[0] == '\'')
- error (_("empty character literal"));
+ error (_ ("empty character literal"));
else if (pstate->lexptr[0] == '\\')
value = lex_escape (is_byte);
else
@@ -637,7 +627,7 @@ rust_parser::lex_character ()
}
if (pstate->lexptr[0] != '\'')
- error (_("Unterminated character literal"));
+ error (_ ("Unterminated character literal"));
++pstate->lexptr;
current_int_val.val = value;
@@ -700,19 +690,19 @@ rust_parser::lex_string ()
if (raw_length > 0)
{
- if (pstate->lexptr[0] == '"' && ends_raw_string (pstate->lexptr,
- raw_length - 1))
+ if (pstate->lexptr[0] == '"'
+ && ends_raw_string (pstate->lexptr, raw_length - 1))
{
/* Exit with lexptr pointing after the final "#". */
pstate->lexptr += raw_length;
break;
}
else if (pstate->lexptr[0] == '\0')
- error (_("Unexpected EOF in string"));
+ error (_ ("Unexpected EOF in string"));
value = pstate->lexptr[0] & 0xff;
if (is_byte && value > 127)
- error (_("Non-ASCII value in raw byte string"));
+ error (_ ("Non-ASCII value in raw byte string"));
obstack_1grow (&obstack, value);
++pstate->lexptr;
@@ -731,17 +721,17 @@ rust_parser::lex_string ()
obstack_1grow (&obstack, value);
else
convert_between_encodings (HOST_UTF32, "UTF-8",
- (gdb_byte *) &value,
- sizeof (value), sizeof (value),
- &obstack, translit_none);
+ (gdb_byte *) &value, sizeof (value),
+ sizeof (value), &obstack,
+ translit_none);
}
else if (pstate->lexptr[0] == '\0')
- error (_("Unexpected EOF in string"));
+ error (_ ("Unexpected EOF in string"));
else
{
value = pstate->lexptr[0] & 0xff;
if (is_byte && value > 127)
- error (_("Non-ASCII value in byte string"));
+ error (_ ("Non-ASCII value in byte string"));
obstack_1grow (&obstack, value);
++pstate->lexptr;
}
@@ -772,9 +762,7 @@ space_then_number (const char *string)
static bool
rust_identifier_start_p (char c)
{
- return ((c >= 'a' && c <= 'z')
- || (c >= 'A' && c <= 'Z')
- || c == '_'
+ return ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_'
|| c == '$'
/* Allow any non-ASCII character as an identifier. There
doesn't seem to be a need to be picky about this. */
@@ -791,8 +779,7 @@ rust_parser::lex_identifier ()
int is_gdb_var = pstate->lexptr[0] == '$';
bool is_raw = false;
- if (pstate->lexptr[0] == 'r'
- && pstate->lexptr[1] == '#'
+ if (pstate->lexptr[0] == 'r' && pstate->lexptr[1] == '#'
&& rust_identifier_start_p (pstate->lexptr[2]))
{
is_raw = true;
@@ -814,7 +801,6 @@ rust_parser::lex_identifier ()
|| (pstate->lexptr[0] & 0x80) != 0)
++pstate->lexptr;
-
length = pstate->lexptr - start;
token = NULL;
if (!is_raw)
@@ -839,8 +825,7 @@ rust_parser::lex_identifier ()
return 0;
}
}
- else if (token == NULL
- && !is_raw
+ else if (token == NULL && !is_raw
&& (strncmp (start, "thread", length) == 0
|| strncmp (start, "task", length) == 0)
&& space_then_number (pstate->lexptr))
@@ -880,8 +865,8 @@ rust_parser::lex_operator ()
for (const auto &candidate : operator_tokens)
{
- if (strncmp (candidate.name, pstate->lexptr,
- strlen (candidate.name)) == 0)
+ if (strncmp (candidate.name, pstate->lexptr, strlen (candidate.name))
+ == 0)
{
pstate->lexptr += strlen (candidate.name);
token = &candidate;
@@ -979,10 +964,10 @@ rust_parser::lex_number ()
if (type_name == NULL)
{
gdb_assert (type_index != -1);
- type_name_holder = std::string ((pstate->lexptr
- + subexps[type_index].rm_so),
- (subexps[type_index].rm_eo
- - subexps[type_index].rm_so));
+ type_name_holder
+ = std::string ((pstate->lexptr + subexps[type_index].rm_so),
+ (subexps[type_index].rm_eo
+ - subexps[type_index].rm_so));
type_name = type_name_holder.c_str ();
}
@@ -1027,7 +1012,7 @@ rust_parser::lex_number ()
const char *trailer;
value = strtoulst (number.c_str () + offset, &trailer, radix);
if (*trailer != '\0')
- error (_("Integer literal is too large"));
+ error (_ ("Integer literal is too large"));
if (implicit_i32 && value >= ((uint64_t) 1) << 31)
type = get_type ("i64");
@@ -1037,9 +1022,9 @@ rust_parser::lex_number ()
else
{
current_float_val.type = type;
- bool parsed = parse_float (number.c_str (), number.length (),
- current_float_val.type,
- current_float_val.val.data ());
+ bool parsed
+ = parse_float (number.c_str (), number.length (),
+ current_float_val.type, current_float_val.val.data ());
gdb_assert (parsed);
}
@@ -1052,10 +1037,8 @@ int
rust_parser::lex_one_token ()
{
/* Skip all leading whitespace. */
- while (pstate->lexptr[0] == ' '
- || pstate->lexptr[0] == '\t'
- || pstate->lexptr[0] == '\r'
- || pstate->lexptr[0] == '\n')
+ while (pstate->lexptr[0] == ' ' || pstate->lexptr[0] == '\t'
+ || pstate->lexptr[0] == '\r' || pstate->lexptr[0] == '\n')
++pstate->lexptr;
/* If we hit EOF and we're completing, then return COMPLETE -- maybe
@@ -1068,7 +1051,7 @@ rust_parser::lex_one_token ()
{
if (pstate->parse_completion)
{
- current_string_val.length =0;
+ current_string_val.length = 0;
current_string_val.ptr = "";
return COMPLETE;
}
@@ -1120,8 +1103,6 @@ rust_parser::push_back (char c)
gdb_assert (*pstate->lexptr == c);
}
-
-
/* Parse a tuple or paren expression. */
operation_up
@@ -1149,7 +1130,7 @@ rust_parser::parse_tuple ()
while (current_token != ')')
{
if (current_token != ',')
- error (_("',' or ')' expected"));
+ error (_ ("',' or ')' expected"));
lex ();
/* A trailing "," is ok. */
@@ -1159,7 +1140,7 @@ rust_parser::parse_tuple ()
assume (')');
- error (_("Tuple expressions not supported yet"));
+ error (_ ("Tuple expressions not supported yet"));
}
/* Parse an array expression. */
@@ -1188,7 +1169,7 @@ rust_parser::parse_array ()
while (current_token != ']')
{
if (current_token != ',')
- error (_("',' or ']' expected"));
+ error (_ ("',' or ']' expected"));
lex ();
ops.push_back (parse_expr ());
}
@@ -1197,7 +1178,7 @@ rust_parser::parse_array ()
result = make_operation<array_operation> (0, len, std::move (ops));
}
else if (current_token != ']')
- error (_("',', ';', or ']' expected"));
+ error (_ ("',', ';', or ']' expected"));
require (']');
@@ -1209,9 +1190,9 @@ rust_parser::parse_array ()
operation_up
rust_parser::name_to_operation (const std::string &name)
{
- struct block_symbol sym = lookup_symbol (name.c_str (),
- pstate->expression_context_block,
- VAR_DOMAIN);
+ struct block_symbol sym
+ = lookup_symbol (name.c_str (), pstate->expression_context_block,
+ VAR_DOMAIN);
if (sym.symbol != nullptr && sym.symbol->aclass () != LOC_TYPEDEF)
return make_operation<var_value_operation> (sym);
@@ -1225,7 +1206,7 @@ rust_parser::name_to_operation (const std::string &name)
if (type == nullptr)
type = rust_lookup_type (name.c_str ());
if (type == nullptr)
- error (_("No symbol '%s' in current context"), name.c_str ());
+ error (_ ("No symbol '%s' in current context"), name.c_str ());
if (type->code () == TYPE_CODE_STRUCT && type->num_fields () == 0)
{
@@ -1244,16 +1225,15 @@ rust_parser::parse_struct_expr (struct type *type)
{
assume ('{');
- if (type->code () != TYPE_CODE_STRUCT
- || rust_tuple_type_p (type)
+ if (type->code () != TYPE_CODE_STRUCT || rust_tuple_type_p (type)
|| rust_tuple_struct_type_p (type))
- error (_("Struct expression applied to non-struct type"));
+ error (_ ("Struct expression applied to non-struct type"));
std::vector<std::pair<std::string, operation_up>> field_v;
while (current_token != '}' && current_token != DOTDOT)
{
if (current_token != IDENT)
- error (_("'}', '..', or identifier expected"));
+ error (_ ("'}', '..', or identifier expected"));
std::string name = get_string ();
lex ();
@@ -1283,8 +1263,7 @@ rust_parser::parse_struct_expr (struct type *type)
require ('}');
- return make_operation<rust_aggregate_operation> (type,
- std::move (others),
+ return make_operation<rust_aggregate_operation> (type, std::move (others),
std::move (field_v));
}
@@ -1323,25 +1302,25 @@ rust_parser::parse_binop (bool required)
TYPE is the operation type corresponding to the operator.
Assignment operations are handled specially, not via this
table; they have precedence 0. */
-#define ALL_OPS \
- OPERATION ('*', 10, mul_operation) \
- OPERATION ('/', 10, div_operation) \
- OPERATION ('%', 10, rem_operation) \
- OPERATION ('@', 9, repeat_operation) \
- OPERATION ('+', 8, add_operation) \
- OPERATION ('-', 8, sub_operation) \
- OPERATION (LSH, 7, lsh_operation) \
- OPERATION (RSH, 7, rsh_operation) \
- OPERATION ('&', 6, bitwise_and_operation) \
- OPERATION ('^', 5, bitwise_xor_operation) \
- OPERATION ('|', 4, bitwise_ior_operation) \
- OPERATION (EQEQ, 3, equal_operation) \
- OPERATION (NOTEQ, 3, notequal_operation) \
- OPERATION ('<', 3, less_operation) \
- OPERATION (LTEQ, 3, leq_operation) \
- OPERATION ('>', 3, gtr_operation) \
- OPERATION (GTEQ, 3, geq_operation) \
- OPERATION (ANDAND, 2, logical_and_operation) \
+#define ALL_OPS \
+ OPERATION ('*', 10, mul_operation) \
+ OPERATION ('/', 10, div_operation) \
+ OPERATION ('%', 10, rem_operation) \
+ OPERATION ('@', 9, repeat_operation) \
+ OPERATION ('+', 8, add_operation) \
+ OPERATION ('-', 8, sub_operation) \
+ OPERATION (LSH, 7, lsh_operation) \
+ OPERATION (RSH, 7, rsh_operation) \
+ OPERATION ('&', 6, bitwise_and_operation) \
+ OPERATION ('^', 5, bitwise_xor_operation) \
+ OPERATION ('|', 4, bitwise_ior_operation) \
+ OPERATION (EQEQ, 3, equal_operation) \
+ OPERATION (NOTEQ, 3, notequal_operation) \
+ OPERATION ('<', 3, less_operation) \
+ OPERATION (LTEQ, 3, leq_operation) \
+ OPERATION ('>', 3, gtr_operation) \
+ OPERATION (GTEQ, 3, geq_operation) \
+ OPERATION (ANDAND, 2, logical_and_operation) \
OPERATION (OROR, 1, logical_or_operation)
#define ASSIGN_PREC 0
@@ -1364,11 +1343,11 @@ rust_parser::parse_binop (bool required)
switch (this_token)
{
-#define OPERATION(TOKEN, PRECEDENCE, TYPE) \
- case TOKEN: \
- precedence = PRECEDENCE; \
- lex (); \
- break;
+#define OPERATION(TOKEN, PRECEDENCE, TYPE) \
+ case TOKEN: \
+ precedence = PRECEDENCE; \
+ lex (); \
+ break;
ALL_OPS
@@ -1388,8 +1367,8 @@ rust_parser::parse_binop (bool required)
lex ();
rustop_item &lhs = operator_stack.back ();
struct type *type = parse_type ();
- lhs.op = make_operation<unop_cast_operation> (std::move (lhs.op),
- type);
+ lhs.op
+ = make_operation<unop_cast_operation> (std::move (lhs.op), type);
}
/* Bypass the rest of the loop. */
continue;
@@ -1398,13 +1377,13 @@ rust_parser::parse_binop (bool required)
/* Arrange to pop the entire stack. */
precedence = -2;
break;
- }
+ }
/* Make sure that assignments are right-associative while other
operations are left-associative. */
while ((precedence == ASSIGN_PREC
- ? precedence < operator_stack.back ().precedence
- : precedence <= operator_stack.back ().precedence)
+ ? precedence < operator_stack.back ().precedence
+ : precedence <= operator_stack.back ().precedence)
&& operator_stack.size () > 1)
{
rustop_item rhs = std::move (operator_stack.back ());
@@ -1414,11 +1393,10 @@ rust_parser::parse_binop (bool required)
switch (rhs.token)
{
-#define OPERATION(TOKEN, PRECEDENCE, TYPE) \
- case TOKEN: \
- lhs.op = make_operation<TYPE> (std::move (lhs.op), \
- std::move (rhs.op)); \
- break;
+#define OPERATION(TOKEN, PRECEDENCE, TYPE) \
+ case TOKEN: \
+ lhs.op = make_operation<TYPE> (std::move (lhs.op), std::move (rhs.op)); \
+ break;
ALL_OPS
@@ -1428,18 +1406,18 @@ rust_parser::parse_binop (bool required)
case COMPOUND_ASSIGN:
{
if (rhs.token == '=')
- lhs.op = (make_operation<assign_operation>
- (std::move (lhs.op), std::move (rhs.op)));
+ lhs.op
+ = (make_operation<assign_operation> (std::move (lhs.op),
+ std::move (rhs.op)));
else
- lhs.op = (make_operation<assign_modify_operation>
- (rhs.opcode, std::move (lhs.op),
- std::move (rhs.op)));
+ lhs.op = (make_operation<assign_modify_operation> (
+ rhs.opcode, std::move (lhs.op), std::move (rhs.op)));
struct type *unit_type = get_type ("()");
operation_up nil (new long_const_operation (unit_type, 0));
- lhs.op = (make_operation<comma_operation>
- (std::move (lhs.op), std::move (nil)));
+ lhs.op = (make_operation<comma_operation> (std::move (lhs.op),
+ std::move (nil)));
}
break;
@@ -1465,8 +1443,7 @@ rust_parser::parse_binop (bool required)
operation_up
rust_parser::parse_range ()
{
- enum range_flag kind = (RANGE_HIGH_BOUND_DEFAULT
- | RANGE_LOW_BOUND_DEFAULT);
+ enum range_flag kind = (RANGE_HIGH_BOUND_DEFAULT | RANGE_LOW_BOUND_DEFAULT);
operation_up lhs;
if (current_token != DOTDOT && current_token != DOTDOTEQ)
@@ -1487,8 +1464,7 @@ rust_parser::parse_range ()
if (rhs != nullptr)
kind &= ~RANGE_HIGH_BOUND_DEFAULT;
- return make_operation<rust_range_operation> (kind,
- std::move (lhs),
+ return make_operation<rust_range_operation> (kind, std::move (lhs),
std::move (rhs));
}
@@ -1547,7 +1523,7 @@ rust_parser::parse_field (operation_up &&lhs)
completion_op.reset (struct_op);
pstate->mark_struct_expression (struct_op);
/* Throw to the outermost level of the parser. */
- error (_("not really an error"));
+ error (_ ("not really an error"));
}
result.reset (struct_op);
}
@@ -1560,10 +1536,10 @@ rust_parser::parse_field (operation_up &&lhs)
break;
case INTEGER:
- error (_("'_' not allowed in integers in anonymous field references"));
+ error (_ ("'_' not allowed in integers in anonymous field references"));
default:
- error (_("field name expected"));
+ error (_ ("field name expected"));
}
return result;
@@ -1595,7 +1571,7 @@ rust_parser::parse_paren_args ()
if (!args.empty ())
{
if (current_token != ',')
- error (_("',' or ')' expected"));
+ error (_ ("',' or ')' expected"));
lex ();
}
@@ -1614,8 +1590,7 @@ rust_parser::parse_call (operation_up &&lhs)
{
std::vector<operation_up> args = parse_paren_args ();
- return make_operation<funcall_operation> (std::move (lhs),
- std::move (args));
+ return make_operation<funcall_operation> (std::move (lhs), std::move (args));
}
/* Parse a list of types. */
@@ -1656,7 +1631,7 @@ rust_parser::parse_array_type ()
require (';');
if (current_token != INTEGER && current_token != DECIMAL_INTEGER)
- error (_("integer expected"));
+ error (_ ("integer expected"));
ULONGEST val = current_int_val.val;
lex ();
require (']');
@@ -1710,12 +1685,12 @@ rust_parser::parse_function_type ()
assume (KW_FN);
if (current_token != '(')
- error (_("'(' expected"));
+ error (_ ("'(' expected"));
std::vector<struct type *> types = parse_maybe_type_list ();
if (current_token != ARROW)
- error (_("'->' expected"));
+ error (_ ("'->' expected"));
lex ();
struct type *result_type = parse_type ();
@@ -1725,8 +1700,7 @@ rust_parser::parse_function_type ()
argtypes = types.data ();
result_type = lookup_function_type_with_arguments (result_type,
- types.size (),
- argtypes);
+ types.size (), argtypes);
return lookup_pointer_type (result_type);
}
@@ -1755,7 +1729,7 @@ rust_parser::parse_tuple_type ()
looking up existing tuple types. */
struct type *result = rust_lookup_type (name);
if (result == nullptr)
- error (_("could not find tuple type '%s'"), name);
+ error (_ ("could not find tuple type '%s'"), name);
return result;
}
@@ -1786,11 +1760,11 @@ rust_parser::parse_type ()
std::string path = parse_path (false);
struct type *result = rust_lookup_type (path.c_str ());
if (result == nullptr)
- error (_("No type name '%s' in current context"), path.c_str ());
+ error (_ ("No type name '%s' in current context"), path.c_str ());
return result;
}
default:
- error (_("type expected"));
+ error (_ ("type expected"));
}
}
@@ -1816,7 +1790,7 @@ rust_parser::parse_path (bool for_expr)
++n_supers;
lex ();
if (current_token != COLONCOLON)
- error (_("'::' expected"));
+ error (_ ("'::' expected"));
lex ();
}
break;
@@ -1834,7 +1808,7 @@ rust_parser::parse_path (bool for_expr)
}
if (current_token != IDENT)
- error (_("identifier expected"));
+ error (_ ("identifier expected"));
std::string path = get_string ();
bool saw_ident = true;
lex ();
@@ -1857,7 +1831,7 @@ rust_parser::parse_path (bool for_expr)
else if (current_token == COLONCOLON)
{
/* The code below won't detect this scenario. */
- error (_("unexpected '::'"));
+ error (_ ("unexpected '::'"));
}
}
@@ -1890,7 +1864,7 @@ rust_parser::parse_path (bool for_expr)
lex ();
}
else
- error (_("'>' expected"));
+ error (_ ("'>' expected"));
path += "<";
for (int i = 0; i < types.size (); ++i)
@@ -1933,7 +1907,7 @@ rust_parser::parse_string ()
/* Wrap the raw string in the &str struct. */
struct type *type = rust_lookup_type ("&str");
if (type == nullptr)
- error (_("Could not find type '&str'"));
+ error (_ ("Could not find type '&str'"));
std::vector<std::pair<std::string, operation_up>> field_v;
@@ -1947,8 +1921,7 @@ rust_parser::parse_string ()
operation_up lenop = make_operation<long_const_operation> (valtype, len);
field_v.emplace_back ("length", std::move (lenop));
- return make_operation<rust_aggregate_operation> (type,
- operation_up (),
+ return make_operation<rust_aggregate_operation> (type, operation_up (),
std::move (field_v));
}
@@ -1963,8 +1936,8 @@ rust_parser::parse_tuple_struct (struct type *type)
for (int i = 0; i < args.size (); ++i)
field_v[i] = { string_printf ("__%d", i), std::move (args[i]) };
- return (make_operation<rust_aggregate_operation>
- (type, operation_up (), std::move (field_v)));
+ return (make_operation<rust_aggregate_operation> (type, operation_up (),
+ std::move (field_v)));
}
/* Parse a path expression. */
@@ -1978,8 +1951,8 @@ rust_parser::parse_path_expr ()
{
struct type *type = rust_lookup_type (path.c_str ());
if (type == nullptr)
- error (_("Could not find type '%s'"), path.c_str ());
-
+ error (_ ("Could not find type '%s'"), path.c_str ());
+
return parse_struct_expr (type);
}
else if (current_token == '(')
@@ -1990,7 +1963,7 @@ rust_parser::parse_path_expr ()
if (type != nullptr)
{
if (!rust_tuple_struct_type_p (type))
- error (_("Type %s is not a tuple struct"), path.c_str ());
+ error (_ ("Type %s is not a tuple struct"), path.c_str ());
return parse_tuple_struct (type);
}
}
@@ -2089,7 +2062,7 @@ rust_parser::parse_atom (bool required)
default:
if (!required)
return {};
- error (_("unexpected token"));
+ error (_ ("unexpected token"));
}
/* Now parse suffixes. */
@@ -2115,8 +2088,6 @@ rust_parser::parse_atom (bool required)
}
}
-
-
/* The parser as exposed to gdb. */
int
@@ -2146,8 +2117,6 @@ rust_language::parser (struct parser_state *state) const
return 0;
}
-
-
#if GDB_SELF_TEST
/* A test helper that lexes a string, expecting a single token. */
@@ -2172,8 +2141,8 @@ rust_lex_test_one (rust_parser *parser, const char *input, int expected)
/* Test that INPUT lexes as the integer VALUE. */
static void
-rust_lex_int_test (rust_parser *parser, const char *input,
- ULONGEST value, int kind)
+rust_lex_int_test (rust_parser *parser, const char *input, ULONGEST value,
+ int kind)
{
rust_lex_test_one (parser, input, kind);
SELF_CHECK (parser->current_int_val.val == value);
@@ -2393,9 +2362,8 @@ rust_lex_tests (void)
#endif /* GDB_SELF_TEST */
-
-
void _initialize_rust_exp ();
+
void
_initialize_rust_exp ()
{