#include <stdbool.h>
#include "Python.h"
#include "pycore_compile.h"
#include "pycore_opcode_utils.h"
#include "pycore_opcode_metadata.h"
instruction;
instr_sequence;
location;
#define INITIAL_INSTR_SEQUENCE_SIZE …
#define INITIAL_INSTR_SEQUENCE_LABELS_MAP_SIZE …
#include "clinic/instruction_sequence.c.h"
#undef SUCCESS
#undef ERROR
#define SUCCESS …
#define ERROR …
#define RETURN_IF_ERROR(X) …
static int
instr_sequence_next_inst(instr_sequence *seq) { … }
_PyJumpTargetLabel
_PyInstructionSequence_NewLabel(instr_sequence *seq)
{ … }
int
_PyInstructionSequence_UseLabel(instr_sequence *seq, int lbl)
{ … }
int
_PyInstructionSequence_ApplyLabelMap(instr_sequence *instrs)
{ … }
#define MAX_OPCODE …
int
_PyInstructionSequence_Addop(instr_sequence *seq, int opcode, int oparg,
location loc)
{ … }
int
_PyInstructionSequence_InsertInstruction(instr_sequence *seq, int pos,
int opcode, int oparg, location loc)
{ … }
int
_PyInstructionSequence_AddNested(instr_sequence *seq, instr_sequence *nested)
{ … }
void
PyInstructionSequence_Fini(instr_sequence *seq) { … }
static _PyInstructionSequence*
inst_seq_create(void)
{ … }
PyObject*
_PyInstructionSequence_New(void)
{ … }
static PyObject *
inst_seq_new_impl(PyTypeObject *type)
{ … }
static PyObject *
InstructionSequenceType_use_label_impl(_PyInstructionSequence *self,
int label)
{ … }
static PyObject *
InstructionSequenceType_addop_impl(_PyInstructionSequence *self, int opcode,
int oparg, int lineno, int col_offset,
int end_lineno, int end_col_offset)
{ … }
static int
InstructionSequenceType_new_label_impl(_PyInstructionSequence *self)
{ … }
static PyObject *
InstructionSequenceType_add_nested_impl(_PyInstructionSequence *self,
PyObject *nested)
{ … }
static PyObject *
InstructionSequenceType_get_nested_impl(_PyInstructionSequence *self)
{ … }
static PyObject *
InstructionSequenceType_get_instructions_impl(_PyInstructionSequence *self)
{ … }
static PyMethodDef inst_seq_methods[] = …;
static PyMemberDef inst_seq_memberlist[] = …;
static PyGetSetDef inst_seq_getsetters[] = …;
static void
inst_seq_dealloc(_PyInstructionSequence *seq)
{ … }
static int
inst_seq_traverse(_PyInstructionSequence *seq, visitproc visit, void *arg)
{ … }
static int
inst_seq_clear(_PyInstructionSequence *seq)
{ … }
PyTypeObject _PyInstructionSequence_Type = …;