rprlib/
analysis.rs

1pub mod range;
2
3use std::collections::HashMap;
4
5use crate::node::Node;
6use self::range::*;
7
8
9pub type RegisterType = SimpleDataType;
10
11#[derive(Debug, Clone, Copy)]
12pub enum SimpleDataType {
13    Unknown,
14    Zero,
15    NonZero,
16    Bool,
17    Pointer(Pointer),
18    I32(I32),
19    U32(U32),
20    // F32(F32),
21}
22
23
24#[derive(Debug, Clone)]
25pub struct MemRecord(pub HashMap<String, MemItem>);
26
27
28#[derive(Debug, Clone)]
29pub enum MemItem {
30    Inst(Node),
31    Data(DataBlock)
32}
33
34
35#[derive(Debug, Clone)]
36pub struct DataBlock {
37    // meta info
38    datas: Vec<Data>
39}
40
41#[derive(Debug, Clone)]
42pub struct Data(pub Vec<u8>, pub SimpleDataType);