lang: rewrite parser

This commit is contained in:
Schrottkatze 2024-04-24 11:07:38 +02:00
parent 6d8b79e8f7
commit 381ab45edc
Signed by: schrottkatze
SSH key fingerprint: SHA256:hXb3t1vINBFCiDCmhRABHX5ocdbLiKyCdKI4HK2Rbbc
25 changed files with 524 additions and 1161 deletions

View file

@ -1,12 +1,9 @@
use clap::Parser;
use std::{fs, path::PathBuf};
use clap::Parser;
use lang::{
err_reporting::ErrorCollector,
parser::ast::lossless::{
lex,
parser::{self, parse},
},
use lang::parser::{
parser::{self, grammar, input, output::Output},
syntax_kind,
};
#[derive(Parser)]
@ -19,8 +16,17 @@ fn main() {
let args = Args::parse();
let n = args.file.clone();
let f = fs::read_to_string(n.clone()).expect("failed to read file");
println!("toks: {:?}", lex::lex(&f));
println!("parse res: {:?}", parse(&f));
let toks = dbg!(syntax_kind::lex(&f));
let input = input::Input::new(&toks);
let mut parser = parser::Parser::new(input);
grammar::source_file(&mut parser);
let p_out = dbg!(parser.finish());
let o = Output::from_parser_output(toks, p_out);
println!("Out: {:?}", o);
// let parse_res = parser::parse(&f);
// println!("parse: {:?}", parse_res);