svg-filters & basic parser #15
4 changed files with 38 additions and 41 deletions
|
@ -2,49 +2,9 @@ use crate::parser::{syntax_kind::SyntaxKind::*, CompletedMarker, Parser};
|
|||
|
||||
use self::{collection::collection, instruction::instr, lit::literal};
|
||||
|
||||
mod collection;
|
||||
mod instruction;
|
||||
mod lit;
|
||||
mod collection {
|
||||
use enumset::enum_set;
|
||||
|
||||
use crate::parser::{
|
||||
syntax_kind::{SyntaxKind::*, TokenSet},
|
||||
CompletedMarker, Parser,
|
||||
};
|
||||
|
||||
use self::{attr_set::attr_set, matrix::matrix, vec::vec};
|
||||
|
||||
const COLLECTION_START: TokenSet = enum_set!(MAT_KW | L_BRACK | L_BRACE);
|
||||
|
||||
pub fn collection(p: &mut Parser) -> Option<CompletedMarker> {
|
||||
if !COLLECTION_START.contains(p.current()) {
|
||||
return None;
|
||||
}
|
||||
|
||||
Some(match p.current() {
|
||||
MAT_KW => matrix(p),
|
||||
L_BRACK => vec(p),
|
||||
L_BRACE => attr_set(p),
|
||||
_ => unreachable!(),
|
||||
})
|
||||
}
|
||||
|
||||
mod matrix;
|
||||
mod vec {
|
||||
use crate::parser::{CompletedMarker, Parser};
|
||||
|
||||
pub fn vec(p: &mut Parser) -> CompletedMarker {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
mod attr_set {
|
||||
use crate::parser::{CompletedMarker, Parser};
|
||||
|
||||
pub fn attr_set(p: &mut Parser) -> CompletedMarker {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn expression(p: &mut Parser) -> Option<CompletedMarker> {
|
||||
let expr = p.start("expr");
|
||||
|
|
27
crates/lang/src/parser/grammar/expression/collection.rs
Normal file
27
crates/lang/src/parser/grammar/expression/collection.rs
Normal file
|
@ -0,0 +1,27 @@
|
|||
use enumset::enum_set;
|
||||
|
||||
use crate::parser::{
|
||||
syntax_kind::{SyntaxKind::*, TokenSet},
|
||||
CompletedMarker, Parser,
|
||||
};
|
||||
|
||||
use self::{attr_set::attr_set, matrix::matrix, vec::vec};
|
||||
|
||||
mod attr_set;
|
||||
mod matrix;
|
||||
mod vec;
|
||||
|
||||
const COLLECTION_START: TokenSet = enum_set!(MAT_KW | L_BRACK | L_BRACE);
|
||||
|
||||
pub fn collection(p: &mut Parser) -> Option<CompletedMarker> {
|
||||
if !COLLECTION_START.contains(p.current()) {
|
||||
return None;
|
||||
}
|
||||
|
||||
Some(match p.current() {
|
||||
MAT_KW => matrix(p),
|
||||
L_BRACK => vec(p),
|
||||
L_BRACE => attr_set(p),
|
||||
_ => unreachable!(),
|
||||
})
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
use crate::parser::{CompletedMarker, Parser};
|
||||
|
||||
pub fn attr_set(p: &mut Parser) -> CompletedMarker {
|
||||
todo!()
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
use crate::parser::{CompletedMarker, Parser};
|
||||
|
||||
pub fn vec(p: &mut Parser) -> CompletedMarker {
|
||||
todo!()
|
||||
}
|
Loading…
Reference in a new issue