sleigh_rs/semantic/
pcode_macro.rs1use 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 }
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 }