LeviLamina
Loading...
Searching...
No Matches
CommandLexer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
6public:
7 // CommandLexer inner types declare
8 // clang-format off
9 struct Token;
10 // clang-format on
11
12 // CommandLexer inner types define
13 enum class TokenType : int {
14 Error = 0,
15 Integer = 1,
16 NInteger = 2,
17 Identifier = 3,
18 Selector = 4,
19 Slash = 5,
20 Value = 6,
21 RelativeValue = 7,
22 LocalDirectionalValue = 8,
23 Equals = 9,
24 Comma = 10,
25 Colon = 11,
26 Not = 12,
27 Asterisk = 13,
28 Hash = 14,
29 OpenBracket = 15,
30 CloseBracket = 16,
31 OpenBrace = 17,
32 CloseBrace = 18,
33 String = 19,
34 Range = 20,
35 LessThan = 21,
36 GreaterThan = 22,
37 LessThanEquals = 23,
38 GreaterThanEquals = 24,
39 PlusEquals = 25,
40 MinusEquals = 26,
41 TimesEquals = 27,
42 DivideEquals = 28,
43 ModEquals = 29,
44 GreaterThanLessThan = 30,
45 IdentifierFilenameSubset = 31,
46 Unknown = 32,
47 End = 33,
48 };
49
50 struct Token {
51 public:
52 // member variables
53 // NOLINTBEGIN
54 ::ll::TypedStorage<8, 8, char const*> text;
55 ::ll::TypedStorage<4, 4, uint> length;
56 ::ll::TypedStorage<4, 4, ::CommandLexer::TokenType> type;
57 // NOLINTEND
58 };
59
60public:
61 // member variables
62 // NOLINTBEGIN
63 ::ll::TypedStorage<8, 8, ::std::string const&> mInput;
64 ::ll::TypedStorage<8, 16, ::CommandLexer::Token> mToken;
65 // NOLINTEND
66
67public:
68 // member functions
69 // NOLINTBEGIN
70 MCAPI void step();
71 // NOLINTEND
72};
Definition CommandLexer.h:5
Definition CommandLexer.h:50