Lexer.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * Copyright (c) 2023, Dan Klishch <danilklishch@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include "Parser/ParseError.h"
  8. #include "Parser/Token.h"
  9. namespace JSSpecCompiler {
  10. inline constexpr StringView tag_emu_alg = "emu-alg"sv;
  11. inline constexpr StringView tag_emu_clause = "emu-clause"sv;
  12. inline constexpr StringView tag_emu_import = "emu-import"sv;
  13. inline constexpr StringView tag_emu_intro = "emu-intro"sv;
  14. inline constexpr StringView tag_emu_val = "emu-val"sv;
  15. inline constexpr StringView tag_emu_xref = "emu-xref"sv;
  16. inline constexpr StringView tag_h1 = "h1"sv;
  17. inline constexpr StringView tag_li = "li"sv;
  18. inline constexpr StringView tag_ol = "ol"sv;
  19. inline constexpr StringView tag_p = "p"sv;
  20. inline constexpr StringView tag_span = "span"sv;
  21. inline constexpr StringView tag_specification = "specification"sv;
  22. inline constexpr StringView tag_var = "var"sv;
  23. inline constexpr StringView attribute_aoid = "aoid"sv;
  24. inline constexpr StringView attribute_class = "class"sv;
  25. inline constexpr StringView attribute_id = "id"sv;
  26. inline constexpr StringView class_secnum = "secnum"sv;
  27. struct StepTokenizationResult {
  28. Optional<Vector<Token>> tokens;
  29. XML::Node const* substeps = nullptr;
  30. };
  31. StepTokenizationResult tokenize_step(SpecificationParsingContext& ctx, XML::Node const* node);
  32. Optional<Vector<Token>> tokenize_header(SpecificationParsingContext& ctx, XML::Node const* node);
  33. }