summaryrefslogtreecommitdiff
path: root/oryxc
diff options
context:
space:
mode:
Diffstat (limited to 'oryxc')
-rw-r--r--oryxc/src/compiler.rs4
-rw-r--r--oryxc/src/main.rs1
-rw-r--r--oryxc/src/parser.rs29
-rw-r--r--oryxc/src/prelude.rs31
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);
+ }
+}