s1mple/ast/
value.rs

1use crate::prelude::*;
2
3#[derive(Debug)]
4#[allow(dead_code)]
5pub struct AstIdent {
6    pub(crate) ident: String,
7}
8impl AstIdent {}
9
10#[derive(Debug)]
11#[allow(dead_code)]
12pub enum Value {
13    Ident(AstIdent),
14    Literal(i64),
15}
16
17#[derive(Debug)]
18#[allow(dead_code)]
19pub struct AstValue {
20    pub(crate) value: Value,
21}
22impl AstValue {
23    pub fn codegen(&self, builder: &mut FunctionBuilder) -> entities::Value {
24        match self.value {
25            Value::Literal(val) => builder.ins().iconst(types::I64, Imm64::from(val)),
26            _ => todo!(),
27        }
28        
29    }
30}