23#if !defined (PARSER_DEFS_H)
24#define PARSER_DEFS_H 1
75 expout->op = std::move (op);
112 gdb::unique_xmalloc_ptr<char>
name)
117 gdb_assert (
code == TYPE_CODE_ENUM
118 ||
code == TYPE_CODE_UNION
119 ||
code == TYPE_CODE_STRUCT);
145 const struct block *context_block,
146 CORE_ADDR context_pc,
211 template<
typename T,
typename... Arg>
214 m_operations.emplace_back (
new T (std::forward<Arg> (args)...));
239 std::vector<expr::operation_up> result (n);
240 for (
int i = 1; i <= n; ++i)
241 result[n - i] =
pop ();
250 using namespace expr;
252 push (std::move (v));
262 push (expr::make_operation<T> (std::move (lhs), std::move (rhs)));
371 const struct type *
type, gdb_byte *data);
372extern bool fits_in_type (
int n_sign, ULONGEST n,
int type_bits,
virtual bool complete(struct expression *exp, completion_tracker &tracker)
std::unique_ptr< expression > expression_up
@ PARSER_COMMA_TERMINATES
static void ATTRIBUTE_PRINTF(1, 0)
mach_port_t kern_return_t mach_port_t mach_msg_type_name_t msgportsPoly mach_port_t kern_return_t pid_t pid mach_port_t kern_return_t mach_port_t task mach_port_t kern_return_t int flags
std::unique_ptr< operation > operation_up
bool parse_float(const char *p, int len, const struct type *type, gdb_byte *data)
bool fits_in_type(int n_sign, ULONGEST n, int type_bits, bool type_signed_p)
const char * find_template_name_end(const char *)
void parser_fprintf(FILE *, const char *,...) ATTRIBUTE_PRINTF(2
std::string copy_name(struct stoken)
DISABLE_COPY_AND_ASSIGN(expr_builder)
void set_operation(expr::operation_up &&op)
const struct language_defn * language()
struct gdbarch * gdbarch()
ATTRIBUTE_UNUSED_RESULT expression_up release()
expr_builder(const struct language_defn *lang, struct gdbarch *gdbarch)
expr::structop_base_operation * m_op
bool complete(struct expression *exp, completion_tracker &tracker) override
expr_complete_structop(expr::structop_base_operation *op)
gdb::unique_xmalloc_ptr< char > m_name
expr_complete_tag(enum type_code code, gdb::unique_xmalloc_ptr< char > name)
bool complete(struct expression *exp, completion_tracker &tracker) override
language_defn(enum language lang)
void push_new(Arg... args)
const CORE_ADDR expression_context_pc
const struct block *const expression_context_block
std::vector< expr::operation_up > pop_vector(int n)
std::unique_ptr< expr_completion_base > m_completion_state
std::vector< expr::operation_up > m_operations
void push_dollar(struct stoken str)
void mark_completion(std::unique_ptr< expr_completion_base > completer)
void push_symbol(const char *name, block_symbol sym)
innermost_block_tracker * block_tracker
std::vector< int > m_funcall_chain
void mark_completion_tag(enum type_code tag, const char *ptr, int length)
DISABLE_COPY_AND_ASSIGN(parser_state)
void push_c_string(int, struct stoken_vector *vec)
void push(expr::operation_up &&op)
parser_state(const struct language_defn *lang, struct gdbarch *gdbarch, const struct block *context_block, CORE_ADDR context_pc, parser_flags flags, const char *input, bool completion, innermost_block_tracker *tracker)
void mark_struct_expression(expr::structop_base_operation *op)
struct typed_stoken * tokens