GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
expression.h File Reference
#include "gdbtypes.h"
#include "symtab.h"
#include "std-operator.def"

Go to the source code of this file.

Classes

class  expr::operation
 
struct  expression
 
class  innermost_block_tracker
 
struct  expr_completion_base
 

Namespaces

namespace  expr
 

Macros

#define OP(name)   name ,
 

Typedefs

typedef std::unique_ptr< operationexpr::operation_up
 
typedef std::unique_ptr< expressionexpression_up
 

Enumerations

enum  innermost_block_tracker_type { INNERMOST_BLOCK_FOR_SYMBOLS = (1 << 0) , INNERMOST_BLOCK_FOR_REGISTERS = (1 << 1) }
 
enum  exp_opcode : uint8_t
 
enum  noside { EVAL_NORMAL , EVAL_AVOID_SIDE_EFFECTS }
 
enum  parser_flag { PARSER_VOID_CONTEXT = (1 << 0) , PARSER_COMMA_TERMINATES = (1 << 1) , PARSER_DEBUG = (1 << 2) , PARSER_LEAVE_BLOCK_ALONE = (1 << 3) }
 
enum  range_flag : unsigned {
  RANGE_STANDARD = 0 , RANGE_LOW_BOUND_DEFAULT = 1 << 0 , RANGE_HIGH_BOUND_DEFAULT = 1 << 1 , RANGE_HIGH_BOUND_EXCLUSIVE = 1 << 2 ,
  RANGE_HAS_STRIDE = 1 << 3
}
 

Functions

 DEF_ENUM_FLAGS_TYPE (enum innermost_block_tracker_type, innermost_block_tracker_types)
 
template<typename T , typename... Arg>
operation_up expr::make_operation (Arg... args)
 
 DEF_ENUM_FLAGS_TYPE (enum parser_flag, parser_flags)
 
expression_up parse_expression (const char *, innermost_block_tracker *=nullptr, parser_flags flags=0)
 
expression_up parse_expression_with_language (const char *string, enum language lang)
 
expression_up parse_expression_for_completion (const char *, std::unique_ptr< expr_completion_base > *completer)
 
expression_up parse_exp_1 (const char **, CORE_ADDR pc, const struct block *, parser_flags flags, innermost_block_tracker *=nullptr)
 
struct valueevaluate_subexp_do_call (expression *exp, enum noside noside, value *callee, gdb::array_view< value * > argvec, const char *function_name, type *default_return_type)
 
 DEF_ENUM_FLAGS_TYPE (enum range_flag, range_flags)
 

Macro Definition Documentation

◆ OP

#define OP ( name)    name ,

Definition at line 46 of file expression.h.

Typedef Documentation

◆ expression_up

typedef std::unique_ptr<expression> expression_up

Definition at line 241 of file expression.h.

Enumeration Type Documentation

◆ exp_opcode

enum exp_opcode : uint8_t

Definition at line 44 of file expression.h.

◆ innermost_block_tracker_type

Enumerator
INNERMOST_BLOCK_FOR_SYMBOLS 
INNERMOST_BLOCK_FOR_REGISTERS 

Definition at line 33 of file expression.h.

◆ noside

enum noside
Enumerator
EVAL_NORMAL 
EVAL_AVOID_SIDE_EFFECTS 

Definition at line 55 of file expression.h.

◆ parser_flag

Enumerator
PARSER_VOID_CONTEXT 
PARSER_COMMA_TERMINATES 
PARSER_DEBUG 
PARSER_LEAVE_BLOCK_ALONE 

Definition at line 288 of file expression.h.

◆ range_flag

enum range_flag : unsigned
Enumerator
RANGE_STANDARD 
RANGE_LOW_BOUND_DEFAULT 
RANGE_HIGH_BOUND_DEFAULT 
RANGE_HIGH_BOUND_EXCLUSIVE 
RANGE_HAS_STRIDE 

Definition at line 369 of file expression.h.

Function Documentation

◆ DEF_ENUM_FLAGS_TYPE() [1/3]

DEF_ENUM_FLAGS_TYPE ( enum innermost_block_tracker_type,
innermost_block_tracker_types  )

◆ DEF_ENUM_FLAGS_TYPE() [2/3]

DEF_ENUM_FLAGS_TYPE ( enum parser_flag,
parser_flags  )

◆ DEF_ENUM_FLAGS_TYPE() [3/3]

DEF_ENUM_FLAGS_TYPE ( enum range_flag,
range_flags  )

◆ evaluate_subexp_do_call()

struct value * evaluate_subexp_do_call ( expression * exp,
enum noside noside,
value * callee,
gdb::array_view< value * > argvec,
const char * function_name,
type * default_return_type )
extern

◆ parse_exp_1()

expression_up parse_exp_1 ( const char ** stringptr,
CORE_ADDR pc,
const struct block * block,
parser_flags flags,
innermost_block_tracker * tracker = nullptr )
extern

◆ parse_expression()

expression_up parse_expression ( const char * string,
innermost_block_tracker * tracker = nullptr,
parser_flags flags = 0 )
extern

◆ parse_expression_for_completion()

expression_up parse_expression_for_completion ( const char * string,
std::unique_ptr< expr_completion_base > * completer )
extern

Definition at line 489 of file parse.c.

References parse_exp_in_context().

Referenced by complete_expression().

◆ parse_expression_with_language()

expression_up parse_expression_with_language ( const char * string,
enum language lang )
extern