Serenity Operating System
1/*
2 * Copyright (c) 2021, Dylan Katz <dykatz@uw.edu>
3 * Copyright (c) 2022, the SerenityOS developers.
4 *
5 * SPDX-License-Identifier: BSD-2-Clause
6 */
7
8#pragma once
9
10#include <LibSyntax/Highlighter.h>
11
12namespace SQL::AST {
13
14class SyntaxHighlighter final : public Syntax::Highlighter {
15public:
16 SyntaxHighlighter() = default;
17 virtual ~SyntaxHighlighter() override = default;
18
19 virtual bool is_identifier(u64) const override;
20
21 virtual Syntax::Language language() const override { return Syntax::Language::SQL; }
22 virtual Optional<StringView> comment_prefix() const override { return "--"sv; }
23 virtual Optional<StringView> comment_suffix() const override { return {}; }
24
25 virtual void rehighlight(Palette const&) override;
26
27protected:
28 virtual Vector<MatchingTokenPair> matching_token_pairs_impl() const override;
29 virtual bool token_types_equal(u64, u64) const override;
30};
31
32}