mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-16 15:38:48 +00:00
Various quality-of-life improvements (ideas from @33577 )
* Very basic `hello_main.c` * Big starting hint to `write_c` * Better error messages on failed test * TODO: also improve it for asmgen, but not sure how to do it in a good way
This commit is contained in:
@@ -522,13 +522,3 @@ impl IsEquiv for AlignOf {
|
||||
self.0.is_equiv(&other.0)
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn assert_ast_equiv(lhs: &TranslationUnit, rhs: &TranslationUnit) {
|
||||
if !lhs.is_equiv(rhs) {
|
||||
panic!(
|
||||
r#"assertion failed: `(left.is_equiv(right))`
|
||||
left: `{lhs:?}`,
|
||||
right: `{rhs:?}`"#
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,5 +2,4 @@ mod ast_equiv;
|
||||
mod parse;
|
||||
mod write_c;
|
||||
|
||||
pub(crate) use ast_equiv::assert_ast_equiv;
|
||||
pub use parse::Parse;
|
||||
|
||||
@@ -18,6 +18,7 @@ impl<T: WriteString> WriteString for Node<T> {
|
||||
}
|
||||
|
||||
impl WriteLine for TranslationUnit {
|
||||
/// VERY BIG HINT: You should start by understanding the [`writeln!`](https://doc.rust-lang.org/std/macro.writeln.html) macro.
|
||||
fn write_line(&self, indent: usize, write: &mut dyn Write) -> Result<()> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user