19 std::shared_ptr<TokenStream> tokStream;
21 [[nodiscard]]
size_t handleNumber(
size_t i,
const std::string &input);
22 size_t handleSpaces(
size_t i,
const std::string &input);
23 size_t handleID(
size_t i,
const std::string &input);
24 size_t handleInvalid(
size_t i,
const std::string &input);
25 size_t handleOperators(
size_t i,
const std::string &input);
26 size_t handleOperatorsADD(
size_t i,
const std::string &input);
27 size_t handleOperatorsSUB(
size_t i,
const std::string &input);
28 size_t handleOperatorsMUL(
size_t i,
const std::string &input);
29 size_t handleOperatorsDIV(
size_t i,
const std::string &input);
30 size_t handleOperatorsMOD(
size_t i,
const std::string &input);
31 size_t handleOperatorsAND(
size_t i,
const std::string &input);
32 size_t handleOperatorsOR(
size_t i,
const std::string &input);
33 size_t handleOperatorsXOR(
size_t i,
const std::string &input);
34 size_t handleOperatorsCompLeft(
size_t i,
const std::string &input);
35 size_t handleOperatorsCompRight(
size_t i,
const std::string &input);
36 size_t handleOperatorsEqual(
size_t i,
const std::string &input);
37 size_t handleOperatorsNot(
size_t i,
const std::string &input);
39 size_t handleUtility(
size_t i,
const std::string &input);
40 size_t handleUtilityPAREN(
size_t i,
const std::string &input);
41 size_t handleUtilityCURLY(
size_t i,
const std::string &input);
42 size_t handleUtilityCOMMENT(
size_t i,
const std::string &input);
43 size_t handleUtilityCOMMA(
size_t i,
const std::string &input);
44 size_t handleUtilitySemiColon(
size_t i,
const std::string &input);
45 size_t handleUtilityDoubleQuote(
size_t i,
const std::string &input);
46 size_t handleUtilityCOLON(
size_t i,
const std::string &input);
48 void updateLocation();
51 explicit Lexer(
const std::string &input);
52 Lexer() : location() { tokStream = std::make_shared<TokenStream>(); }
53 std::shared_ptr<Token> peek();
54 std::shared_ptr<Token> consume();
56 std::shared_ptr<TokenStream> getTokenStream() {
return tokStream; }
58 size_t advance(
size_t i);
60 size_t devance(
size_t i);