Struct librsnek::runtime::interpreter::Interpreter
[−]
[src]
pub struct Interpreter { rt: Runtime, ns: HashMap<String, RtObject>, frames: VecDeque<InterpreterFrame>, }
Fields
rt: Runtime
ns: HashMap<String, RtObject>
frames: VecDeque<InterpreterFrame>
Methods
impl Interpreter
[src]
fn new(rt: &Runtime) -> Self
fn run(config: &Config) -> i64
fn set_line(&mut self, line: usize)
fn pop_frame(&mut self)
fn push_frame(&mut self, func: &RtObject) -> Result<usize, Error>
fn push_stack(&mut self, objref: &RtObject)
fn pop_stack(&mut self) -> Option<RtObject>
fn stack_view(&self) -> Ref<List>
fn frame_view(&self) -> Vec<TracebackFrame>
fn clear_traceback(&mut self)
Used in lieu of an actual exception handling mechanism,
fn exec_binop(
&mut self,
rt: &Runtime,
opcode: OpCode,
lhs: &RtObject,
rhs: &RtObject
) -> Result<RtObject, Error>
&mut self,
rt: &Runtime,
opcode: OpCode,
lhs: &RtObject,
rhs: &RtObject
) -> Result<RtObject, Error>
fn exec_unaryop(
&mut self,
rt: &Runtime,
opcode: OpCode,
operand: &RtObject
) -> Result<RtObject, Error>
&mut self,
rt: &Runtime,
opcode: OpCode,
operand: &RtObject
) -> Result<RtObject, Error>
fn exec_one(
&mut self,
rt: &Runtime,
instr: &Instr
) -> Option<Result<RtObject, Error>>
&mut self,
rt: &Runtime,
instr: &Instr
) -> Option<Result<RtObject, Error>>
Execute exactly one instruction