1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// use super::{FmlFunction, FmlValue, Quote};
// use crate::ast::{
// FmlValues, FunctionToken, Token,
// token::{self, Tokens},
// };
// use chumsky::Parser;
// impl TryFrom<Token> for FmlValue {
// type Error = ();
// fn try_from(value: Token) -> Result<Self, Self::Error> {
// Ok(match value {
// Token::Linebreak => Self::Linebreak,
// Token::CodeBlock { lang, body } => Self::CodeBlock { lang, body },
// Token::CodeInline(s) => Self::CodeInline(s),
// Token::Heading1(tokens) => Self::Heading1(tokens.try_into()?),
// Token::Heading2(tokens) => Self::Heading2(tokens.try_into()?),
// Token::Heading3(tokens) => Self::Heading3(tokens.try_into()?),
// Token::SupLine(tokens) => Self::Superline(tokens.try_into()?),
// Token::SubLine(tokens) => Self::Subline(tokens.try_into()?),
// Token::ListItem(tokens) => Self::ListItem(tokens.try_into()?),
// Token::Quote(s) => {
// let p = crate::parser::functions::fml_values();
// let tokens = p.parse(&s).into_result().map_err(|_| ())?;
// let values = tokens.try_into()?;
// Quote(values)
// }
// Token::CwSpoiler(tokens) => Self::ContentWarning {
// reason: "Spoilers".into(),
// body: tokens.try_into()?,
// },
// Token::Hyperlink { fml, uri } => Self::Hyperlink {
// fml: fml.try_into()?,
// uri,
// },
// Token::Bold(tokens) => Self::Bold(tokens.try_into()?),
// Token::Italic(tokens) => Self::Italic(tokens.try_into()?),
// Token::Strikethrough(tokens) => Self::Strikethrough(tokens.try_into()?),
// Token::Underline(tokens) => Self::Underline(tokens.try_into()?),
// Token::Superscript(tokens) => Self::Superscript(tokens.try_into()?),
// Token::Subscript(tokens) => Self::Subscript(tokens.try_into()?),
// Token::Function(FunctionToken { name, params, body }) => FmlFunction {
// name,
// params,
// body: body.try_into()?,
// }
// .interpret(),
// Token::Typst(s) => Self::Typst(s),
// Token::Text(s) => Self::Text(s),
// })
// }
// }
// impl TryFrom<Tokens> for FmlValues {
// type Error = ();
// fn try_from(tokens: Tokens) -> Result<Self, Self::Error> {
// let mut vec = vec![];
// for t in tokens.0 {
// vec.push(t.try_into()?);
// }
// Ok(Self(vec))
// }
// }