use crate::parser::*;
use super::swc_decorator::{DecoratedProgram, DecoratedTopLevelDecl};
use super::type_context::TypeEnvironment;
pub struct SwcGenerator {
output: String,
}
impl SwcGenerator {
pub fn new() -> Self {
Self {
output: String::new(),
}
}
pub fn generate(&mut self, _program: &Program) -> String {
"// TODO: Legacy generation not implemented in stub\n".to_string()
}
pub fn generate_decorated(&mut self, program: &DecoratedProgram) -> String {
self.output.clear();
self.emit_line("// Generated by ReluxScript compiler (with rewriter)");
self.emit_line("// SWC stub - rewriter is working!");
self.emit_line("");
match &program.decl {
DecoratedTopLevelDecl::Plugin(_plugin) => {
self.emit_line("// Plugin detected");
}
DecoratedTopLevelDecl::Writer(_writer) => {
self.emit_line("// Writer detected");
}
DecoratedTopLevelDecl::Module(_module) => {
self.emit_line("// Module detected");
}
DecoratedTopLevelDecl::Undecorated(_) => {
self.emit_line("// Undecorated node");
}
}
std::mem::take(&mut self.output)
}
fn emit_line(&mut self, s: &str) {
self.output.push_str(s);
self.output.push('\n');
}
}
impl Default for SwcGenerator {
fn default() -> Self {
Self::new()
}
}