mirror of
https://forge.katzen.cafe/katzen-cafe/iowo.git
synced 2024-11-24 22:38:45 +01:00
lang: some small, unfinished stuff
This commit is contained in:
parent
b6e304fa78
commit
8d7401531e
|
@ -100,14 +100,3 @@ pub(crate) fn parser<
|
||||||
decls: IndexMap::from_iter(decls),
|
decls: IndexMap::from_iter(decls),
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
pub mod asg {
|
|
||||||
use std::collections::BTreeMap;
|
|
||||||
|
|
||||||
use petgraph::{adj::NodeIndex, data::Build, graph::DiGraph};
|
|
||||||
|
|
||||||
use super::{ast::Expr, Spanned};
|
|
||||||
|
|
||||||
pub struct Asg<'src> {
|
|
||||||
ast: Expr<'src>,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -28,18 +28,18 @@ pub enum Expr<'src> {
|
||||||
Option<Spanned<IndexMap<Spanned<&'src str>, Expression<'src>>>>,
|
Option<Spanned<IndexMap<Spanned<&'src str>, Expression<'src>>>>,
|
||||||
),
|
),
|
||||||
SimplePipe(Box<Expression<'src>>, Box<Expression<'src>>),
|
SimplePipe(Box<Expression<'src>>, Box<Expression<'src>>),
|
||||||
NamingPipe(
|
// NamingPipe(
|
||||||
Box<Expression<'src>>,
|
// Box<Expression<'src>>,
|
||||||
(Vec<Spanned<&'src str>>, Vec<Spanned<&'src str>>),
|
// (Vec<Spanned<&'src str>>, Vec<Spanned<&'src str>>),
|
||||||
Box<Expression<'src>>,
|
// Box<Expression<'src>>,
|
||||||
),
|
// ),
|
||||||
MappingPipe(Box<Expression<'src>>, Box<Expression<'src>>),
|
MappingPipe(Box<Expression<'src>>, Box<Expression<'src>>),
|
||||||
NullPipe(Box<Expression<'src>>, Box<Expression<'src>>),
|
NullPipe(Box<Expression<'src>>, Box<Expression<'src>>),
|
||||||
MultiPipe(IndexMap<Spanned<&'src str>, Expression<'src>>),
|
MultiPipe(IndexMap<Spanned<&'src str>, Expression<'src>>),
|
||||||
LetIn(
|
// LetIn(
|
||||||
IndexMap<Spanned<&'src str>, Box<Expression<'src>>>,
|
// IndexMap<Spanned<&'src str>, Box<Expression<'src>>>,
|
||||||
Box<Expression<'src>>,
|
// Box<Expression<'src>>,
|
||||||
),
|
// ),
|
||||||
// $
|
// $
|
||||||
Var(&'src str),
|
Var(&'src str),
|
||||||
// @
|
// @
|
||||||
|
|
|
@ -10,6 +10,10 @@ pub enum Token<'a> {
|
||||||
// so a declaration needs the keyword def until i can figure this out
|
// so a declaration needs the keyword def until i can figure this out
|
||||||
#[token("def")]
|
#[token("def")]
|
||||||
Def,
|
Def,
|
||||||
|
#[token("let")]
|
||||||
|
Let,
|
||||||
|
#[token("in")]
|
||||||
|
In,
|
||||||
#[regex("[a-zA-Z0-9_\\-]+", |lex| lex.slice())]
|
#[regex("[a-zA-Z0-9_\\-]+", |lex| lex.slice())]
|
||||||
Word(&'a str),
|
Word(&'a str),
|
||||||
#[regex("\\$[a-zA-Z0-9_\\-]+", |lex| &lex.slice()[1..])]
|
#[regex("\\$[a-zA-Z0-9_\\-]+", |lex| &lex.slice()[1..])]
|
||||||
|
|
Loading…
Reference in a new issue