Website Summary Files Commits Branches @commit @diff @stats
path: root / JSImpl / src / Lexer.h
diff options
context:
space:
mode:
Commit1147692d253fb00fcd09df114652621f8d89f595 (patch)
Author
 martin dobrev <martindobrev0@gmail.com>
2018-10-15 09:03:03 +0300
Committer
 martin dobrev <martindobrev0@gmail.com>
2018-10-15 09:03:03 +0300
Filesd530d0243407e86be9e9116e3853bf7992757ebd /JSImpl/src/Lexer.h
IPL-1147692d253fb00fcd09df114652621f8d89f595.tar
IPL-1147692d253fb00fcd09df114652621f8d89f595.tar.gz
IPL-1147692d253fb00fcd09df114652621f8d89f595.zip
Parentf671c0492871418a7b6fed235196b85f79236cff (diff)
Parent202194341e3697d77077aa50652acf1042350997 (diff)
Merge branch 'omalinov-lexer-errors-handling'
1 files changed, 8 insertions, 4 deletions
-rw-r--r--JSImpl/src/Lexer.h12
diff --git a/JSImpl/src/Lexer.h b/JSImpl/src/Lexer.h
index 914b6ed..fb3e0a1 100644
--- a/JSImpl/src/Lexer.h
+++ b/JSImpl/src/Lexer.h
@@ -1,9 +1,8 @@
#pragma once
#include "CommonTypes.h"
-#include <functional>
-enum TokenType
+enum class TokenType
{
// Single-character tokens.
LeftParen,
@@ -98,7 +97,6 @@ enum TokenType
True,
False,
-
Eof,
Invalid
};
@@ -111,4 +109,10 @@ struct Token
double Number;
};
-IPLVector<Token> Tokenize(const char* code, const std::function<void()>& onError = {});
+struct LexerResult
+{
+ bool IsSuccessful;
+ IPLError Error;
+};
+
+LexerResult Tokenize(const char* code, IPLVector<Token>& tokens);