sleigh_rs/semantic/
pcode_macro.rs

1use crate::semantic::{PcodeMacroId, Span};
2
3use super::execution::{Execution, VariableId};
4
5#[derive(Clone, Debug)]
6pub struct Parameter {
7    pub variable_id: VariableId,
8    pub location: Span,
9    //TODO
10}
11
12#[derive(Clone, Copy, Debug, PartialEq, Eq)]
13pub struct PcodeMacroCallId {
14    pub(crate) macro_id: PcodeMacroId,
15    pub(crate) instance_id: PcodeMacroInstanceId,
16}
17
18#[derive(Clone, Copy, Debug, PartialEq, Eq)]
19pub struct PcodeMacroInstanceId(pub(crate) usize);
20
21#[derive(Debug, Clone)]
22pub struct PcodeMacroInstance {
23    pub parameters: Box<[Parameter]>,
24    pub execution: Execution,
25}
26
27#[derive(Clone, Debug)]
28pub struct PcodeMacro {
29    pub location: Span,
30    pub instances: Box<[PcodeMacroInstance]>,
31    //TODO
32}