lang: implement vec, list and matrix

This commit is contained in:
Schrottkatze 2024-04-30 09:45:36 +02:00
parent 8a541546d9
commit 9af71ed3f4
Signed by: schrottkatze
SSH key fingerprint: SHA256:hXb3t1vINBFCiDCmhRABHX5ocdbLiKyCdKI4HK2Rbbc
5 changed files with 78 additions and 89 deletions

View file

@ -5,13 +5,12 @@ use crate::parser::{
CompletedMarker, Parser,
};
use self::{attr_set::attr_set, matrix::matrix, vec::vec};
use self::{attr_set::attr_set, vec::vec_matrix_list};
mod attr_set;
mod matrix;
mod vec;
const COLLECTION_START: TokenSet = enum_set!(MAT_KW | L_BRACK | L_BRACE);
const COLLECTION_START: TokenSet = enum_set!(L_BRACK | L_BRACE);
pub fn collection(p: &mut Parser) -> Option<CompletedMarker> {
if !COLLECTION_START.contains(p.current()) {
@ -19,8 +18,7 @@ pub fn collection(p: &mut Parser) -> Option<CompletedMarker> {
}
Some(match p.current() {
MAT_KW => matrix(p),
L_BRACK => vec(p),
L_BRACK => vec_matrix_list(p),
L_BRACE => attr_set(p),
_ => unreachable!(),
})