use super::{Data, Text};
use crate::traits::Writable;
use std::fs;
use std::io::prelude::*;
pub struct File {
pub globl: Option<super::reg::Label>,
pub text_ss: Text,
pub data_ss: Data,
}
impl File {
pub fn print_in(self, file_name: &str) -> std::io::Result<()> {
let mut file = fs::File::create(file_name)?;
file.write_all(b"\t.text\n")?;
match self.globl {
None => (),
Some(main) => {
file.write_all(b"\t.globl\t")?;
main.write_in(&mut file)?;
file.write_all(b"\n")?;
}
}
self.text_ss.write_in(&mut file)?;
file.write_all(b"\t.data\n")?;
self.data_ss.write_in(&mut file)
}
}