summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/platform/text/mathml_operator_dictionary.h
blob: bd1cdbad60d58a741446eca7e5a67592d27c6d79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_MATHML_OPERATOR_DICTIONARY_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_MATHML_OPERATOR_DICTIONARY_H_

#include "third_party/blink/renderer/platform/platform_export.h"

#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"

namespace blink {

enum class MathMLOperatorDictionaryCategory : uint8_t {
  kNone,
  kA,
  kB,
  kC,
  kDorEorL,
  kForG,
  kH,
  kI,
  kJ,
  kK,
  kM,
  kUndefined = 15
};

enum MathMLOperatorDictionaryForm { kInfix, kPrefix, kPostfix };

// FindCategory takes a UTF-16 string and form (infix, prefix, postfix) as input
// and returns the operator dictionary category for this pair, see:
// https://w3c.github.io/mathml-core/#operator-dictionary
// The returned value is never MathMLOperatorDictionaryCategory::kUndefined.
PLATFORM_EXPORT MathMLOperatorDictionaryCategory
FindCategory(const String& content, MathMLOperatorDictionaryForm);

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_MATHML_OPERATOR_DICTIONARY_H_