diff --git a/Libraries/LibJS/Lexer.cpp b/Libraries/LibJS/Lexer.cpp index dd5bae4f7c..dc094f4f5d 100644 --- a/Libraries/LibJS/Lexer.cpp +++ b/Libraries/LibJS/Lexer.cpp @@ -240,13 +240,6 @@ bool Lexer::is_numeric_literal_start() const return isdigit(m_current_char) || (m_current_char == '.' && m_position < m_source.length() && isdigit(m_source[m_position])); } -void Lexer::syntax_error(const char* msg) -{ - m_has_errors = true; - if (m_log_errors) - fprintf(stderr, "Syntax Error: %s (line: %zu, column: %zu)\n", msg, m_line_number, m_line_column); -} - Token Lexer::next() { size_t trivia_start = m_position; @@ -395,7 +388,6 @@ Token Lexer::next() consume(); } if (m_current_char != stop_char) { - syntax_error("unterminated string literal"); token_type = TokenType::UnterminatedStringLiteral; } else { consume(); diff --git a/Libraries/LibJS/Lexer.h b/Libraries/LibJS/Lexer.h index f5a4ae51cd..e60c2dd654 100644 --- a/Libraries/LibJS/Lexer.h +++ b/Libraries/LibJS/Lexer.h @@ -37,14 +37,8 @@ namespace JS { class Lexer { public: explicit Lexer(StringView source); - Lexer(StringView source, bool log_errors) - : Lexer(source) - { - m_log_errors = log_errors; - } Token next(); - bool has_errors() const { return m_has_errors; } private: void consume(); @@ -60,16 +54,12 @@ private: bool match(char, char, char) const; bool match(char, char, char, char) const; - void syntax_error(const char*); - StringView m_source; size_t m_position = 0; Token m_current_token; int m_current_char = 0; - bool m_has_errors = false; size_t m_line_number = 1; size_t m_line_column = 1; - bool m_log_errors = true; struct TemplateState { bool in_expr; diff --git a/Libraries/LibJS/Parser.h b/Libraries/LibJS/Parser.h index 90eb95ed09..7cbd0b2b80 100644 --- a/Libraries/LibJS/Parser.h +++ b/Libraries/LibJS/Parser.h @@ -75,7 +75,7 @@ public: NonnullRefPtr parse_new_expression(); RefPtr try_parse_arrow_function_expression(bool expect_parens); - bool has_errors() const { return m_parser_state.m_lexer.has_errors() || m_parser_state.m_has_errors; } + bool has_errors() const { m_parser_state.m_has_errors; } private: friend class ScopePusher; diff --git a/Userland/js.cpp b/Userland/js.cpp index ed5ddb3c56..acfe17d87e 100644 --- a/Userland/js.cpp +++ b/Userland/js.cpp @@ -524,7 +524,7 @@ int main(int argc, char** argv) size_t open_indents = s_repl_line_level; - JS::Lexer lexer(str, false); + JS::Lexer lexer(str); bool indenters_starting_line = true; for (JS::Token token = lexer.next(); token.type() != JS::TokenType::Eof; token = lexer.next()) { auto length = token.value().length();