Compare commits

...

2 commits

Author SHA1 Message Date
dc44244e7b
lang: work on some basics 2024-07-08 20:23:29 +02:00
1e0741e600
lang: add credit to macro 2024-07-08 20:20:45 +02:00
3 changed files with 18 additions and 2 deletions

View file

@ -1,6 +1,8 @@
use crate::lst_parser::syntax_kind::SyntaxKind::*;
use crate::SyntaxNode;
use rowan::Language;
// Heavily modified version of https://github.com/rust-analyzer/rowan/blob/e2d2e93e16c5104b136d0bc738a0d48346922200/examples/s_expressions.rs#L250-L266
macro_rules! ast_nodes {
($($ast:ident, $kind:ident);+) => {
$(

View file

@ -1,5 +1,7 @@
use std::path::Path;
use self::files::{Files, OpenFileError};
mod error;
mod files;
@ -7,8 +9,19 @@ struct World;
impl World {
pub fn new(entry_point: &Path) -> Result<Self, WorldCreationError> {
let mut files = Files::default();
let (entry_point_id, errors) = files.add_file(entry_point)?;
todo!()
}
}
enum WorldCreationError {}
enum WorldCreationError {
FailedToOpenEntryPoint(OpenFileError),
}
impl From<OpenFileError> for WorldCreationError {
fn from(value: OpenFileError) -> Self {
Self::FailedToOpenEntryPoint(value)
}
}

View file

@ -15,7 +15,8 @@ use crate::{
world::{error::Error, files::source_file::SourceFile},
};
struct Files {
#[derive(Default)]
pub struct Files {
inner: Vec<source_file::SourceFile>,
path_to_id_map: HashMap<PathBuf, FileId>,
}