diff options
author | Ben Bridle <ben@derelict.engineering> | 2025-03-06 20:33:27 +1300 |
---|---|---|
committer | Ben Bridle <ben@derelict.engineering> | 2025-03-11 16:59:26 +1300 |
commit | 1ecee352f5844b0809d7ae66df52e34f42b44c8e (patch) | |
tree | 472b6fd57ff7f64ac3f8cd676cbe7a113ba01f05 /src/tokens/tracked.rs | |
parent | f2ed89083f5326a7a6f0a1720033d3388aa431fb (diff) | |
download | torque-asm-1ecee352f5844b0809d7ae66df52e34f42b44c8e.zip |
Rewrite entire assembler
The language is now more general, the code is better structured, error
reporting is more detailed, and many new language features have
been implemented:
- conditional blocks
- first-class strings
- more expression operators
- binary literals
- negative values
- invocations in constant expressions
Diffstat (limited to 'src/tokens/tracked.rs')
-rw-r--r-- | src/tokens/tracked.rs | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/src/tokens/tracked.rs b/src/tokens/tracked.rs deleted file mode 100644 index ea37047..0000000 --- a/src/tokens/tracked.rs +++ /dev/null @@ -1,47 +0,0 @@ -use crate::*; - - -#[derive(Clone)] -pub struct Tracked<T> { - pub source: SourceSpan, - pub value: T, -} - -impl<T> Tracked<T> { - pub fn from(value: T, source: SourceSpan) -> Self { - Self { source, value } - } -} - -impl<T> std::ops::Deref for Tracked<T> { - type Target = T; - fn deref(&self) -> &T { - &self.value - } -} - -impl<T> std::ops::DerefMut for Tracked<T> { - fn deref_mut(&mut self) -> &mut T { - &mut self.value - } -} - -impl<T: std::fmt::Display> std::fmt::Display for Tracked<T> { - fn fmt(&self, f: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> { - write!(f, "{}", self.value) - } -} - -impl<T: std::fmt::Debug> std::fmt::Debug for Tracked<T> { - fn fmt(&self, f: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> { - write!(f, "{:?}", self.value) - } -} - -impl<T: PartialEq> PartialEq for Tracked<T> { - fn eq(&self, other: &Tracked<T>) -> bool { - self.value.eq(&other.value) - } -} - -impl<T: Eq> Eq for Tracked<T> {} |