From f9a49faa33f3a61bd27da8227eeac20b74f649c3 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Thu, 22 Feb 2024 09:09:19 -0800 Subject: [Parser][NFC] Remove parser/input.h (#6332) Remove the layer of abstraction sitting between the parser and the lexer now that the lexer has an interface the parser can use directly. --- src/parser/input.h | 88 ------------------------------------------------------ 1 file changed, 88 deletions(-) delete mode 100644 src/parser/input.h (limited to 'src/parser/input.h') diff --git a/src/parser/input.h b/src/parser/input.h deleted file mode 100644 index f83f5a40a..000000000 --- a/src/parser/input.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2023 WebAssembly Community Group participants - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef parser_input_h -#define parser_input_h - -#include "lexer.h" -#include "support/result.h" -#include "wasm.h" - -namespace wasm::WATParser { - -using namespace std::string_view_literals; - -// Wraps a lexer and provides utilities for consuming tokens. -struct ParseInput { - Lexer lexer; - - explicit ParseInput(std::string_view in) : lexer(in) {} - - ParseInput(std::string_view in, size_t index) : lexer(in) { - lexer.setIndex(index); - } - - ParseInput(const ParseInput& other, size_t index) : lexer(other.lexer) { - lexer.setIndex(index); - } - - bool empty() { return lexer.empty(); } - - // TODO: Remove this useless layer of abstraction between the Lexer and - // Parser. - std::optional peek() { return lexer.peek(); } - bool takeLParen() { return lexer.takeLParen(); } - bool takeRParen() { return lexer.takeRParen(); } - bool takeUntilParen() { return lexer.takeUntilParen(); } - std::optional takeID() { return lexer.takeID(); } - std::optional takeKeyword() { return lexer.takeKeyword(); } - bool takeKeyword(std::string_view expected) { - return lexer.takeKeyword(expected); - } - std::optional takeOffset() { return lexer.takeOffset(); } - std::optional takeAlign() { return lexer.takeAlign(); } - std::optional takeU64() { return lexer.takeU64(); } - std::optional takeI64() { return lexer.takeI64(); } - std::optional takeU32() { return lexer.takeU32(); } - std::optional takeI32() { return lexer.takeI32(); } - std::optional takeI16() { return lexer.takeI16(); } - std::optional takeU8() { return lexer.takeU8(); } - std::optional takeI8() { return lexer.takeI8(); } - std::optional takeF64() { return lexer.takeF64(); } - std::optional takeF32() { return lexer.takeF32(); } - std::optional takeString() { return lexer.takeString(); } - std::optional takeName() { return lexer.takeName(); } - bool takeSExprStart(std::string_view expected) { - return lexer.takeSExprStart(expected); - } - bool peekSExprStart(std::string_view expected) { - return lexer.peekSExprStart(expected); - } - - Index getPos() { return lexer.getPos(); } - - [[nodiscard]] Err err(Index pos, std::string reason) { - std::stringstream msg; - msg << lexer.position(pos) << ": error: " << reason; - return Err{msg.str()}; - } - - [[nodiscard]] Err err(std::string reason) { return err(getPos(), reason); } -}; - -} // namespace wasm::WATParser - -#endif // parser_input_h -- cgit v1.2.3