typst/tests/parsing/tokens.rs
2020-01-11 10:11:14 +01:00

63 lines
2.0 KiB
Rust

// Whitespace.
"" => []
" " => [W(0)]
" " => [W(0)]
"\t" => [W(0)]
" \t" => [W(0)]
"\n" => [W(1)]
"\n " => [W(1)]
" \n" => [W(1)]
" \n " => [W(1)]
" \n\t \n " => [W(2)]
"\r\n" => [W(1)]
" \r\r\n \x0D" => [W(3)]
"\n\r" => [W(2)]
// Comments.
"a // bc\n " => [T("a"), W(0), LC(" bc"), W(1)]
"a //a//b\n " => [T("a"), W(0), LC("a//b"), W(1)]
"a //a//b\r\n" => [T("a"), W(0), LC("a//b"), W(1)]
"a //a//b\n\nhello" => [T("a"), W(0), LC("a//b"), W(2), T("hello")]
"/**/" => [BC("")]
"_/*_/*a*/*/" => [U, BC("_/*a*/")]
"/*/*/" => [BC("/*/")]
"abc*/" => [T("abc"), SS]
// Header only tokens.
"[" => [LB]
"]" => [RB]
"[(){}:=,]" => [LB, LP, RP, LBR, RBR, CL, EQ, CM, RB]
"[a:b]" => [LB, ID("a"), CL, ID("b"), RB]
"[🌓, 🌍,]" => [LB, T("🌓"), CM, W(0), T("🌍"), CM, RB]
"[=]" => [LB, EQ, RB]
"[,]" => [LB, CM, RB]
"a: b" => [T("a"), T(":"), W(0), T("b")]
"c=d, " => [T("c"), T("=d"), T(","), W(0)]
r#"["hello\"world"]"# => [LB, STR(r#"hello\"world"#), RB]
r#"["hi", 12pt]"# => [LB, STR("hi"), CM, W(0), SIZE(Size::pt(12.0)), RB]
"\"hi\"" => [T("\"hi"), T("\"")]
"[a: true, x=1]" => [LB, ID("a"), CL, W(0), BOOL(true), CM, W(0),
ID("x"), EQ, NUM(1.0), RB]
"[120%]" => [LB, NUM(1.2), RB]
// Body only tokens.
"_*`" => [U, ST, B]
"[_*`]" => [LB, T("_"), T("*"), T("`"), RB]
"hi_you_ there" => [T("hi"), U, T("you"), U, W(0), T("there")]
// Escapes.
r"\[" => [T("[")]
r"\]" => [T("]")]
r"\\" => [T(r"\")]
r"\/" => [T("/")]
r"\*" => [T("*")]
r"\_" => [T("_")]
r"\`" => [T("`")]
// Unescapable special symbols.
r"\:" => [T(r"\"), T(":")]
r"\=" => [T(r"\"), T("=")]
r"[\:]" => [LB, T(r"\"), CL, RB]
r"[\=]" => [LB, T(r"\"), EQ, RB]
r"[\,]" => [LB, T(r"\"), CM, RB]