summaryrefslogtreecommitdiffstats
path: root/hwpfilter/source/mapping.h
diff options
context:
space:
mode:
Diffstat (limited to 'hwpfilter/source/mapping.h')
-rw-r--r--hwpfilter/source/mapping.h395
1 files changed, 395 insertions, 0 deletions
diff --git a/hwpfilter/source/mapping.h b/hwpfilter/source/mapping.h
new file mode 100644
index 000000000..2b573cb80
--- /dev/null
+++ b/hwpfilter/source/mapping.h
@@ -0,0 +1,395 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you 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 .
+ */
+
+#ifndef INCLUDED_HWPFILTER_SOURCE_MAPPING_H
+#define INCLUDED_HWPFILTER_SOURCE_MAPPING_H
+
+#include <string.h>
+#include <stdio.h>
+#include <sal/macros.h>
+
+#include "hwplib.h"
+
+
+struct FormulaEntry{
+ const char *tex;
+ hchar ucs;
+};
+
+// empty square
+#define DEFAULT_VALUE 0x25a1
+const struct FormulaEntry FormulaMapTab[] = {
+/* Capital Greek */
+{"Alpha", 0x0391},
+{"Beta", 0x0392},
+{"Gamma", 0x0393},
+{"Delta", 0x0394},
+{"Epsilon", 0x0395},
+{"Zeta", 0x0396},
+{"Eta", 0x0397},
+{"Theta", 0x0398},
+{"Iota", 0x0399},
+{"Kappa", 0x039a},
+{"Lambda",0x039b },
+{"Mu", 0x039c},
+{"Nu", 0x039d},
+{"Xi", 0x039e},
+{"Omicron", 0x039f},
+{"Pi", 0x03a0},
+{"Rho", 0x03a1},
+{"Sigma", 0x03a3},
+{"Tau", 0x03a4},
+{"Upsilon", 0x03a5},
+{"Phi", 0x03a6},
+{"Chi", 0x03a7},
+{"Psi", 0x03a8},
+{"Omega", 0x03a9},
+
+/* Small Greek */
+{"alpha", 0x03b1},
+{"beta", 0x03b2},
+{"gamma", 0x03b3},
+{"delta", 0x03b4},
+{"epsilon", 0x03b5},
+{"zeta", 0x03b6},
+{"eta", 0x03b7},
+{"theta", 0x03b8},
+{"iota", 0x03b9},
+{"kappa", 0x03ba},
+{"lambda",0x03bb },
+{"mu", 0x03bc},
+{"nu", 0x03bd},
+{"xi", 0x03be},
+{"omicron", 0x03bf},
+{"pi", 0x03c0},
+{"rho", 0x03c1},
+{"varrho", 0},
+{"sigma", 0x03c3},
+{"tau", 0x03c4},
+{"upsilon", 0x03c5},
+{"phi", 0x03d5},
+{"chi", 0x03c7},
+{"psi", 0x03c8},
+{"omega", 0x03c9},
+
+/* General Symbol */
+{"aleph", 0x2135},
+{"hbar", 0x045b},
+{"imath", 0x2129},
+{"jmath", 0x2110},
+{"mho", 0x2127},
+{"ell", 0x2113},
+{"wp", 0x2118},
+{"imag", 0x2111},
+{"angstrom", 0x212b},
+{"vartheta", 0x03d1},
+{"varpi", 0x03d6},
+{"varsigma", 0x04aa},
+{"varupsilon", 0x03d2},
+{"varphi", 0x03c6},
+
+
+// Big Symbol
+{"sum", 0x2211},
+{"smallsum", 0x03a3},
+{"prod", 0x220f},
+{"amalg", 0x2210},
+{"int", 0x222b},
+{"oint", 0x222e},
+{"cap", 0x22c2},
+{"cup", 0x22c3},
+{"uplus", 0x2282},
+{"vee", 0x22c1},
+{"wedge", 0x22c0},
+{"bigcap", 0x22c2},
+{"bigcup", 0x22c3},
+{"bigsqcap", 0x2293},
+{"bigsqcup", 0x2294},
+{"bigoplus", 0x2295},
+{"bigominus", 0x2296},
+{"bigotimes", 0x2297},
+{"bigodiv", 0x2298},
+{"bigodot", 0x2299},
+{"oplus", 0x2295},
+{"ominus", 0x2296},
+{"otimes", 0x2297},
+{"oslash", 0x2298},
+{"odot", 0x2299},
+{"bigvee", 0x22c1},
+{"bigwedge", 0x22c0},
+{"subset", 0x2282},
+{"superset", 0x2283},
+{"supset", 0x2283},
+{"subseteq", 0x2286},
+{"supseteq", 0x2287},
+{"in", 0x2208},
+{"ni", 0x220b},
+{"notin", 0x2209},
+{"notni", 0x220c},
+{"leq", 0x2264},
+{"geq", 0x2265},
+{"sqsubset", 0x228f},
+{"sqsupset", 0x2290},
+{"sqsubseteq", 0x2291},
+{"sqsupseteq", 0x2292},
+{"mlt", 0x2292}, // much less than
+{"mgt", 0x2292}, // much greater than
+{"vmlt", 0x22d8}, // much less than
+{"vmgt", 0x22d9}, // much greater than
+{"prec", 0x227a},
+{"succ", 0x227b},
+{"biguplus", 0x228e},
+
+// Binary Operator
+{"pm", 0x00b1},
+{"mp", 0x2213},
+{"times", 0x00d7},
+{"div", 0x00f7},
+{"circ", 0x2218},
+{"cdot", 0x2219},
+{"bullet", 0x2022},
+{"deg", 0x00b0},
+{"ast", 0x002a},
+{"star", 0x2205},
+{"bigcirc", 0x25cb},
+{"emptyset", 0x2205},
+{"therefore", 0x2234},
+{"because", 0x2235},
+{"identical", 0x2237},
+{"exists", 0x2203},
+{"noteq", 0x2260}, // !=
+{"neq", 0x2260},
+{"doteq", 0x2250},
+{"image", 0x2252},
+{"reimage", 0x2253},
+{"sim", 0x223c},
+{"approx", 0x2248},
+{"simeq", 0x2243},
+{"cong", 0x2245},
+{"equiv", 0x2261},
+{"asymp", 0x224d},
+{"iso", 0x224e},
+{"diamond", 0x22c4},
+{"dsum", 0x2214}, // add
+{"forall", 0x2200},
+{"prime", DEFAULT_VALUE}, // '
+{"partial", 0x2202},
+{"infty", 0x221e},
+{"propto", 0x221d},
+{"xor", 0x22bb},
+{"del", 0x2207},
+{"dagger", 0x2020},
+{"ddagger", 0x2021},
+{"LNOT", DEFAULT_VALUE},
+
+// Arrows
+{"leftarrow", 0x2190},
+{"uparrow", 0x2191},
+{"rightarrow", 0x2192},
+{"downarrow", 0x2193},
+{"Leftarrow", 0x21d0},
+{"Uparrow", 0x21d1},
+{"Rightarrow", 0x21d2},
+{"Downarrow", 0x21d3},
+{"updownarrow", 0x2195},
+{"Updownarrow", 0x21d5},
+{"leftrightarrow", 0x2194},
+{"Leftrightarrow", 0x21d4},
+{"nwarrow", 0x2196},
+{"searrow", 0x2198},
+{"nearrow", 0x2197},
+{"swarrow", 0x2199},
+{"hookleft", 0x21a9},
+{"hookleftarrow", 0x21a9},
+{"hookright", 0x21aa},
+{"hookrightarrow", 0x21aa},
+{"mapsto", 0x21a6},
+{"vert", 0x2223},
+{"dline", 0x2225},
+
+{"cdots", 0x22ef},
+{"ldots", 0x2026},
+{"vdots", 0x22ee},
+{"ddots", 0x22f1},
+{"triangle", 0x2206},
+{"triangled", 0x2207},
+{"angle", 0x2220},
+{"msangle", 0x2221},
+{"sangle", 0x2222},
+{"rtangle", 0x22be},
+{"vdash", 0x22a2},
+{"dashv", 0x22a3},
+{"bot", 0x22a5},
+{"top", 0x22a4},
+{"models", 0x22a8},
+
+{"coprod", DEFAULT_VALUE},
+{"varepsilon", DEFAULT_VALUE},
+{"setminus", DEFAULT_VALUE},
+{"sqcap", DEFAULT_VALUE},
+{"sqcup", DEFAULT_VALUE},
+{"wr", DEFAULT_VALUE},
+{"bigtriangleup", DEFAULT_VALUE},
+{"bigtriangledown", DEFAULT_VALUE},
+{"triangleleft", DEFAULT_VALUE},
+{"triangleright", DEFAULT_VALUE},
+{"lhd", DEFAULT_VALUE},
+{"rhd", DEFAULT_VALUE},
+{"unlhd", DEFAULT_VALUE},
+{"unrhd", DEFAULT_VALUE},
+{"nabla", DEFAULT_VALUE},
+{"surd", DEFAULT_VALUE},
+{"Box", DEFAULT_VALUE},
+{"Diamond", DEFAULT_VALUE},
+{"neg", DEFAULT_VALUE},
+{"flat", DEFAULT_VALUE},
+{"natural", DEFAULT_VALUE},
+{"sharp", DEFAULT_VALUE},
+{"clubsuit", DEFAULT_VALUE},
+{"diamondsuit", DEFAULT_VALUE},
+{"heartsuit", DEFAULT_VALUE},
+{"spadesuit", DEFAULT_VALUE},
+{"Re", DEFAULT_VALUE},
+{"Im", DEFAULT_VALUE},
+{"S", DEFAULT_VALUE},
+{"P", DEFAULT_VALUE},
+{"smallint", DEFAULT_VALUE},
+{"backslash", DEFAULT_VALUE},
+
+// Relation Operator
+{"le", DEFAULT_VALUE},
+{"ge", DEFAULT_VALUE},
+{"perp", DEFAULT_VALUE},
+{"preceq", DEFAULT_VALUE},
+{"succeq", DEFAULT_VALUE},
+{"mid", DEFAULT_VALUE},
+{"ll", DEFAULT_VALUE},
+{"gg", DEFAULT_VALUE},
+{"parallel", DEFAULT_VALUE},
+{"bowtie", DEFAULT_VALUE},
+{"Join", DEFAULT_VALUE},
+{"smile", DEFAULT_VALUE},
+{"frown", DEFAULT_VALUE},
+{"not", DEFAULT_VALUE},
+{"mapsto", DEFAULT_VALUE},
+
+// Arrows
+{"to", DEFAULT_VALUE},
+
+{"leftharpoonup", DEFAULT_VALUE},
+{"leftharpoondown", DEFAULT_VALUE},
+{"longleftarrow", DEFAULT_VALUE},
+{"Longleftarrow", DEFAULT_VALUE},
+{"longrightarrow", DEFAULT_VALUE},
+{"Longrightarrow", DEFAULT_VALUE},
+{"longleftrightarrow", DEFAULT_VALUE},
+{"Longleftrightarrow", DEFAULT_VALUE},
+{"longmapsto", DEFAULT_VALUE},
+{"rightharpoonup", DEFAULT_VALUE},
+{"rightharpoondown", DEFAULT_VALUE},
+
+// Delimeter
+{"(", DEFAULT_VALUE},
+{")", DEFAULT_VALUE},
+{"[", DEFAULT_VALUE},
+{"]", DEFAULT_VALUE},
+{"{", DEFAULT_VALUE},
+{"}", DEFAULT_VALUE},
+{"lfloor", DEFAULT_VALUE},
+{"rfloor", DEFAULT_VALUE},
+{"lceil", DEFAULT_VALUE},
+{"rceil", DEFAULT_VALUE},
+{"langle", DEFAULT_VALUE},
+{"rangle", DEFAULT_VALUE},
+{"mid", DEFAULT_VALUE},
+
+// Large Delimeter
+{"rmoustache", DEFAULT_VALUE},
+{"lmoustache", DEFAULT_VALUE},
+{"rgroup", DEFAULT_VALUE},
+{"lgroup", DEFAULT_VALUE},
+{"arrowvert", DEFAULT_VALUE},
+{"Arrowvert", DEFAULT_VALUE},
+{"bracevert", DEFAULT_VALUE},
+
+// Accent
+{"hat", DEFAULT_VALUE},
+{"breve", DEFAULT_VALUE},
+{"grave", DEFAULT_VALUE},
+{"bar", DEFAULT_VALUE},
+{"ddot", DEFAULT_VALUE},
+{"check", DEFAULT_VALUE},
+{"acute", DEFAULT_VALUE},
+{"tilde", DEFAULT_VALUE},
+{"dot", DEFAULT_VALUE},
+{"vec", DEFAULT_VALUE},
+
+// Decoration
+{"overline", DEFAULT_VALUE},
+{"underline", DEFAULT_VALUE},
+{"overbrace", DEFAULT_VALUE},
+{"underbrace", DEFAULT_VALUE},
+{"widehat", DEFAULT_VALUE},
+{"widetilde", DEFAULT_VALUE},
+{"overleftarrow", DEFAULT_VALUE},
+{"overrightarrow", DEFAULT_VALUE},
+
+// Space Symbol
+{",", DEFAULT_VALUE},
+{":", DEFAULT_VALUE},
+{";", DEFAULT_VALUE},
+{"!", DEFAULT_VALUE},
+{"quad", DEFAULT_VALUE},
+{"qquad", DEFAULT_VALUE}, // double size of character
+
+};
+
+#ifndef DEBUG
+hchar_string getMathMLEntity(const char *tex)
+{
+ static const size_t tabSize = SAL_N_ELEMENTS(FormulaMapTab);
+
+ hchar_string buf;
+ for (size_t i = 0 ; i < tabSize ; i++) {
+ if( !strcmp(tex, FormulaMapTab[i].tex ) ) {
+ buf.push_back(FormulaMapTab[i].ucs);
+ return buf;
+ }
+ }
+
+ size_t const len = strlen(tex);
+ for (size_t i = 0 ; i < len ; i++)
+ {
+ buf.push_back(tex[i]);
+ }
+ return buf;
+}
+
+#else
+::std::string getMathMLEntity(const char *tex)
+{
+ ::std::string buf;
+ buf.append(tex);
+ return buf;
+}
+#endif
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */