1use super::{locations::Location, TokenKind};
2
3impl std::fmt::Display for TokenKind {
4 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5 use TokenKind::*;
6 let str = match self {
7 Get => "get",
8 Post => "post",
9 Put => "put",
10 Patch => "patch",
11 Delete => "delete",
12 Header => "header",
13 Body => "body",
14 Set => "set",
15 Let => "let",
16 Ident => "identifier",
17 Boolean => "boolean",
18 Number => "number",
19 StringLiteral => "string",
20 Pathname => "pathname",
21 Url => "url",
22 Linecomment => "comment",
23 Shebang => "#!...",
24 Assign => "=",
25 DollarSignLBracket => "${",
26 LParen => "(",
27 RParen => ")",
28 LBracket => "{",
29 RBracket => "}",
30 LSquare => "[",
31 RSquare => "]",
32 Colon => ":",
33 AttributePrefix => "@",
34 Comma => ",",
35 End => "Eof",
36 UnfinishedStringLiteral => "\"...",
37 UnfinishedMultiLineStringLiteral => "`...",
38 IllegalToken => "illegal",
39 Null => "null",
40 OpeningBackTick => "`",
41 ClosingBackTick => "`",
42 };
43
44 f.write_str(str)
45 }
46}
47
48impl std::fmt::Display for Location {
49 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
50 write!(f, "[{}:{}]", self.line + 1, self.col + 1)
51 }
52}