diff options
Diffstat (limited to 'oryxc/src')
| -rw-r--r-- | oryxc/src/compiler.rs | 4 | ||||
| -rw-r--r-- | oryxc/src/main.rs | 1 | ||||
| -rw-r--r-- | oryxc/src/parser.rs | 29 | ||||
| -rw-r--r-- | oryxc/src/prelude.rs | 31 |
4 files changed, 34 insertions, 31 deletions
diff --git a/oryxc/src/compiler.rs b/oryxc/src/compiler.rs index 06f7d92..6438f06 100644 --- a/oryxc/src/compiler.rs +++ b/oryxc/src/compiler.rs @@ -30,6 +30,7 @@ use soa_rs::Soa; use crate::errors::OryxError; use crate::lexer::Token; use crate::parser::AstNode; +use crate::prelude::*; use crate::{ Flags, err, @@ -37,9 +38,6 @@ use crate::{ parser, }; -#[derive(Clone, Copy, Eq, Hash, PartialEq)] -pub struct FileId(usize); - pub struct FileData { pub name: OsString, pub buffer: String, diff --git a/oryxc/src/main.rs b/oryxc/src/main.rs index 7320c19..e8c552f 100644 --- a/oryxc/src/main.rs +++ b/oryxc/src/main.rs @@ -4,6 +4,7 @@ mod compiler; mod errors; mod lexer; mod parser; +mod prelude; mod size; mod unicode; diff --git a/oryxc/src/parser.rs b/oryxc/src/parser.rs index d27a002..89e2769 100644 --- a/oryxc/src/parser.rs +++ b/oryxc/src/parser.rs @@ -1,11 +1,3 @@ -use std::fmt::{ - self, - Debug, - Formatter, -}; -use std::ops::FnOnce; -use std::vec::Vec; - use soa_rs::{ Soa, Soars, @@ -16,6 +8,7 @@ use crate::lexer::{ Token, TokenType, }; +use crate::prelude::*; use crate::size; const MAX_PREC: i64 = 6; @@ -43,26 +36,6 @@ pub enum AstType { UnaryOperator, /* (rhs, _) */ } -#[derive(Clone, Copy)] -pub struct SubNodes(u32, u32); - -impl Debug for SubNodes { - fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { - let __ = format_args!("_"); - return f - .debug_tuple("SubNodes") - .field(if self.0 != u32::MAX { &self.0 } else { &__ }) - .field(if self.1 != u32::MAX { &self.1 } else { &__ }) - .finish(); - } -} - -impl Default for SubNodes { - fn default() -> Self { - return Self(u32::MAX, u32::MAX); - } -} - #[derive(Soars)] #[soa_derive(Debug)] pub struct AstNode { diff --git a/oryxc/src/prelude.rs b/oryxc/src/prelude.rs new file mode 100644 index 0000000..78e7597 --- /dev/null +++ b/oryxc/src/prelude.rs @@ -0,0 +1,31 @@ +use std::fmt::{ + self, + Debug, + Formatter, +}; + +#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] +pub struct FileId(pub usize); + +#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] +pub struct NodeId(pub u32); + +#[derive(Clone, Copy)] +pub struct SubNodes(pub u32, pub u32); + +impl Debug for SubNodes { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + let __ = format_args!("_"); + return f + .debug_tuple("SubNodes") + .field(if self.0 != u32::MAX { &self.0 } else { &__ }) + .field(if self.1 != u32::MAX { &self.1 } else { &__ }) + .finish(); + } +} + +impl Default for SubNodes { + fn default() -> Self { + return Self(u32::MAX, u32::MAX); + } +} |