Compare commits

..

9 Commits

Author SHA1 Message Date
4f0e3504d1 For bug 68532 2024-07-08 01:53:47 +03:00
f70b5c0939 Merge pull request #1580 from ONLYOFFICE/hotfix/v8.1.1
Hotfix/v8.1.1
2024-06-27 23:34:50 -07:00
e674248d94 Add plugin for private rooms without desktop 2024-01-10 18:48:49 +03:00
522564eb72 Develop... 2024-01-10 00:08:49 +03:00
498b5da2b6 Rebuild module 2024-01-09 20:29:08 +03:00
39d46ca94e Fix typo 2024-01-09 20:15:49 +03:00
8813f65345 Develop new engone for private rooms 2024-01-09 20:12:09 +03:00
ec12f550af Fix typo 2024-01-09 14:13:37 +03:00
0de4c876af Develop new engone for private rooms 2024-01-09 13:34:42 +03:00
5508 changed files with 172172 additions and 283764 deletions

2
.gitignore vendored
View File

@ -46,5 +46,3 @@ DesktopEditor/fontengine/js/common/freetype-2.10.4
.qtc_clangd
Common/3dParty/openssl/openssl/
msvc_make.bat

View File

@ -1,141 +0,0 @@
#include "IWork.h"
#include "../DesktopEditor/common/File.h"
#include "../DesktopEditor/common/Directory.h"
#include <libetonyek/libetonyek.h>
#include <libodfgen/OdtGenerator.hxx>
#include <libodfgen/OdsGenerator.hxx>
#include <libodfgen/OdpGenerator.hxx>
#include <libodfgen/test/StringDocumentHandler.hxx>
#include <memory>
#include <fstream>
class CIWorkFile_Private
{
public:
std::wstring m_sTempDirectory;
public:
CIWorkFile_Private()
{
}
~CIWorkFile_Private()
{
}
};
CIWorkFile::CIWorkFile()
{
m_internal = new CIWorkFile_Private();
}
CIWorkFile::~CIWorkFile()
{
delete m_internal;
}
#if !defined(_WIN32) && !defined(_WIN64)
#define DATA_TYPE_INPUTFILE std::string
#else
#define DATA_TYPE_INPUTFILE std::wstring
#endif
bool GetRVNGInputStream(const DATA_TYPE_INPUTFILE& sFile, std::shared_ptr<librevenge::RVNGInputStream>& oRVNGInputStream, libetonyek::EtonyekDocument::Type& oDocumentType)
{
oRVNGInputStream.reset(new librevenge::RVNGFileStream(sFile.c_str()));
oDocumentType = libetonyek::EtonyekDocument::TYPE_UNKNOWN;
const libetonyek::EtonyekDocument::Confidence confidence = libetonyek::EtonyekDocument::isSupported(oRVNGInputStream.get(), &oDocumentType);
return libetonyek::EtonyekDocument::CONFIDENCE_NONE != confidence;
}
IWorkFileType CIWorkFile::GetType(const std::wstring& sFile) const
{
//TODO:: так как на данный момент мы работает только напрямую с файлом, то работа с директорией нам пока не нужна
if (NSDirectory::PathIsDirectory(sFile))
return IWorkFileType::None;
std::shared_ptr<librevenge::RVNGInputStream> input;
libetonyek::EtonyekDocument::Type oDocumentType;
#if !defined(_WIN32) && !defined(_WIN64)
std::string sFileA = U_TO_UTF8(sFile);
if (!GetRVNGInputStream(sFileA, input, oDocumentType))
return IWorkFileType::None;
#else
if (!GetRVNGInputStream(sFile, input, oDocumentType))
return IWorkFileType::None;
#endif
switch (oDocumentType)
{
case libetonyek::EtonyekDocument::TYPE_PAGES:
return IWorkFileType::Pages;
case libetonyek::EtonyekDocument::TYPE_NUMBERS:
return IWorkFileType::Numbers;
case libetonyek::EtonyekDocument::TYPE_KEYNOTE:
return IWorkFileType::Keynote;
default:
break;
}
return IWorkFileType::None;
}
template<class Generator>
int Convert(const std::wstring& wsOutputFile, std::shared_ptr<librevenge::RVNGInputStream>& ptrInput, const std::wstring& wsPassword = L"", const std::wstring& wsTempDirectory = L"")
{
StringDocumentHandler content;
Generator generator;
generator.addDocumentHandler(&content, ODF_FLAT_XML);
bool bRes = libetonyek::EtonyekDocument::parse(ptrInput.get(), &generator);
if (!bRes)
return 1;
const std::string sOutputFileA = U_TO_UTF8(wsOutputFile);
std::ofstream output(sOutputFileA.c_str());
output << content.cstr();
if (output.bad())
return -1;
return 0;
}
int CIWorkFile::Convert2Odf(const std::wstring& sFile, const std::wstring& sOutputFile) const
{
//TODO:: так как на данный момент мы работает только напрямую с файлом, то работа с директорией нам пока не нужна
if (NSDirectory::PathIsDirectory(sFile))
return -1;
std::shared_ptr<librevenge::RVNGInputStream> input;
libetonyek::EtonyekDocument::Type oDocumentType;
#if !defined(_WIN32) && !defined(_WIN64)
std::string sFileA = U_TO_UTF8(sFile);
if (!GetRVNGInputStream(sFileA, input, oDocumentType))
return -1;
#else
if (!GetRVNGInputStream(sFile, input, oDocumentType))
return -1;
#endif
switch (oDocumentType)
{
case libetonyek::EtonyekDocument::TYPE_PAGES: return Convert<OdtGenerator>(sOutputFile, input);
case libetonyek::EtonyekDocument::TYPE_NUMBERS: return Convert<OdsGenerator>(sOutputFile, input);
case libetonyek::EtonyekDocument::TYPE_KEYNOTE: return Convert<OdpGenerator>(sOutputFile, input);
default:
break;
}
return -1;
}
void CIWorkFile::SetTmpDirectory(const std::wstring& sFolder)
{
m_internal->m_sTempDirectory = sFolder;
}

View File

@ -1,36 +0,0 @@
#ifndef _IWORKFILE_IWORKFILE_H
#define _IWORKFILE_IWORKFILE_H
#include <string>
#ifndef IWORK_USE_DYNAMIC_LIBRARY
#define IWORK_FILE_DECL_EXPORT
#else
#include "../DesktopEditor/common/base_export.h"
#define IWORK_FILE_DECL_EXPORT Q_DECL_EXPORT
#endif
enum class IWorkFileType
{
Pages = 0,
Numbers = 1,
Keynote = 2,
None = 255
};
class CIWorkFile_Private;
class IWORK_FILE_DECL_EXPORT CIWorkFile
{
private:
CIWorkFile_Private* m_internal;
public:
CIWorkFile();
~CIWorkFile();
IWorkFileType GetType(const std::wstring& sFile) const;
int Convert2Odf(const std::wstring& sFile, const std::wstring& sOutputFile) const;
void SetTmpDirectory(const std::wstring& sFolder);
};
#endif // _IWORKFILE_IWORKFILE_H

View File

@ -1,46 +0,0 @@
QT -= core
QT -= gui
VERSION = 0.0.0.1
TARGET = IWorkFile
TEMPLATE = lib
CONFIG += shared
CONFIG += plugin
DEFINES += IWORK_USE_DYNAMIC_LIBRARY
CORE_ROOT_DIR = $$PWD/..
PWD_ROOT_DIR = $$PWD
include($$CORE_ROOT_DIR/Common/base.pri)
ADD_DEPENDENCY(kernel, UnicodeConverter)
INCLUDEPATH += \
$$PWD
core_android:DEFINES += NOT_USE_PTHREAD_CANCEL USE_FILE32API
# BOOST
CONFIG += core_boost_regex
include($$CORE_ROOT_DIR/Common/3dParty/boost/boost.pri)
# ZLIB
CONFIG += build_all_zlib build_zlib_as_sources
include($$PWD/../OfficeUtils/OfficeUtils.pri)
# LIBXML
CONFIG += core_static_link_xml_full
CONFIG += core_only_libxml
include($$PWD/../DesktopEditor/xml/build/qt/libxml2.pri)
#
include($$CORE_ROOT_DIR/Common/3dParty/apple/apple.pri)
# TEST
HEADERS += $$ODF_LIB_ROOT/test/StringDocumentHandler.h
SOURCES += $$ODF_LIB_ROOT/test/StringDocumentHandler.cxx
SOURCES += IWork.cpp
HEADERS += IWork.h

View File

@ -1,45 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2023
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "../IWork.h"
#include "../../DesktopEditor/common/File.h"
int main(int argc, char *argv[])
{
CIWorkFile oFile;
std::wstring sExamplesDir = NSFile::GetProcessDirectory() + L"/../examples";
oFile.Convert2Odf(sExamplesDir + L"/new.pages", sExamplesDir + L"/out_new.odt");
oFile.Convert2Odf(sExamplesDir + L"/old.pages", sExamplesDir + L"/out_old.odt");
return 0;
}

View File

@ -1,20 +0,0 @@
CONFIG -= qt
QT -= core gui
TARGET = test
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
CORE_ROOT_DIR = $$PWD/../..
PWD_ROOT_DIR = $$PWD
include($$CORE_ROOT_DIR/Common/base.pri)
ADD_DEPENDENCY(UnicodeConverter, kernel, IWorkFile)
core_linux:include($$PWD/../../Common/3dParty/icu/icu.pri)
core_windows:LIBS += -lgdi32 -ladvapi32 -luser32 -lshell32
SOURCES += main.cpp
DESTDIR = $$PWD/build

1
Common/.gitignore vendored
View File

@ -1 +0,0 @@
**/module.version

View File

@ -1,8 +0,0 @@
# Ignore everything in this directory
glm
mdds
librevenge
libodfgen
libetonyek
# Except this file
!.gitignore

View File

@ -1,36 +0,0 @@
INCLUDEPATH += $$PWD
# LIBREVENGE
REVENGE_LIB_ROOT = $$PWD/librevenge
INCLUDEPATH += \
$$REVENGE_LIB_ROOT/inc
HEADERS += $$files($$REVENGE_LIB_ROOT/inc/*.h, true)
HEADERS += $$files($$REVENGE_LIB_ROOT/src/lib/*.h, true)
SOURCES += $$files($$REVENGE_LIB_ROOT/src/lib/*.cpp, true)
# LIBODFGEN
ODF_LIB_ROOT = $$PWD/libodfgen
INCLUDEPATH += \
$$ODF_LIB_ROOT/inc
HEADERS += $$files($$ODF_LIB_ROOT/inc/libodfgen/*.hxx, true)
HEADERS += $$files($$ODF_LIB_ROOT/src/*.hxx, true)
SOURCES += $$files($$ODF_LIB_ROOT/src/*.cxx, true)
# LIBETONYEK
ETONYEK_LIB_ROOT = $$PWD/libetonyek
INCLUDEPATH += \
$$ETONYEK_LIB_ROOT/inc \
$$ETONYEK_LIB_ROOT/src/lib \
$$ETONYEK_LIB_ROOT/src/lib/contexts \
$$PWD/mdds/include \
$$PWD/glm
HEADERS += $$files($$ETONYEK_LIB_ROOT/inc/libetonyek/*.h, true)
HEADERS += $$files($$ETONYEK_LIB_ROOT/src/lib/*.h, true)
SOURCES += $$files($$ETONYEK_LIB_ROOT/src/lib/*.cpp, true)

View File

@ -1,122 +0,0 @@
import sys
sys.path.append('../../../../build_tools/scripts')
import base
import os
if not base.is_dir("glm"):
base.cmd("git", ["clone", "https://github.com/g-truc/glm.git"])
base.cmd_in_dir("glm", "git", ["checkout", "33b4a621a697a305bc3a7610d290677b96beb181", "--quiet"])
base.replaceInFile("./glm/glm/detail/func_common.inl", "vec<L, T, Q> v;", "vec<L, T, Q> v{};")
if not base.is_dir("mdds"):
base.cmd("git", ["clone", "https://github.com/kohei-us/mdds.git"])
base.cmd_in_dir("mdds", "git", ["checkout", "0783158939c6ce4b0b1b89e345ab983ccb0f0ad0"], "--quiet")
fix_cpp_version = "#if __cplusplus < 201703L\n"
fix_cpp_version += "#ifndef _MSC_VER\n"
fix_cpp_version += "namespace std {\n"
fix_cpp_version += " template<bool __v>\n"
fix_cpp_version += " using bool_constant = integral_constant<bool, __v>;\n\n"
fix_cpp_version += " template <class... _Types>\n"
fix_cpp_version += " using void_t = void;\n"
fix_cpp_version += "}\n#endif\n"
fix_cpp_version += "#endif\n\n"
fix_cpp_version += "namespace mdds {"
base.replaceInFile("./mdds/include/mdds/global.hpp", "namespace mdds {", fix_cpp_version)
if not base.is_dir("librevenge"):
base.cmd("git", ["clone", "https://github.com/Distrotech/librevenge.git"])
base.cmd_in_dir("librevenge", "git", ["checkout", "becd044b519ab83893ad6398e3cbb499a7f0aaf4", "--quiet"])
stat_windows = ""
stat_windows += "#if !defined(S_ISREG) && defined(S_IFMT) && defined(S_IFREG)\n"
stat_windows += "#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)\n"
stat_windows += "#endif\n"
stat_windows += "#if !defined(S_ISDIR) && defined(S_IFMT) && defined(S_IFDIR)\n"
stat_windows += "#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)\n"
stat_windows += "#endif\n"
base.replaceInFile("./librevenge/src/lib/RVNGDirectoryStream.cpp", "#include <librevenge-stream/librevenge-stream.h>",
"#include <librevenge-stream/librevenge-stream.h>\n\n" + stat_windows)
fix_RVNG_H = "explicit RVNGFileStream(const char *filename);\n"
fix_RVNG_H += " #if defined(_WIN32) || defined(_WIN64)\n"
fix_RVNG_H += " explicit RVNGFileStream(const wchar_t *filename);\n"
fix_RVNG_H += " #endif\n"
base.replaceInFile("./librevenge/inc/librevenge-stream/RVNGStreamImplementation.h", "explicit RVNGFileStream(const char *filename);", fix_RVNG_H)
fix_RVNG_CPP_include = "#if defined(_WIN32) || defined(_WIN64)\n"
fix_RVNG_CPP_include += "#include <sys/stat.h>\n\n"
fix_RVNG_CPP_include += "static __inline int wstat(wchar_t const* const _FileName, struct stat* const _Stat)\n"
fix_RVNG_CPP_include += "{\n"
fix_RVNG_CPP_include += " _STATIC_ASSERT(sizeof(struct stat) == sizeof(struct _stat64i32));\n";
fix_RVNG_CPP_include += " return _wstat64i32(_FileName, (struct _stat64i32*)_Stat);\n";
fix_RVNG_CPP_include += "}\n"
fix_RVNG_CPP_include += "#endif\n\n"
fix_RVNG_CPP_include += "namespace librevenge"
base.replaceInFile("./librevenge/src/lib/RVNGStreamImplementation.cpp", "namespace librevenge", fix_RVNG_CPP_include)
fix_RVNG_CPP = "#if defined(_WIN32) || defined(_WIN64)\n"
fix_RVNG_CPP += "RVNGFileStream::RVNGFileStream(const wchar_t *filename) :\n"
fix_RVNG_CPP += " RVNGInputStream(),\n"
fix_RVNG_CPP += " d(new RVNGFileStreamPrivate())\n"
fix_RVNG_CPP += "{\n"
fix_RVNG_CPP += " d->file = _wfopen(filename, L\"rb\");\n"
fix_RVNG_CPP += " if (!d->file || ferror(d->file))\n"
fix_RVNG_CPP += " {\n"
fix_RVNG_CPP += " delete d;\n"
fix_RVNG_CPP += " d = 0;\n"
fix_RVNG_CPP += " return;\n"
fix_RVNG_CPP += " }\n\n"
fix_RVNG_CPP += " struct stat status;\n"
fix_RVNG_CPP += " const int retval = wstat(filename, &status);\n"
fix_RVNG_CPP += " if ((0 != retval) || !S_ISREG(status.st_mode))\n"
fix_RVNG_CPP += " {\n"
fix_RVNG_CPP += " delete d;\n"
fix_RVNG_CPP += " d = 0;\n"
fix_RVNG_CPP += " return;\n"
fix_RVNG_CPP += " }\n\n"
fix_RVNG_CPP += " fseek(d->file, 0, SEEK_END);\n\n"
fix_RVNG_CPP += " d->streamSize = (unsigned long) ftell(d->file);\n"
fix_RVNG_CPP += " if (d->streamSize == (unsigned long)-1)\n"
fix_RVNG_CPP += " d->streamSize = 0;\n"
fix_RVNG_CPP += " if (d->streamSize > (std::numeric_limits<unsigned long>::max)() / 2)\n"
fix_RVNG_CPP += " d->streamSize = (std::numeric_limits<unsigned long>::max)() / 2;\n"
fix_RVNG_CPP += " fseek(d->file, 0, SEEK_SET);\n"
fix_RVNG_CPP += "}\n"
fix_RVNG_CPP += "#endif\n\n"
fix_RVNG_CPP += "RVNGFileStream::~RVNGFileStream()"
base.replaceInFile("./librevenge/src/lib/RVNGStreamImplementation.cpp", "RVNGFileStream::~RVNGFileStream()", fix_RVNG_CPP)
if not base.is_dir("libodfgen"):
base.cmd("git", ["clone", "https://github.com/Distrotech/libodfgen.git"])
base.cmd_in_dir("libodfgen", "git", ["checkout", "8ef8c171ebe3c5daebdce80ee422cf7bb96aa3bc", "--quiet"])
if not base.is_dir("libetonyek"):
base.cmd("git", ["clone", "https://github.com/LibreOffice/libetonyek.git"])
base.cmd_in_dir("libetonyek", "git", ["checkout", "cb396b4a9453a457469b62a740d8fb933c9442c3", "--quiet"])
base.replaceInFile("./libetonyek/src/lib/IWORKTable.cpp", "is_tree_valid", "valid_tree")
cmd_args = sys.argv[1:]
use_gperf = False
for arg in cmd_args:
if '--gperf' == arg:
use_gperf = True
if use_gperf:
base_gperf_args = ["--compare-strncmp", "--enum", "--null-strings", "--readonly-tables", "--language", "C++"]
base_gperf_files = ["IWORKToken.gperf", "KEY1Token.gperf", "KEY2Token.gperf", "NUM1Token.gperf", "PAG1Token.gperf"]
for file in base_gperf_files:
base.cmd_in_dir("./libetonyek/src/lib", "gperf", base_gperf_args + [file, "--output-file", file[0:file.find(".")] + ".inc"])
else:
base.copy_dir_content("./headers", "./libetonyek/src/lib")

File diff suppressed because it is too large Load Diff

View File

@ -1,727 +0,0 @@
/* C++ code produced by gperf version 3.0.1 */
/* Command-line: gperf --compare-strncmp --enum --null-strings --readonly-tables --language C++ --output-file KEY1Token.inc KEY1Token.gperf */
/* Computed positions: -k'1,3,6,9,14,$' */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
#endif
#line 10 "KEY1Token.gperf"
#if defined __GNUC__
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
using namespace KEY1Token;
#line 18 "KEY1Token.gperf"
struct Token
{
const char *name;
int id;
};
#include <string.h>
/* maximum key range = 602, duplicates = 0 */
class Perfect_Hash
{
private:
static inline unsigned int hash (const char *str, unsigned int len);
public:
static const struct Token *in_word_set (const char *str, unsigned int len);
};
inline unsigned int
Perfect_Hash::hash (register const char *str, register unsigned int len)
{
static const unsigned short asso_values[] =
{
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 220, 612, 0, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 0, 0, 0, 0,
0, 0, 10, 612, 612, 612, 0, 612, 30, 15,
55, 612, 5, 60, 5, 612, 10, 612, 612, 612,
612, 612, 612, 612, 612, 0, 612, 20, 165, 115,
65, 0, 105, 135, 175, 60, 0, 0, 30, 145,
10, 5, 155, 10, 5, 30, 5, 200, 15, 20,
0, 190, 0, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
612, 612, 612, 612, 612, 612
};
register int hval = len;
switch (hval)
{
default:
hval += asso_values[(unsigned char)str[13]];
/*FALLTHROUGH*/
case 13:
case 12:
case 11:
case 10:
case 9:
hval += asso_values[(unsigned char)str[8]];
/*FALLTHROUGH*/
case 8:
case 7:
case 6:
hval += asso_values[(unsigned char)str[5]];
/*FALLTHROUGH*/
case 5:
case 4:
case 3:
hval += asso_values[(unsigned char)str[2]];
/*FALLTHROUGH*/
case 2:
case 1:
hval += asso_values[(unsigned char)str[0]];
break;
}
return hval + asso_values[(unsigned char)str[len - 1]];
}
const struct Token *
Perfect_Hash::in_word_set (register const char *str, register unsigned int len)
{
enum
{
TOTAL_KEYWORDS = 203,
MIN_WORD_LENGTH = 1,
MAX_WORD_LENGTH = 39,
MIN_HASH_VALUE = 10,
MAX_HASH_VALUE = 611
};
static const struct Token wordlist[] =
{
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
#line 199 "KEY1Token.gperf"
{"theme",theme},
{(char*)0},
#line 211 "KEY1Token.gperf"
{"tr",tr},
{(char*)0},
#line 196 "KEY1Token.gperf"
{"text",text},
#line 207 "KEY1Token.gperf"
{"title",title},
{(char*)0},
#line 198 "KEY1Token.gperf"
{"textbox",textbox},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 65 "KEY1Token.gperf"
{"element",element},
{(char*)0},
#line 132 "KEY1Token.gperf"
{"none",none},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
#line 175 "KEY1Token.gperf"
{"size",size},
{(char*)0}, {(char*)0},
#line 209 "KEY1Token.gperf"
{"tl",tl},
{(char*)0},
#line 206 "KEY1Token.gperf"
{"tile",tile},
#line 168 "KEY1Token.gperf"
{"serie",serie},
{(char*)0},
#line 221 "KEY1Token.gperf"
{"version",version},
{(char*)0},
#line 112 "KEY1Token.gperf"
{"line",line},
{(char*)0}, {(char*)0}, {(char*)0},
#line 174 "KEY1Token.gperf"
{"showZero",showZero},
{(char*)0},
#line 133 "KEY1Token.gperf"
{"notes",notes},
{(char*)0},
#line 188 "KEY1Token.gperf"
{"stroke-style",stroke_style},
{(char*)0},
#line 32 "KEY1Token.gperf"
{"axes",axes},
#line 172 "KEY1Token.gperf"
{"shape",shape},
{(char*)0},
#line 187 "KEY1Token.gperf"
{"stroke-color",stroke_color},
#line 166 "KEY1Token.gperf"
{"sequence",sequence},
{(char*)0},
#line 183 "KEY1Token.gperf"
{"start",start},
{(char*)0}, {(char*)0}, {(char*)0},
#line 182 "KEY1Token.gperf"
{"span",span},
#line 185 "KEY1Token.gperf"
{"steps",steps},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 93 "KEY1Token.gperf"
{"ident",ident},
{(char*)0}, {(char*)0}, {(char*)0},
#line 134 "KEY1Token.gperf"
{"null",null},
#line 197 "KEY1Token.gperf"
{"text-attributes",text_attributes},
{(char*)0},
#line 130 "KEY1Token.gperf"
{"natural-size",natural_size},
{(char*)0},
#line 131 "KEY1Token.gperf"
{"node",node},
#line 111 "KEY1Token.gperf"
{"level",level},
{(char*)0},
#line 225 "KEY1Token.gperf"
{"visible",visible},
{(char*)0}, {(char*)0},
#line 95 "KEY1Token.gperf"
{"image",image},
{(char*)0},
#line 171 "KEY1Token.gperf"
{"shadow-style",shadow_style},
{(char*)0},
#line 67 "KEY1Token.gperf"
{"end-color",end_color},
{(char*)0}, {(char*)0},
#line 208 "KEY1Token.gperf"
{"titleVisible",titleVisible},
#line 212 "KEY1Token.gperf"
{"tracks-master",tracks_master},
#line 53 "KEY1Token.gperf"
{"data",data},
#line 177 "KEY1Token.gperf"
{"slide",slide},
{(char*)0}, {(char*)0},
#line 62 "KEY1Token.gperf"
{"div",div},
#line 195 "KEY1Token.gperf"
{"tail",tail},
#line 170 "KEY1Token.gperf"
{"seriesDirection",seriesDirection},
#line 169 "KEY1Token.gperf"
{"series",series},
{(char*)0},
#line 162 "KEY1Token.gperf"
{"relative",relative},
#line 60 "KEY1Token.gperf"
{"direction",direction},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 27 "KEY1Token.gperf"
{"altLineVisible",altLineVisible},
{(char*)0}, {(char*)0}, {(char*)0},
#line 173 "KEY1Token.gperf"
{"showGrid",showGrid},
#line 33 "KEY1Token.gperf"
{"axis",axis},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 161 "KEY1Token.gperf"
{"reference",reference},
#line 114 "KEY1Token.gperf"
{"line-tail-style",line_tail_style},
{(char*)0}, {(char*)0}, {(char*)0},
#line 73 "KEY1Token.gperf"
{"font",font},
{(char*)0},
#line 137 "KEY1Token.gperf"
{"offset",offset},
#line 92 "KEY1Token.gperf"
{"id",id},
{(char*)0},
#line 160 "KEY1Token.gperf"
{"rect",rect},
#line 180 "KEY1Token.gperf"
{"solid",solid},
{(char*)0}, {(char*)0},
#line 66 "KEY1Token.gperf"
{"end",end},
#line 77 "KEY1Token.gperf"
{"font-name",font_name},
{(char*)0},
#line 159 "KEY1Token.gperf"
{"radius",radius},
#line 61 "KEY1Token.gperf"
{"display-name",display_name},
{(char*)0},
#line 68 "KEY1Token.gperf"
{"file",file},
{(char*)0},
#line 45 "KEY1Token.gperf"
{"center",center},
{(char*)0}, {(char*)0},
#line 109 "KEY1Token.gperf"
{"left",left},
{(char*)0}, {(char*)0},
#line 51 "KEY1Token.gperf"
{"content",content},
#line 64 "KEY1Token.gperf"
{"duration",duration},
#line 71 "KEY1Token.gperf"
{"fill-type",fill_type},
#line 163 "KEY1Token.gperf"
{"right",right},
#line 139 "KEY1Token.gperf"
{"orientation",orientation},
{(char*)0}, {(char*)0},
#line 78 "KEY1Token.gperf"
{"font-size",font_size},
#line 50 "KEY1Token.gperf"
{"color",color},
{(char*)0}, {(char*)0}, {(char*)0},
#line 129 "KEY1Token.gperf"
{"name",name},
#line 28 "KEY1Token.gperf"
{"angle",angle},
{(char*)0}, {(char*)0}, {(char*)0},
#line 215 "KEY1Token.gperf"
{"type",type},
#line 52 "KEY1Token.gperf"
{"dash-style",dash_style},
{(char*)0}, {(char*)0},
#line 82 "KEY1Token.gperf"
{"gradient",gradient},
#line 56 "KEY1Token.gperf"
{"dataFormatterPrefix",dataFormatterPrefix},
#line 54 "KEY1Token.gperf"
{"dataFormatterHasThousandsSeparators",dataFormatterHasThousandsSeparators},
#line 135 "KEY1Token.gperf"
{"number",number},
#line 38 "KEY1Token.gperf"
{"br",br},
#line 222 "KEY1Token.gperf"
{"vertical",vertical},
#line 57 "KEY1Token.gperf"
{"dataFormatterSuffix",dataFormatterSuffix},
#line 193 "KEY1Token.gperf"
{"table",table},
{(char*)0}, {(char*)0}, {(char*)0},
#line 24 "KEY1Token.gperf"
{"DefaultLegendRelativePosition",DefaultLegendRelativePosition},
{(char*)0}, {(char*)0},
#line 146 "KEY1Token.gperf"
{"pattern",pattern},
{(char*)0},
#line 55 "KEY1Token.gperf"
{"dataFormatterNumberOfDecimals",dataFormatterNumberOfDecimals},
{(char*)0}, {(char*)0},
#line 165 "KEY1Token.gperf"
{"segment",segment},
{(char*)0},
#line 59 "KEY1Token.gperf"
{"dict",dict},
{(char*)0}, {(char*)0},
#line 153 "KEY1Token.gperf"
{"presentation",presentation},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 35 "KEY1Token.gperf"
{"bl",bl},
#line 126 "KEY1Token.gperf"
{"metadata",metadata},
{(char*)0},
#line 86 "KEY1Token.gperf"
{"guide",guide},
{(char*)0},
#line 181 "KEY1Token.gperf"
{"spacing",spacing},
#line 120 "KEY1Token.gperf"
{"majorTickPositions",majorTickPositions},
{(char*)0},
#line 70 "KEY1Token.gperf"
{"fill-style",fill_style},
{(char*)0},
#line 118 "KEY1Token.gperf"
{"lock-aspect-ratio",lock_aspect_ratio},
{(char*)0},
#line 44 "KEY1Token.gperf"
{"byte-size",byte_size},
{(char*)0},
#line 40 "KEY1Token.gperf"
{"bullet",bullet},
#line 25 "KEY1Token.gperf"
{"DefaultLegendSize",DefaultLegendSize},
#line 128 "KEY1Token.gperf"
{"minorTickPositions",minorTickPositions},
{(char*)0},
#line 202 "KEY1Token.gperf"
{"tickLabelsAngle",tickLabelsAngle},
#line 127 "KEY1Token.gperf"
{"middle",middle},
{(char*)0},
#line 152 "KEY1Token.gperf"
{"pos",pos},
#line 155 "KEY1Token.gperf"
{"prototype-data",prototype_data},
#line 31 "KEY1Token.gperf"
{"array",array},
{(char*)0},
#line 122 "KEY1Token.gperf"
{"master-slide",master_slide},
#line 117 "KEY1Token.gperf"
{"location",location},
#line 176 "KEY1Token.gperf"
{"size-technique",size_technique},
{(char*)0},
#line 79 "KEY1Token.gperf"
{"font-superscript",font_superscript},
#line 138 "KEY1Token.gperf"
{"opacity",opacity},
{(char*)0}, {(char*)0}, {(char*)0},
#line 100 "KEY1Token.gperf"
{"interBarGap",interBarGap},
{(char*)0}, {(char*)0},
#line 156 "KEY1Token.gperf"
{"prototype-drawables",prototype_drawables},
{(char*)0},
#line 58 "KEY1Token.gperf"
{"description",description},
#line 43 "KEY1Token.gperf"
{"bullets",bullets},
{(char*)0},
#line 76 "KEY1Token.gperf"
{"font-ligatures",font_ligatures},
{(char*)0},
#line 191 "KEY1Token.gperf"
{"symbol",symbol},
#line 154 "KEY1Token.gperf"
{"prototype-bullets",prototype_bullets},
{(char*)0},
#line 194 "KEY1Token.gperf"
{"tab-stops",tab_stops},
#line 90 "KEY1Token.gperf"
{"horizontal",horizontal},
{(char*)0},
#line 204 "KEY1Token.gperf"
{"tickLabelsVisible",tickLabelsVisible},
{(char*)0},
#line 192 "KEY1Token.gperf"
{"symbolFillMode",symbolFillMode},
#line 74 "KEY1Token.gperf"
{"font-color",font_color},
{(char*)0}, {(char*)0},
#line 124 "KEY1Token.gperf"
{"master-slides",master_slides},
#line 147 "KEY1Token.gperf"
{"pieSliceOffset",pieSliceOffset},
{(char*)0}, {(char*)0}, {(char*)0},
#line 42 "KEY1Token.gperf"
{"bullet-indentation",bullet_indentation},
{(char*)0}, {(char*)0},
#line 87 "KEY1Token.gperf"
{"guides",guides},
{(char*)0}, {(char*)0},
#line 88 "KEY1Token.gperf"
{"head",head},
#line 226 "KEY1Token.gperf"
{"width",width},
#line 89 "KEY1Token.gperf"
{"hidden",hidden},
{(char*)0}, {(char*)0},
#line 46 "KEY1Token.gperf"
{"character",character},
#line 69 "KEY1Token.gperf"
{"fill-color",fill_color},
#line 81 "KEY1Token.gperf"
{"g",g},
#line 75 "KEY1Token.gperf"
{"font-kerning",font_kerning},
{(char*)0},
#line 103 "KEY1Token.gperf"
{"justified",justified},
{(char*)0},
#line 116 "KEY1Token.gperf"
{"lineVisible",lineVisible},
#line 107 "KEY1Token.gperf"
{"labelVisible",labelVisible},
{(char*)0}, {(char*)0}, {(char*)0},
#line 119 "KEY1Token.gperf"
{"locked",locked},
#line 189 "KEY1Token.gperf"
{"stroke-width",stroke_width},
{(char*)0},
#line 200 "KEY1Token.gperf"
{"thumbnail",thumbnail},
#line 201 "KEY1Token.gperf"
{"thumbnails",thumbnails},
#line 190 "KEY1Token.gperf"
{"styles",styles},
{(char*)0}, {(char*)0},
#line 136 "KEY1Token.gperf"
{"numberOfPoints",numberOfPoints},
#line 49 "KEY1Token.gperf"
{"chartFrame",chartFrame},
#line 167 "KEY1Token.gperf"
{"sequence-bullet-style",sequence_bullet_style},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 214 "KEY1Token.gperf"
{"transition-style",transition_style},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 110 "KEY1Token.gperf"
{"legend",legend},
#line 148 "KEY1Token.gperf"
{"pieSlicePercentVisible",pieSlicePercentVisible},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 47 "KEY1Token.gperf"
{"character-bullet-style",character_bullet_style},
{(char*)0},
#line 213 "KEY1Token.gperf"
{"transformation",transformation},
#line 224 "KEY1Token.gperf"
{"visibility",visibility},
#line 186 "KEY1Token.gperf"
{"string",string},
{(char*)0},
#line 39 "KEY1Token.gperf"
{"buildChunkingStyle",buildChunkingStyle},
{(char*)0}, {(char*)0},
#line 184 "KEY1Token.gperf"
{"start-color",start_color},
{(char*)0},
#line 210 "KEY1Token.gperf"
{"top",top},
#line 63 "KEY1Token.gperf"
{"drawables",drawables},
#line 179 "KEY1Token.gperf"
{"slide-size",slide_size},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 113 "KEY1Token.gperf"
{"line-head-style",line_head_style},
#line 157 "KEY1Token.gperf"
{"prototype-plugin",prototype_plugin},
{(char*)0}, {(char*)0},
#line 80 "KEY1Token.gperf"
{"font-underline",font_underline},
{(char*)0},
#line 97 "KEY1Token.gperf"
{"image-scale",image_scale},
{(char*)0},
#line 106 "KEY1Token.gperf"
{"labelPosition",labelPosition},
{(char*)0},
#line 96 "KEY1Token.gperf"
{"image-data",image_data},
{(char*)0}, {(char*)0}, {(char*)0},
#line 145 "KEY1Token.gperf"
{"path",path},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
#line 34 "KEY1Token.gperf"
{"background-fill-style",background_fill_style},
#line 158 "KEY1Token.gperf"
{"prototype-plugins",prototype_plugins},
{(char*)0}, {(char*)0},
#line 123 "KEY1Token.gperf"
{"master-slide-id",master_slide_id},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 178 "KEY1Token.gperf"
{"slide-list",slide_list},
#line 121 "KEY1Token.gperf"
{"marker-type",marker_type},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
#line 91 "KEY1Token.gperf"
{"http://developer.apple.com/schemas/APXL",NS_URI_KEY},
{(char*)0}, {(char*)0}, {(char*)0},
#line 98 "KEY1Token.gperf"
{"image-bullet-style",image_bullet_style},
#line 30 "KEY1Token.gperf"
{"application-version",application_version},
{(char*)0},
#line 149 "KEY1Token.gperf"
{"plugin",plugin},
#line 151 "KEY1Token.gperf"
{"point_at_top",point_at_top},
#line 104 "KEY1Token.gperf"
{"key",key},
{(char*)0}, {(char*)0},
#line 29 "KEY1Token.gperf"
{"application-name",application_name},
{(char*)0},
#line 223 "KEY1Token.gperf"
{"vertical-alignment",vertical_alignment},
#line 83 "KEY1Token.gperf"
{"gradient-angle",gradient_angle},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
#line 144 "KEY1Token.gperf"
{"paragraph-tail-indent",paragraph_tail_indent},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
#line 142 "KEY1Token.gperf"
{"paragraph-first-line-indent",paragraph_first_line_indent},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 72 "KEY1Token.gperf"
{"floating-content",floating_content},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 150 "KEY1Token.gperf"
{"plugin-data",plugin_data},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
#line 36 "KEY1Token.gperf"
{"body",body},
{(char*)0}, {(char*)0},
#line 41 "KEY1Token.gperf"
{"bullet-characters",bullet_characters},
{(char*)0}, {(char*)0}, {(char*)0},
#line 143 "KEY1Token.gperf"
{"paragraph-head-indent",paragraph_head_indent},
{(char*)0}, {(char*)0},
#line 99 "KEY1Token.gperf"
{"inherited",inherited},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
#line 125 "KEY1Token.gperf"
{"match-point",match_point},
{(char*)0},
#line 216 "KEY1Token.gperf"
{"ui-state",ui_state},
#line 102 "KEY1Token.gperf"
{"is-filled",is_filled},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
#line 115 "KEY1Token.gperf"
{"lineOpacity",lineOpacity},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
#line 37 "KEY1Token.gperf"
{"bottom",bottom},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
#line 140 "KEY1Token.gperf"
{"page-number",page_number},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 205 "KEY1Token.gperf"
{"time-stamp",time_stamp},
{(char*)0},
#line 203 "KEY1Token.gperf"
{"tickLabelsOpacity",tickLabelsOpacity},
{(char*)0}, {(char*)0}, {(char*)0},
#line 94 "KEY1Token.gperf"
{"id-ref",id_ref},
{(char*)0}, {(char*)0},
#line 141 "KEY1Token.gperf"
{"paragraph-alignment",paragraph_alignment},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
#line 164 "KEY1Token.gperf"
{"scale-to-fit",scale_to_fit},
{(char*)0},
#line 101 "KEY1Token.gperf"
{"interSeriesGap",interSeriesGap},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
#line 219 "KEY1Token.gperf"
{"userMaximum",userMaximum},
{(char*)0}, {(char*)0},
#line 217 "KEY1Token.gperf"
{"useUserMaximum",useUserMaximum},
#line 108 "KEY1Token.gperf"
{"layerElementsForShadowing",layerElementsForShadowing},
{(char*)0},
#line 105 "KEY1Token.gperf"
{"labelOpacity",labelOpacity},
{(char*)0}, {(char*)0},
#line 48 "KEY1Token.gperf"
{"chart-prototype",chart_prototype},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
#line 220 "KEY1Token.gperf"
{"userMinimum",userMinimum},
{(char*)0}, {(char*)0},
#line 218 "KEY1Token.gperf"
{"useUserMinimum",useUserMinimum},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
#line 26 "KEY1Token.gperf"
{"altLineOpacity",altLineOpacity},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0},
#line 85 "KEY1Token.gperf"
{"grow-horizontally",grow_horizontally},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 84 "KEY1Token.gperf"
{"gridOpacity",gridOpacity}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
register int key = hash (str, len);
if (key <= MAX_HASH_VALUE && key >= 0)
{
register const char *s = wordlist[key].name;
if (s && *str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
return &wordlist[key];
}
}
return 0;
}
#line 227 "KEY1Token.gperf"

View File

@ -1,300 +0,0 @@
/* C++ code produced by gperf version 3.0.1 */
/* Command-line: gperf --compare-strncmp --enum --null-strings --readonly-tables --language C++ --output-file KEY2Token.inc KEY2Token.gperf */
/* Computed positions: -k'1,4,$' */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
#endif
#line 10 "KEY2Token.gperf"
#if defined __GNUC__
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
using namespace KEY2Token;
#line 18 "KEY2Token.gperf"
struct Token
{
const char *name;
int id;
};
#include <string.h>
/* maximum key range = 140, duplicates = 0 */
class Perfect_Hash
{
private:
static inline unsigned int hash (const char *str, unsigned int len);
public:
static const struct Token *in_word_set (const char *str, unsigned int len);
};
inline unsigned int
Perfect_Hash::hash (register const char *str, register unsigned int len)
{
static const unsigned char asso_values[] =
{
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 5, 65,
0, 141, 35, 0, 141, 5, 141, 0, 141, 141,
141, 141, 141, 141, 141, 141, 0, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 0, 25, 0,
15, 0, 55, 10, 10, 5, 141, 15, 20, 0,
10, 25, 40, 141, 25, 25, 5, 0, 30, 5,
141, 40, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 141, 141
};
register int hval = len;
switch (hval)
{
default:
hval += asso_values[(unsigned char)str[3]];
/*FALLTHROUGH*/
case 3:
case 2:
case 1:
hval += asso_values[(unsigned char)str[0]];
break;
}
return hval + asso_values[(unsigned char)str[len - 1]];
}
const struct Token *
Perfect_Hash::in_word_set (register const char *str, register unsigned int len)
{
enum
{
TOTAL_KEYWORDS = 67,
MIN_WORD_LENGTH = 1,
MAX_WORD_LENGTH = 46,
MIN_HASH_VALUE = 1,
MAX_HASH_VALUE = 140
};
static const struct Token wordlist[] =
{
{(char*)0},
#line 49 "KEY2Token.gperf"
{"c",c},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0},
#line 65 "KEY2Token.gperf"
{"metadata",metadata},
#line 89 "KEY2Token.gperf"
{"type",type},
#line 84 "KEY2Token.gperf"
{"theme",theme},
#line 58 "KEY2Token.gperf"
{"i",i},
#line 50 "KEY2Token.gperf"
{"comment",comment},
#line 41 "KEY2Token.gperf"
{"animationType",animationType},
#line 66 "KEY2Token.gperf"
{"name",name},
#line 26 "KEY2Token.gperf"
{"2005112100",VERSION_STR_3},
{(char*)0},
#line 62 "KEY2Token.gperf"
{"master-slide",master_slide},
{(char*)0},
#line 83 "KEY2Token.gperf"
{"text",text},
#line 85 "KEY2Token.gperf"
{"theme-list",theme_list},
#line 28 "KEY2Token.gperf"
{"92008102400",VERSION_STR_5},
{(char*)0},
#line 36 "KEY2Token.gperf"
{"animationEndOffset",animationEndOffset},
{(char*)0},
#line 39 "KEY2Token.gperf"
{"animationStartOffset",animationStartOffset},
#line 27 "KEY2Token.gperf"
{"72007061400",VERSION_STR_4},
#line 35 "KEY2Token.gperf"
{"animationDuration",animationDuration},
#line 40 "KEY2Token.gperf"
{"animationTimingReferent",animationTimingReferent},
#line 73 "KEY2Token.gperf"
{"size",size},
#line 86 "KEY2Token.gperf"
{"title",title},
{(char*)0}, {(char*)0},
#line 55 "KEY2Token.gperf"
{"headline",headline},
#line 53 "KEY2Token.gperf"
{"direction",direction},
#line 52 "KEY2Token.gperf"
{"depth",depth},
#line 78 "KEY2Token.gperf"
{"sticky-note",sticky_note},
#line 34 "KEY2Token.gperf"
{"animationDelayAutomaticWith",animationDelayAutomaticWith},
#line 30 "KEY2Token.gperf"
{"animationAuto",animationAuto},
{(char*)0},
#line 67 "KEY2Token.gperf"
{"notes",notes},
#line 54 "KEY2Token.gperf"
{"events",events},
#line 42 "KEY2Token.gperf"
{"authors",authors},
#line 63 "KEY2Token.gperf"
{"master-slides",master_slides},
#line 70 "KEY2Token.gperf"
{"page",page},
#line 74 "KEY2Token.gperf"
{"slide",slide},
#line 80 "KEY2Token.gperf"
{"string",string},
#line 56 "KEY2Token.gperf"
{"headlineParagraphStyle",headlineParagraphStyle},
#line 37 "KEY2Token.gperf"
{"animationInterchunkAuto",animationInterchunkAuto},
{(char*)0},
#line 24 "KEY2Token.gperf"
{"2004102100",VERSION_STR_2},
#line 77 "KEY2Token.gperf"
{"slide-style",slide_style},
#line 33 "KEY2Token.gperf"
{"animationDelayAutmaticAfter",animationDelayAutomaticAfter},
#line 61 "KEY2Token.gperf"
{"keywords",keywords},
#line 32 "KEY2Token.gperf"
{"animationDelay",animationDelay},
#line 75 "KEY2Token.gperf"
{"slide-list",slide_list},
{(char*)0},
#line 31 "KEY2Token.gperf"
{"animationAutoPlay",animationAutoPlay},
#line 60 "KEY2Token.gperf"
{"key",key},
#line 51 "KEY2Token.gperf"
{"decimal-number",number},
#line 82 "KEY2Token.gperf"
{"stylesheet",stylesheet},
{(char*)0},
#line 79 "KEY2Token.gperf"
{"sticky-notes",sticky_notes},
#line 29 "KEY2Token.gperf"
{"BGBuildDurationProperty",BGBuildDurationProperty},
#line 38 "KEY2Token.gperf"
{"animationInterchunkDelay",animationInterchunkDelay},
#line 45 "KEY2Token.gperf"
{"build",build},
#line 68 "KEY2Token.gperf"
{"number",number},
#line 87 "KEY2Token.gperf"
{"title-placeholder",title_placeholder},
#line 69 "KEY2Token.gperf"
{"object-placeholder",object_placeholder},
{(char*)0},
#line 64 "KEY2Token.gperf"
{"master-ref",master_ref},
#line 46 "KEY2Token.gperf"
{"build-chunk",build_chunk},
#line 90 "KEY2Token.gperf"
{"version",version},
{(char*)0}, {(char*)0},
#line 25 "KEY2Token.gperf"
{"2005092101",COMPATIBLE_VERSION_STR_3,},
{(char*)0},
#line 48 "KEY2Token.gperf"
{"bullets",bullets},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 47 "KEY2Token.gperf"
{"build-chunks",build_chunks},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 72 "KEY2Token.gperf"
{"presentation",presentation},
{(char*)0},
#line 76 "KEY2Token.gperf"
{"slide-number-placeholder",slide_number_placeholder},
{(char*)0}, {(char*)0}, {(char*)0},
#line 59 "KEY2Token.gperf"
{"info-ref",info_ref},
{(char*)0}, {(char*)0},
#line 57 "KEY2Token.gperf"
{"http://developer.apple.com/namespaces/keynote2",NS_URI_KEY},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 88 "KEY2Token.gperf"
{"title-placeholder-ref",title_placeholder_ref},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 43 "KEY2Token.gperf"
{"body-placeholder",body_placeholder},
{(char*)0}, {(char*)0},
#line 81 "KEY2Token.gperf"
{"style-ref",style_ref},
{(char*)0},
#line 71 "KEY2Token.gperf"
{"parent-build-ref",parent_build_ref},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 44 "KEY2Token.gperf"
{"body-placeholder-ref",body_placeholder_ref}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
register int key = hash (str, len);
if (key <= MAX_HASH_VALUE && key >= 0)
{
register const char *s = wordlist[key].name;
if (s && *str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
return &wordlist[key];
}
}
return 0;
}
#line 91 "KEY2Token.gperf"

View File

@ -1,151 +0,0 @@
/* C++ code produced by gperf version 3.0.1 */
/* Command-line: gperf --compare-strncmp --enum --null-strings --readonly-tables --language C++ --output-file NUM1Token.inc NUM1Token.gperf */
/* Computed positions: -k'$' */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
#endif
#line 10 "NUM1Token.gperf"
#if defined __GNUC__
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
using namespace NUM1Token;
#line 18 "NUM1Token.gperf"
struct Token
{
const char *name;
int id;
};
#include <string.h>
/* maximum key range = 34, duplicates = 0 */
class Perfect_Hash
{
private:
static inline unsigned int hash (const char *str, unsigned int len);
public:
static const struct Token *in_word_set (const char *str, unsigned int len);
};
inline unsigned int
Perfect_Hash::hash (register const char *str, register unsigned int len)
{
static const unsigned char asso_values[] =
{
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 0, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 0, 41, 41, 41, 41, 41, 41, 41, 41,
0, 10, 41, 41, 41, 0, 0, 41, 41, 41,
41, 5, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41
};
return len + asso_values[(unsigned char)str[len - 1]];
}
const struct Token *
Perfect_Hash::in_word_set (register const char *str, register unsigned int len)
{
enum
{
TOTAL_KEYWORDS = 10,
MIN_WORD_LENGTH = 7,
MAX_WORD_LENGTH = 40,
MIN_HASH_VALUE = 7,
MAX_HASH_VALUE = 40
};
static const struct Token wordlist[] =
{
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
#line 29 "NUM1Token.gperf"
{"version",version},
#line 25 "NUM1Token.gperf"
{"document",document},
#line 30 "NUM1Token.gperf"
{"workspace",workspace},
#line 28 "NUM1Token.gperf"
{"stylesheet",stylesheet},
#line 24 "NUM1Token.gperf"
{"92008102400",VERSION_STR_2},
{(char*)0}, {(char*)0},
#line 32 "NUM1Token.gperf"
{"workspace-name",workspace_name},
#line 33 "NUM1Token.gperf"
{"workspace-style",workspace_style},
{(char*)0}, {(char*)0}, {(char*)0},
#line 27 "NUM1Token.gperf"
{"page-info",page_info},
#line 31 "NUM1Token.gperf"
{"workspace-array",workspace_array},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0},
#line 26 "NUM1Token.gperf"
{"http://developer.apple.com/namespaces/ls",NS_URI_LS}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
register int key = hash (str, len);
if (key <= MAX_HASH_VALUE && key >= 0)
{
register const char *s = wordlist[key].name;
if (s && *str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
return &wordlist[key];
}
}
return 0;
}
#line 34 "NUM1Token.gperf"

View File

@ -1,209 +0,0 @@
/* C++ code produced by gperf version 3.0.1 */
/* Command-line: gperf --compare-strncmp --enum --null-strings --readonly-tables --language C++ --output-file PAG1Token.inc PAG1Token.gperf */
/* Computed positions: -k'1,6' */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
#endif
#line 10 "PAG1Token.gperf"
#if defined __GNUC__
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
using namespace PAG1Token;
#line 18 "PAG1Token.gperf"
struct Token
{
const char *name;
int id;
};
#include <string.h>
/* maximum key range = 51, duplicates = 0 */
class Perfect_Hash
{
private:
static inline unsigned int hash (const char *str, unsigned int len);
public:
static const struct Token *in_word_set (const char *str, unsigned int len);
};
inline unsigned int
Perfect_Hash::hash (register const char *str, register unsigned int len)
{
static const unsigned char asso_values[] =
{
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 25, 55, 0, 55, 10,
55, 55, 55, 55, 55, 55, 55, 10, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
5, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 5, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 5, 25, 15,
20, 0, 20, 15, 5, 55, 55, 5, 10, 55,
0, 15, 5, 55, 0, 0, 0, 55, 5, 10,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55
};
register int hval = len;
switch (hval)
{
default:
hval += asso_values[(unsigned char)str[5]];
/*FALLTHROUGH*/
case 5:
case 4:
case 3:
case 2:
case 1:
hval += asso_values[(unsigned char)str[0]];
break;
}
return hval;
}
const struct Token *
Perfect_Hash::in_word_set (register const char *str, register unsigned int len)
{
enum
{
TOTAL_KEYWORDS = 31,
MIN_WORD_LENGTH = 4,
MAX_WORD_LENGTH = 40,
MIN_HASH_VALUE = 4,
MAX_HASH_VALUE = 54
};
static const struct Token wordlist[] =
{
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 38 "PAG1Token.gperf"
{"note",note},
#line 49 "PAG1Token.gperf"
{"rpage",rpage},
#line 39 "PAG1Token.gperf"
{"number",number},
{(char*)0}, {(char*)0},
#line 41 "PAG1Token.gperf"
{"page",page},
#line 52 "PAG1Token.gperf"
{"stylesheet",stylesheet},
#line 33 "PAG1Token.gperf"
{"header",header},
#line 51 "PAG1Token.gperf"
{"slprint-info",slprint_info},
{(char*)0},
#line 47 "PAG1Token.gperf"
{"prototype",prototype},
#line 44 "PAG1Token.gperf"
{"page-scale",page_scale},
#line 37 "PAG1Token.gperf"
{"layout",layout},
{(char*)0}, {(char*)0},
#line 27 "PAG1Token.gperf"
{"cell",cell},
#line 40 "PAG1Token.gperf"
{"order",order},
#line 43 "PAG1Token.gperf"
{"page-height",page_height},
#line 53 "PAG1Token.gperf"
{"textbox",textbox},
{(char*)0},
#line 28 "PAG1Token.gperf"
{"date",date},
#line 45 "PAG1Token.gperf"
{"page-width",page_width},
#line 31 "PAG1Token.gperf"
{"footer",footer},
#line 54 "PAG1Token.gperf"
{"version",version},
#line 29 "PAG1Token.gperf"
{"document",document},
#line 26 "PAG1Token.gperf"
{"body",body},
#line 42 "PAG1Token.gperf"
{"page-group",page_group},
#line 24 "PAG1Token.gperf"
{"92008102400",VERSION_STR_4},
#line 25 "PAG1Token.gperf"
{"SLCreationDateProperty",SLCreationDateProperty},
#line 50 "PAG1Token.gperf"
{"section-prototypes",section_prototypes},
#line 35 "PAG1Token.gperf"
{"kSFWPFootnoteGapProperty",kSFWPFootnoteGapProperty},
#line 36 "PAG1Token.gperf"
{"kSFWPFootnoteKindProperty",kSFWPFootnoteKindProperty},
#line 48 "PAG1Token.gperf"
{"publication-info",publication_info},
{(char*)0}, {(char*)0}, {(char*)0},
#line 46 "PAG1Token.gperf"
{"print-info",print_info},
{(char*)0}, {(char*)0},
#line 32 "PAG1Token.gperf"
{"footnote",footnote},
{(char*)0},
#line 34 "PAG1Token.gperf"
{"http://developer.apple.com/namespaces/sl",NS_URI_SL},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 30 "PAG1Token.gperf"
{"drawables",drawables}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
register int key = hash (str, len);
if (key <= MAX_HASH_VALUE && key >= 0)
{
register const char *s = wordlist[key].name;
if (s && *str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
return &wordlist[key];
}
}
return 0;
}
#line 55 "PAG1Token.gperf"

View File

@ -4,7 +4,6 @@ CORE_BOOST_LIBS = $$PWD/build/$$CORE_BUILDS_PLATFORM_PREFIX/lib
core_ios:CONFIG += disable_enum_constexpr_conversion
core_android:CONFIG += disable_enum_constexpr_conversion
core_mac:CONFIG += disable_enum_constexpr_conversion
core_linux_clang:CONFIG += disable_enum_constexpr_conversion
core_android {
INCLUDEPATH += $$PWD/build/android/include
@ -26,21 +25,14 @@ bundle_xcframeworks {
}
}
core_win_arm64 {
DEFINES += MICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS=0
}
core_windows {
VS_VERSION=140
VS_DEBUG=
VS_ARCH=x64
core_debug:VS_DEBUG=gd-
core_win_32:VS_ARCH=x32
core_win_arm64:VS_ARCH=a64
vs2019:VS_VERSION=142
DEFINES += BOOST_USE_WINDOWS_H BOOST_WINAPI_NO_REDECLARATIONS
BOOST_POSTFIX = -vc$${VS_VERSION}-mt-$${VS_DEBUG}$${VS_ARCH}-1_72
core_boost_libs:LIBS += -L$$CORE_BOOST_LIBS -llibboost_system$$BOOST_POSTFIX -llibboost_filesystem$$BOOST_POSTFIX

View File

@ -27,7 +27,7 @@ CLEAN=
BOOST_VERSION=1.72.0
BOOST_VERSION2=1_72_0
MIN_IOS_VERSION=8.0
IOS_SDK_VERSION=`xcodebuild BITCODE_GENERATION_MODE="bitcode" ENABLE_BITCODE="NO" -showsdks | grep iphoneos | \
IOS_SDK_VERSION=`xcodebuild BITCODE_GENERATION_MODE="bitcode" ENABLE_BITCODE="YES" OTHER_CFLAGS="-fembed-bitcode" -showsdks | grep iphoneos | \
egrep "[[:digit:]]+\.[[:digit:]]+" -o | tail -1`
OSX_SDK_VERSION=`xcodebuild BITCODE_GENERATION_MODE="bitcode" ENABLE_BITCODE="YES" OTHER_CFLAGS="-fembed-bitcode" -showsdks | grep macosx | \
egrep "[[:digit:]]+\.[[:digit:]]+" -o | tail -1`
@ -42,7 +42,7 @@ XCODE_ROOT=`xcode-select -print-path`
#
# Should perhaps also consider/use instead: -BOOST_SP_USE_PTHREADS
EXTRA_CPPFLAGS="-DBOOST_AC_USE_PTHREADS -DBOOST_SP_USE_PTHREADS -g -DNDEBUG \
-std=c++11 -stdlib=libc++ -fvisibility=hidden -fvisibility-inlines-hidden"
-std=c++11 -stdlib=libc++ -fvisibility=hidden -fvisibility-inlines-hidden -fembed-bitcode"
EXTRA_IOS_CPPFLAGS="$EXTRA_CPPFLAGS -mios-version-min=$MIN_IOS_VERSION"
EXTRA_OSX_CPPFLAGS="$EXTRA_CPPFLAGS"
@ -259,17 +259,20 @@ buildBoost()
echo Building Boost for iPhone
# Install this one so we can copy the headers for the frameworks...
./b2 -j16 --build-dir=iphone-build --stagedir=iphone-build/stage \
cxxflags="-fembed-bitcode" \
--prefix=$PREFIXDIR toolset=darwin architecture=arm target-os=iphone \
macosx-version=iphone-${IOS_SDK_VERSION} define=_LITTLE_ENDIAN \
link=static stage
./b2 -j16 --build-dir=iphone-build --stagedir=iphone-build/stage \
--prefix=$PREFIXDIR toolset=darwin architecture=arm \
cxxflags="-fembed-bitcode" \
target-os=iphone macosx-version=iphone-${IOS_SDK_VERSION} \
define=_LITTLE_ENDIAN link=static install
doneSection
echo Building Boost for iPhoneSimulator
./b2 -j16 --build-dir=iphonesim-build --stagedir=iphonesim-build/stage \
cxxflags="-fembed-bitcode" \
toolset=darwin-${IOS_SDK_VERSION}~iphonesim architecture=x86 \
target-os=iphone macosx-version=iphonesim-${IOS_SDK_VERSION} \
link=static stage

View File

@ -1,2 +0,0 @@
brotli/
module.version

View File

@ -1,9 +0,0 @@
SRC_DIR = $$PWD/brotli/c
DEFINES += FT_CONFIG_OPTION_USE_BROTLI
INCLUDEPATH += \
$$SRC_DIR/include
SOURCES += $$files($$SRC_DIR/common/*.c)
SOURCES += $$files($$SRC_DIR/dec/*.c)
#SOURCES += $$files($$SRC_DIR/enc/*.c)

View File

@ -1,20 +0,0 @@
#!/usr/bin/env python
import sys
import os
sys.path.append("../../../../build_tools/scripts")
import base
def clear_module():
if base.is_dir("brotli"):
base.delete_dir_with_access_error("brotli")
return
base.check_module_version("1", clear_module)
# fetch harfbuzz
if not base.is_dir("brotli"):
base.cmd("git", ["clone", "https://github.com/google/brotli.git"])
os.chdir("brotli")
base.cmd("git", ["checkout", "a47d7475063eb223c87632eed806c0070e70da29"])
os.chdir("../")

View File

@ -78,24 +78,24 @@ function set_ios_cpu_feature() {
armv7)
export CC="xcrun -sdk iphoneos clang -arch armv7"
export CXX="xcrun -sdk iphoneos clang++ -arch armv7"
export CFLAGS="-arch armv7 -target armv7-ios-darwin -march=armv7 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -Wno-unused-function -fstrict-aliasing -Oz -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
export LDFLAGS="-arch armv7 -target armv7-ios-darwin -march=armv7 -isysroot ${sysroot} -L${sysroot}/usr/lib "
export CXXFLAGS="-std=c++11 -arch armv7 -target armv7-ios-darwin -march=armv7 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fstrict-aliasing -DIOS -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
export CFLAGS="-arch armv7 -target armv7-ios-darwin -march=armv7 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -Wno-unused-function -fstrict-aliasing -Oz -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -fembed-bitcode -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
export LDFLAGS="-arch armv7 -target armv7-ios-darwin -march=armv7 -isysroot ${sysroot} -fembed-bitcode -L${sysroot}/usr/lib "
export CXXFLAGS="-std=c++11 -arch armv7 -target armv7-ios-darwin -march=armv7 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fstrict-aliasing -fembed-bitcode -DIOS -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
;;
arm64)
export CC="xcrun -sdk iphoneos clang -arch arm64"
export CXX="xcrun -sdk iphoneos clang++ -arch arm64"
export CFLAGS="-arch arm64 -target aarch64-ios-darwin -march=armv8 -mcpu=generic -Wno-unused-function -fstrict-aliasing -Oz -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
export LDFLAGS="-arch arm64 -target aarch64-ios-darwin -march=armv8 -isysroot ${sysroot} -L${sysroot}/usr/lib "
export CXXFLAGS="-std=c++11 -arch arm64 -target aarch64-ios-darwin -march=armv8 -mcpu=generic -fstrict-aliasing -DIOS -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
export CFLAGS="-arch arm64 -target aarch64-ios-darwin -march=armv8 -mcpu=generic -Wno-unused-function -fstrict-aliasing -Oz -Wno-ignored-optimization-argument -DIOS -isysroot ${sysroot} -fembed-bitcode -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
export LDFLAGS="-arch arm64 -target aarch64-ios-darwin -march=armv8 -isysroot ${sysroot} -fembed-bitcode -L${sysroot}/usr/lib "
export CXXFLAGS="-std=c++11 -arch arm64 -target aarch64-ios-darwin -march=armv8 -mcpu=generic -fstrict-aliasing -fembed-bitcode -DIOS -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
;;
arm64e)
# -march=armv8.3 ???
export CC="xcrun -sdk iphoneos clang -arch arm64e"
export CXX="xcrun -sdk iphoneos clang++ -arch arm64e"
export CFLAGS="-arch arm64e -target aarch64-ios-darwin -Wno-unused-function -fstrict-aliasing -DIOS -isysroot ${sysroot} -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
export LDFLAGS="-arch arm64e -target aarch64-ios-darwin -isysroot ${sysroot} -L${sysroot}/usr/lib "
export CXXFLAGS="-std=c++11 -arch arm64e -target aarch64-ios-darwin -fstrict-aliasing -DIOS -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
export CFLAGS="-arch arm64e -target aarch64-ios-darwin -Wno-unused-function -fstrict-aliasing -DIOS -isysroot ${sysroot} -fembed-bitcode -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
export LDFLAGS="-arch arm64e -target aarch64-ios-darwin -isysroot ${sysroot} -fembed-bitcode -L${sysroot}/usr/lib "
export CXXFLAGS="-std=c++11 -arch arm64e -target aarch64-ios-darwin -fstrict-aliasing -fembed-bitcode -DIOS -miphoneos-version-min=${ios_min_target} -I${sysroot}/usr/include"
;;
i386)
export CC="xcrun -sdk iphonesimulator clang -arch i386"

View File

@ -1,818 +0,0 @@
// https://android.googlesource.com/platform/external/harfbuzz/+/ics-mr0/contrib/tables/script-properties.h
/*
* https://unicode.org/reports/tr29/
As far as a user is concerned, the underlying representation of text is not important,
but it is important that an editing interface present a uniform implementation of what
the user thinks of as characters. Grapheme clusters can be treated as units, by default,
for processes such as the formatting of drop caps, as well as the implementation of text
selection, arrow key movement or backspacing through text, and so forth. For example,
when a grapheme cluster is represented internally by a character sequence consisting of
base character + accents, then using the right arrow key would skip from the start of the
base character to the end of the last accent.
This document defines a default specification for grapheme clusters. It may be customized
for particular languages, operations, or other situations. For example, arrow key movement
could be tailored by language, or could use knowledge specific to particular fonts to move
in a more granular manner, in circumstances where it would be useful to edit individual
components. This could apply, for example, to the complex editorial requirements for the
Northern Thai script Tai Tham (Lanna). Similarly, editing a grapheme cluster element by
element may be preferable in some circumstances. For example, on a given system the backspace
key might delete by code point, while the delete key may delete an entire cluster.
* */
#include "../../../core/DesktopEditor/common/File.h"
#include "../../../core/DesktopEditor/raster/BgraFrame.h"
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include FT_OUTLINE_H
#include <hb-ft.h>
#include <hb-ot.h>
#include <hb.h>
class CDrawer
{
public:
CBgraFrame m_oFrame;
BYTE *pixels;
int width;
int height;
int pitch;
BYTE Rshift;
BYTE Gshift;
BYTE Bshift;
BYTE Ashift;
public:
CDrawer(int w, int h)
{
width = w;
height = h;
pitch = 4 * width;
m_oFrame.put_Width(width);
m_oFrame.put_Height(height);
m_oFrame.put_Stride(pitch);
int size = 4 * width * height;
BYTE *pPixels = new BYTE[size];
for (int i = 0; i < size; i += 4)
{
pPixels[i] = 0xFF;
pPixels[i + 1] = 0xFF;
pPixels[i + 2] = 0xFF;
pPixels[i + 3] = 0xFF;
}
pixels = pPixels;
m_oFrame.put_Data(pPixels);
Bshift = 24;
Gshift = 16;
Rshift = 8;
Ashift = 0;
}
void Save()
{
m_oFrame.SaveFile(NSFile::GetProcessDirectory() + L"/output.png", 4);
}
};
#define NUM_EXAMPLES 3
/* fonts */
const char *fonts_paths[NUM_EXAMPLES] = {
"C:/Windows/Fonts/calibri.ttf",
//"C:/Windows/Fonts/arial.ttf",
"C:/Users/korol/AppData/Local/Microsoft/Windows/Fonts/ArabicTest.ttf",
"C:/Windows/Fonts/simsun.ttc"
};
#define NUM_GLYPH_TYPES 5
const char *num_glyph_types[NUM_GLYPH_TYPES] = {"UNCLASSIFIED", "BASE_GLYPH", "LIGATURE", "MARK", "COMPONENT"};
/* tranlations courtesy of google */
const char *texts[NUM_EXAMPLES] = {
"fi",
"لا لآ لأ لا",
"懶惰的姜貓"
};
const hb_direction_t text_directions[NUM_EXAMPLES] = {
HB_DIRECTION_LTR,
HB_DIRECTION_RTL,
HB_DIRECTION_TTB,
};
const int text_skip[NUM_EXAMPLES] = {
0,
0,
1,
};
/* XXX: These are not correct, though it doesn't seem to break anything
* regardless of their value. */
const char *languages[NUM_EXAMPLES] = {
"en",
"ar",
"ch",
};
const hb_script_t scripts[NUM_EXAMPLES] = {
HB_SCRIPT_LATIN,
HB_SCRIPT_ARABIC,
HB_SCRIPT_HAN,
};
enum
{
ENGLISH = 0,
ARABIC,
CHINESE
};
typedef struct _spanner_baton_t
{
/* rendering part - assumes 32bpp surface */
uint32_t *pixels; // set to the glyph's origin.
uint32_t *first_pixel, *last_pixel; // bounds check
uint32_t pitch;
uint32_t rshift;
uint32_t gshift;
uint32_t bshift;
uint32_t ashift;
/* sizing part */
int min_span_x;
int max_span_x;
int min_y;
int max_y;
} spanner_baton_t;
/* This spanner is write only, suitable for write-only mapped buffers,
but can cause dark streaks where glyphs overlap, like in arabic scripts.
Note how spanners don't clip against surface width - resize the window
and see what it leads to. */
void spanner_wo(int y, int count, const FT_Span *spans, void *user)
{
spanner_baton_t *baton = (spanner_baton_t *)user;
uint32_t *scanline = baton->pixels - y * ((int)baton->pitch / 4);
if (scanline < baton->first_pixel)
return;
for (int i = 0; i < count; i++)
{
uint32_t color = ((spans[i].coverage / 2) << baton->rshift) | ((spans[i].coverage / 2) << baton->gshift) | ((spans[i].coverage / 2) << baton->bshift);
uint32_t *start = scanline + spans[i].x;
if (start + spans[i].len > baton->last_pixel)
return;
for (int x = 0; x < spans[i].len; x++)
*start++ = color;
}
}
/* This spanner does read/modify/write, trading performance for accuracy.
The color here is simply half coverage value in all channels,
effectively mid-gray.
Suitable for when artifacts mostly do come up and annoy.
This might be optimized if one does rmw only for some values of x.
But since the whole buffer has to be rw anyway, and the previous value
is probably still in the cache, there's little point to. */
void spanner_rw(int y, int count, const FT_Span *spans, void *user)
{
spanner_baton_t *baton = (spanner_baton_t *)user;
uint32_t *scanline = baton->pixels - y * ((int)baton->pitch / 4);
if (scanline < baton->first_pixel)
return;
for (int i = 0; i < count; i++)
{
uint32_t color = ((spans[i].coverage / 2) << baton->rshift) | ((spans[i].coverage / 2) << baton->gshift) | ((spans[i].coverage / 2) << baton->bshift);
uint32_t *start = scanline + spans[i].x;
if (start + spans[i].len > baton->last_pixel)
return;
for (int x = 0; x < spans[i].len; x++)
*start++ |= color;
}
}
/* This spanner is for obtaining exact bounding box for the string.
Unfortunately this can't be done without rendering it (or pretending to).
After this runs, we get min and max values of coordinates used.
*/
void spanner_sizer(int y, int count, const FT_Span *spans, void *user)
{
spanner_baton_t *baton = (spanner_baton_t *)user;
if (y < baton->min_y)
baton->min_y = y;
if (y > baton->max_y)
baton->max_y = y;
for (int i = 0; i < count; i++)
{
if (spans[i].x + spans[i].len > baton->max_span_x)
baton->max_span_x = spans[i].x + spans[i].len;
if (spans[i].x < baton->min_span_x)
baton->min_span_x = spans[i].x;
}
}
FT_SpanFunc spanner = spanner_wo;
void ftfdump(FT_Face ftf)
{
for (int i = 0; i < ftf->num_charmaps; i++)
{
printf(
"%d: %s %s %c%c%c%c plat=%hu id=%hu\n", i, ftf->family_name, ftf->style_name, ftf->charmaps[i]->encoding >> 24, (ftf->charmaps[i]->encoding >> 16) & 0xff,
(ftf->charmaps[i]->encoding >> 8) & 0xff, (ftf->charmaps[i]->encoding) & 0xff, ftf->charmaps[i]->platform_id, ftf->charmaps[i]->encoding_id);
}
}
/* See http://www.microsoft.com/typography/otspec/name.htm
for a list of some possible platform-encoding pairs.
We're interested in 0-3 aka 3-1 - UCS-2.
Otherwise, fail. If a font has some unicode map, but lacks
UCS-2 - it is a broken or irrelevant font. What exactly
Freetype will select on face load (it promises most wide
unicode, and if that will be slower that UCS-2 - left as
an excercise to check. */
int force_ucs2_charmap(FT_Face ftf)
{
for (int i = 0; i < ftf->num_charmaps; i++)
if (((ftf->charmaps[i]->platform_id == 0) && (ftf->charmaps[i]->encoding_id == 3)) || ((ftf->charmaps[i]->platform_id == 3) && (ftf->charmaps[i]->encoding_id == 1)))
return FT_Set_Charmap(ftf, ftf->charmaps[i]);
return -1;
}
void hline(CDrawer *s, int min_x, int max_x, int y, uint32_t color)
{
if (y < 0)
y = 0;
uint32_t *pix = (uint32_t *)s->pixels + (y * s->pitch) / 4 + min_x;
uint32_t *end = (uint32_t *)s->pixels + (y * s->pitch) / 4 + max_x;
while (pix - 1 != end)
*pix++ = color;
}
void vline(CDrawer *s, int min_y, int max_y, int x, uint32_t color)
{
if (min_y < 0)
min_y = 0;
uint32_t *pix = (uint32_t *)s->pixels + (min_y * s->pitch) / 4 + x;
uint32_t *end = (uint32_t *)s->pixels + (max_y * s->pitch) / 4 + x;
while (pix - s->pitch / 4 != end)
{
*pix = color;
pix += s->pitch / 4;
}
}
void assert(const bool &valid)
{
// TODO:
}
#define MAIN_CC_NO_PRIVATE_API
#ifndef MAIN_CC_NO_PRIVATE_API
/* Only this part of this mini app uses private API */
#include "hb-open-file.hh"
#include "hb-ot-layout-gdef-table.hh"
#include "hb-ot-layout-gsubgpos.hh"
#include "hb-static.cc"
using namespace OT;
static void print_layout_info_using_private_api(hb_blob_t *blob)
{
const char *font_data = hb_blob_get_data(blob, nullptr);
hb_blob_t *font_blob = hb_sanitize_context_t().sanitize_blob<OpenTypeFontFile>(blob);
const OpenTypeFontFile *sanitized = font_blob->as<OpenTypeFontFile>();
if (!font_blob->data)
{
printf("Sanitization of the file wasn't successful. Exit");
exit(1);
}
const OpenTypeFontFile &ot = *sanitized;
switch (ot.get_tag())
{
case OpenTypeFontFile::TrueTypeTag:
printf("OpenType font with TrueType outlines\n");
break;
case OpenTypeFontFile::CFFTag:
printf("OpenType font with CFF (Type1) outlines\n");
break;
case OpenTypeFontFile::TTCTag:
printf("TrueType Collection of OpenType fonts\n");
break;
case OpenTypeFontFile::TrueTag:
printf("Obsolete Apple TrueType font\n");
break;
case OpenTypeFontFile::Typ1Tag:
printf("Obsolete Apple Type1 font in SFNT container\n");
break;
case OpenTypeFontFile::DFontTag:
printf("DFont Mac Resource Fork\n");
break;
default:
printf("Unknown font format\n");
break;
}
unsigned num_faces = hb_face_count(blob);
printf("%d font(s) found in file\n", num_faces);
for (unsigned n_font = 0; n_font < num_faces; ++n_font)
{
const OpenTypeFontFace &font = ot.get_face(n_font);
printf("Font %d of %d:\n", n_font, num_faces);
unsigned num_tables = font.get_table_count();
printf(" %d table(s) found in font\n", num_tables);
for (unsigned n_table = 0; n_table < num_tables; ++n_table)
{
const OpenTypeTable &table = font.get_table(n_table);
printf(" Table %2d of %2d: %.4s (0x%08x+0x%08x)\n", n_table, num_tables, (const char *)table.tag, (unsigned)table.offset, (unsigned)table.length);
switch (table.tag)
{
case HB_OT_TAG_GSUB:
case HB_OT_TAG_GPOS:
{
const GSUBGPOS &g = *reinterpret_cast<const GSUBGPOS *>(font_data + table.offset);
unsigned num_scripts = g.get_script_count();
printf(" %d script(s) found in table\n", num_scripts);
for (unsigned n_script = 0; n_script < num_scripts; ++n_script)
{
const Script &script = g.get_script(n_script);
printf(" Script %2d of %2d: %.4s\n", n_script, num_scripts, (const char *)g.get_script_tag(n_script));
if (!script.has_default_lang_sys())
printf(" No default language system\n");
int num_langsys = script.get_lang_sys_count();
printf(" %d language system(s) found in script\n", num_langsys);
for (int n_langsys = script.has_default_lang_sys() ? -1 : 0; n_langsys < num_langsys; ++n_langsys)
{
const LangSys &langsys = n_langsys == -1 ? script.get_default_lang_sys() : script.get_lang_sys(n_langsys);
if (n_langsys == -1)
printf(" Default Language System\n");
else
printf(" Language System %2d of %2d: %.4s\n", n_langsys, num_langsys, (const char *)script.get_lang_sys_tag(n_langsys));
if (!langsys.has_required_feature())
printf(" No required feature\n");
else
printf(" Required feature index: %d\n", langsys.get_required_feature_index());
unsigned num_features = langsys.get_feature_count();
printf(" %d feature(s) found in language system\n", num_features);
for (unsigned n_feature = 0; n_feature < num_features; ++n_feature)
{
printf(" Feature index %2d of %2d: %d\n", n_feature, num_features, langsys.get_feature_index(n_feature));
}
}
}
unsigned num_features = g.get_feature_count();
printf(" %d feature(s) found in table\n", num_features);
for (unsigned n_feature = 0; n_feature < num_features; ++n_feature)
{
const Feature &feature = g.get_feature(n_feature);
unsigned num_lookups = feature.get_lookup_count();
printf(" Feature %2d of %2d: %c%c%c%c\n", n_feature, num_features, HB_UNTAG(g.get_feature_tag(n_feature)));
printf(" %d lookup(s) found in feature\n", num_lookups);
for (unsigned n_lookup = 0; n_lookup < num_lookups; ++n_lookup)
{
printf(" Lookup index %2d of %2d: %d\n", n_lookup, num_lookups, feature.get_lookup_index(n_lookup));
}
}
unsigned num_lookups = g.get_lookup_count();
printf(" %d lookup(s) found in table\n", num_lookups);
for (unsigned n_lookup = 0; n_lookup < num_lookups; ++n_lookup)
{
const Lookup &lookup = g.get_lookup(n_lookup);
printf(" Lookup %2d of %2d: type %d, props 0x%04X\n", n_lookup, num_lookups, lookup.get_type(), lookup.get_props());
}
}
break;
case GDEF::tableTag:
{
const GDEF &gdef = *reinterpret_cast<const GDEF *>(font_data + table.offset);
printf(" Has %sglyph classes\n", gdef.has_glyph_classes() ? "" : "no ");
printf(" Has %smark attachment types\n", gdef.has_mark_attachment_types() ? "" : "no ");
printf(" Has %sattach points\n", gdef.has_attach_points() ? "" : "no ");
printf(" Has %slig carets\n", gdef.has_lig_carets() ? "" : "no ");
printf(" Has %smark sets\n", gdef.has_mark_sets() ? "" : "no ");
hb_position_t caret_array[16];
unsigned int caret_count = 16;
unsigned int num_carets = gdef.get_lig_carets(nullptr, HB_DIRECTION_LTR, 302, 0, &caret_count, caret_array);
int y = 0;
++y;
break;
}
}
}
}
}
/* end of private API use */
#endif
struct hb_feature_test {
hb_tag_t tag;
uint32_t value;
};
int main(int argc, char *argv[])
{
// hb_blob_t* blobFileTest = hb_blob_create_from_file("C:/Windows/Fonts/calibri.ttf");
// print_layout_info_using_private_api(blobFileTest);
int ptSize = 40 * 64;
int device_hdpi = 72;
int device_vdpi = 72;
/* Init freetype */
FT_Library ft_library;
assert(!FT_Init_FreeType(&ft_library));
/* Load our fonts */
FT_Face ft_face[NUM_EXAMPLES];
assert(!FT_New_Face(ft_library, fonts_paths[0], 0, &ft_face[ENGLISH]));
assert(!FT_Set_Char_Size(ft_face[ENGLISH], 0, ptSize, device_hdpi, device_vdpi));
ftfdump(ft_face[ENGLISH]); // wonderful world of encodings ...
// force_ucs2_charmap(ft_face[ENGLISH]); // which we ignore.
assert(!FT_New_Face(ft_library, fonts_paths[1], 0, &ft_face[ARABIC]));
assert(!FT_Set_Char_Size(ft_face[ARABIC], 0, ptSize, device_hdpi, device_vdpi));
ftfdump(ft_face[ARABIC]);
// force_ucs2_charmap(ft_face[ARABIC]);
assert(!FT_New_Face(ft_library, fonts_paths[2], 0, &ft_face[CHINESE]));
assert(!FT_Set_Char_Size(ft_face[CHINESE], 0, ptSize, device_hdpi, device_vdpi));
ftfdump(ft_face[CHINESE]);
// force_ucs2_charmap(ft_face[CHINESE]);
/* Get our harfbuzz font structs */
hb_font_t *hb_ft_font[NUM_EXAMPLES];
hb_ft_font[ENGLISH] = hb_ft_font_create(ft_face[ENGLISH], NULL);
// hb_blob_t* blobFile = hb_blob_create_from_file(sFont1.c_str());
// hb_face_t* faceFile = hb_face_create(blobFile, 0);
// hb_ft_font[ENGLISH] = hb_font_create(faceFile);
hb_ft_font[ARABIC] = hb_ft_font_create(ft_face[ARABIC], NULL);
hb_ft_font[CHINESE] = hb_ft_font_create(ft_face[CHINESE], NULL);
hb_ft_font_set_funcs(hb_ft_font[ENGLISH]);
hb_ft_font_set_funcs(hb_ft_font[ARABIC]);
hb_ft_font_set_funcs(hb_ft_font[CHINESE]);
/** Setup our SDL window **/
int width = 800;
int height = 600;
int bpp = 32;
CDrawer oDrawer(width, height);
/* Create a buffer for harfbuzz to use */
hb_buffer_t *buf = hb_buffer_create();
for (int i = 0; i < NUM_EXAMPLES; ++i)
{
if (text_skip[i])
continue;
hb_buffer_set_direction(buf, text_directions[i]); /* or LTR */
hb_buffer_set_script(buf, scripts[i]); /* see hb-unicode.h */
hb_buffer_set_language(buf, hb_language_from_string(languages[i], strlen(languages[i])));
// hb_buffer_set_cluster_level (buf, HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES);
// hb_buffer_set_cluster_level (buf, HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS);
hb_buffer_set_cluster_level(buf, HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES);
hb_feature_test features[] {
{HB_TAG('r','l','i','g'), 1},
{HB_TAG('l','i','g','a'), 0},
{HB_TAG('c','l','i','g'), 1},
{HB_TAG('h','l','i','g'), 1},
{HB_TAG('d','l','i','g'), 1},
{HB_TAG('k','e','r','n'), 2},
{0, 0}
};
int userfeatures_count = 0;
hb_feature_t userfeatures[100];
hb_feature_test* current_feature = features;
while (current_feature->tag != 0)
{
if (current_feature->value != 2)
{
userfeatures[userfeatures_count].tag = current_feature->tag;
userfeatures[userfeatures_count].value = current_feature->value;
userfeatures[userfeatures_count].start = HB_FEATURE_GLOBAL_START;
userfeatures[userfeatures_count].end = HB_FEATURE_GLOBAL_END;
userfeatures_count++;
}
current_feature++;
}
/* Layout the text */
hb_buffer_add_utf8(buf, texts[i], strlen(texts[i]), 0, strlen(texts[i]));
// detect script by codes
hb_buffer_guess_segment_properties(buf);
// const char*const pHbShapers[] = { "graphite2", "coretext_aat", "ot", "fallback", nullptr };
// bool ok = hb_shape_full(hb_ft_font[i], buf, userfeatures, userfeatures_count, pHbShapers);
hb_shape(hb_ft_font[i], buf, (userfeatures_count != 0) ? userfeatures : NULL, userfeatures_count);
unsigned int glyph_count;
hb_glyph_info_t *glyph_info = hb_buffer_get_glyph_infos(buf, &glyph_count);
hb_glyph_position_t *glyph_pos = hb_buffer_get_glyph_positions(buf, &glyph_count);
#if 1
hb_position_t caret_array[16];
unsigned int caret_count = 16;
unsigned int num_carets = hb_ot_layout_get_ligature_carets(hb_ft_font[i], text_directions[i], glyph_info[0].codepoint, -1, &caret_count, caret_array);
#endif
/* set up rendering via spanners */
spanner_baton_t stuffbaton;
FT_Raster_Params ftr_params;
ftr_params.target = 0;
ftr_params.flags = FT_RASTER_FLAG_DIRECT | FT_RASTER_FLAG_AA;
ftr_params.user = &stuffbaton;
ftr_params.black_spans = 0;
ftr_params.bit_set = 0;
ftr_params.bit_test = 0;
/* Calculate string bounding box in pixels */
ftr_params.gray_spans = spanner_sizer;
/* See http://www.freetype.org/freetype2/docs/glyphs/glyphs-3.html */
int max_x = INT_MIN; // largest coordinate a pixel has been set at, or the pen was advanced to.
int min_x = INT_MAX; // smallest coordinate a pixel has been set at, or the pen was advanced to.
int max_y = INT_MIN; // this is max topside bearing along the string.
int min_y = INT_MAX; // this is max value of (height - topbearing) along the string.
/* Naturally, the above comments swap their meaning between horizontal and vertical scripts,
since the pen changes the axis it is advanced along.
However, their differences still make up the bounding box for the string.
Also note that all this is in FT coordinate system where y axis points upwards.
*/
int sizer_x = 0;
int sizer_y = 0; /* in FT coordinate system. */
printf("----------------------------------------------------\n");
for (unsigned j = 0; j < glyph_count; ++j)
{
hb_ot_layout_glyph_class_t glyph_type = hb_ot_layout_get_glyph_class(hb_font_get_face(hb_ft_font[i]), glyph_info[j].codepoint);
hb_glyph_flags_t glyph_type_flags = hb_glyph_info_get_glyph_flags(&glyph_info[j]);
printf(
"glyph(%s, flags: %d): gid:%d, cluster:%d, [%d, %d, %d, %d, %d]\n", num_glyph_types[glyph_type], glyph_type_flags, (int)glyph_info[j].codepoint, (int)glyph_info[j].cluster,
glyph_pos[j].x_advance, glyph_pos[j].y_advance, glyph_pos[j].x_offset, glyph_pos[j].y_offset, glyph_pos[j].var);
}
FT_Error fterr;
for (unsigned j = 0; j < glyph_count; ++j)
{
if ((fterr = FT_Load_Glyph(ft_face[i], glyph_info[j].codepoint, 0)))
{
printf("load %08x failed fterr=%d.\n", glyph_info[j].codepoint, fterr);
}
else
{
if (ft_face[i]->glyph->format != FT_GLYPH_FORMAT_OUTLINE)
{
printf("glyph->format = %4s\n", (char *)&ft_face[i]->glyph->format);
}
else
{
int gx = sizer_x + (glyph_pos[j].x_offset / 64);
int gy = sizer_y + (glyph_pos[j].y_offset / 64); // note how the sign differs from the rendering pass
stuffbaton.min_span_x = INT_MAX;
stuffbaton.max_span_x = INT_MIN;
stuffbaton.min_y = INT_MAX;
stuffbaton.max_y = INT_MIN;
if ((fterr = FT_Outline_Render(ft_library, &ft_face[i]->glyph->outline, &ftr_params)))
printf("FT_Outline_Render() failed err=%d\n", fterr);
if (stuffbaton.min_span_x != INT_MAX)
{
/* Update values if the spanner was actually called. */
if (min_x > stuffbaton.min_span_x + gx)
min_x = stuffbaton.min_span_x + gx;
if (max_x < stuffbaton.max_span_x + gx)
max_x = stuffbaton.max_span_x + gx;
if (min_y > stuffbaton.min_y + gy)
min_y = stuffbaton.min_y + gy;
if (max_y < stuffbaton.max_y + gy)
max_y = stuffbaton.max_y + gy;
}
else
{
/* The spanner wasn't called at all - an empty glyph, like space. */
if (min_x > gx)
min_x = gx;
if (max_x < gx)
max_x = gx;
if (min_y > gy)
min_y = gy;
if (max_y < gy)
max_y = gy;
}
}
}
sizer_x += glyph_pos[j].x_advance / 64;
sizer_y += glyph_pos[j].y_advance / 64; // note how the sign differs from the rendering pass
}
/* Still have to take into account last glyph's advance. Or not? */
if (min_x > sizer_x)
min_x = sizer_x;
if (max_x < sizer_x)
max_x = sizer_x;
if (min_y > sizer_y)
min_y = sizer_y;
if (max_y < sizer_y)
max_y = sizer_y;
/* The bounding box */
int bbox_w = max_x - min_x;
int bbox_h = max_y - min_y;
/* Two offsets below position the bounding box with respect to the 'origin',
which is sort of origin of string's first glyph.
baseline_offset - offset perpendecular to the baseline to the topmost (horizontal),
or leftmost (vertical) pixel drawn.
baseline_shift - offset along the baseline, from the first drawn glyph's origin
to the leftmost (horizontal), or topmost (vertical) pixel drawn.
Thus those offsets allow positioning the bounding box to fit the rendered string,
as they are in fact offsets from the point given to the renderer, to the top left
corner of the bounding box.
NB: baseline is defined as y==0 for horizontal and x==0 for vertical scripts.
(0,0) here is where the first glyph's origin ended up after shaping, not taking
into account glyph_pos[0].xy_offset (yeah, my head hurts too).
*/
int baseline_offset;
int baseline_shift;
if (HB_DIRECTION_IS_HORIZONTAL(hb_buffer_get_direction(buf)))
{
baseline_offset = max_y;
baseline_shift = min_x;
}
if (HB_DIRECTION_IS_VERTICAL(hb_buffer_get_direction(buf)))
{
baseline_offset = min_x;
baseline_shift = max_y;
}
/* The pen/baseline start coordinates in window coordinate system
- with those text placement in the window is controlled.
- note that for RTL scripts pen still goes LTR */
int x = 0, y = 50 + i * 75;
if (i == ENGLISH)
{
x = 20;
} /* left justify */
if (i == ARABIC)
{
x = width - bbox_w - 20;
} /* right justify */
if (i == CHINESE)
{
x = width / 2 - bbox_w / 2;
} /* center, and for TTB script h_advance is half-width. */
/* Draw baseline and the bounding box */
/* The below is complicated since we simultaneously
convert to the window coordinate system. */
int left, right, top, bottom;
if (HB_DIRECTION_IS_HORIZONTAL(hb_buffer_get_direction(buf)))
{
/* bounding box in window coordinates without offsets */
left = x;
right = x + bbox_w;
top = y - bbox_h;
bottom = y;
/* apply offsets */
left += baseline_shift;
right += baseline_shift;
top -= baseline_offset - bbox_h;
bottom -= baseline_offset - bbox_h;
/* draw the baseline */
hline(&oDrawer, x, x + bbox_w, y, 0x0000ff00);
}
if (HB_DIRECTION_IS_VERTICAL(hb_buffer_get_direction(buf)))
{
left = x;
right = x + bbox_w;
top = y;
bottom = y + bbox_h;
left += baseline_offset;
right += baseline_offset;
top -= baseline_shift;
bottom -= baseline_shift;
vline(&oDrawer, y, y + bbox_h, x, 0x0000ff00);
}
/* +1/-1 are for the bbox borders be the next pixel outside the bbox itself */
hline(&oDrawer, left - 1, right + 1, top - 1, 0xffff0000);
hline(&oDrawer, left - 1, right + 1, bottom + 1, 0xffff0000);
vline(&oDrawer, top - 1, bottom + 1, left - 1, 0xffff0000);
vline(&oDrawer, top - 1, bottom + 1, right + 1, 0xffff0000);
/* set rendering spanner */
ftr_params.gray_spans = spanner;
/* initialize rendering part of the baton */
stuffbaton.pixels = NULL;
stuffbaton.first_pixel = (uint32_t *)oDrawer.pixels;
stuffbaton.last_pixel = (uint32_t *)(((uint8_t *)oDrawer.pixels) + oDrawer.pitch * oDrawer.height);
stuffbaton.pitch = oDrawer.pitch;
stuffbaton.rshift = oDrawer.Rshift;
stuffbaton.gshift = oDrawer.Gshift;
stuffbaton.bshift = oDrawer.Bshift;
/* render */
for (unsigned j = 0; j < glyph_count; ++j)
{
if ((fterr = FT_Load_Glyph(ft_face[i], glyph_info[j].codepoint, 0)))
{
printf("load %08x failed fterr=%d.\n", glyph_info[j].codepoint, fterr);
}
else
{
if (ft_face[i]->glyph->format != FT_GLYPH_FORMAT_OUTLINE)
{
printf("glyph->format = %4s\n", (char *)&ft_face[i]->glyph->format);
}
else
{
int gx = x + (glyph_pos[j].x_offset / 64);
int gy = y - (glyph_pos[j].y_offset / 64);
stuffbaton.pixels = (uint32_t *)(((uint8_t *)oDrawer.pixels) + gy * oDrawer.pitch) + gx;
if ((fterr = FT_Outline_Render(ft_library, &ft_face[i]->glyph->outline, &ftr_params)))
printf("FT_Outline_Render() failed err=%d\n", fterr);
}
}
x += glyph_pos[j].x_advance / 64;
y -= glyph_pos[j].y_advance / 64;
}
/* clean up the buffer, but don't kill it just yet */
hb_buffer_clear_contents(buf);
}
/* Cleanup */
hb_buffer_destroy(buf);
for (int i = 0; i < NUM_EXAMPLES; ++i)
hb_font_destroy(hb_ft_font[i]);
FT_Done_FreeType(ft_library);
oDrawer.Save();
return 0;
}

View File

@ -1,19 +0,0 @@
CONFIG -= qt
TARGET = test
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CORE_ROOT_DIR = $$PWD/../../../../../core
PWD_ROOT_DIR = $$PWD
include($$CORE_ROOT_DIR/Common/base.pri)
include($$CORE_ROOT_DIR/DesktopEditor/graphics/pro/freetype.pri)
include($$CORE_ROOT_DIR/Common/3dParty/harfbuzz/harfbuzz.pri)
SOURCES += main.cpp
ADD_DEPENDENCY(UnicodeConverter, kernel, graphics)
DESTDIR = $$PWD/build

View File

@ -1,4 +0,0 @@
x265_git
libde265
libheif
ios-cmake

View File

@ -1,42 +0,0 @@
DEFINES += LIBHEIF_STATIC_BUILD
HEIF_BUILDS_PLATFORM_PREFIX = $$CORE_BUILDS_PLATFORM_PREFIX
core_ios : xcframework_platform_ios_simulator {
HEIF_BUILDS_PLATFORM_PREFIX = ios_simulator
}
HEIF_BUILD_PATH = $$PWD/libheif/build/$$HEIF_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX
INCLUDEPATH += \
$$PWD/libheif/libheif/api \
$$HEIF_BUILD_PATH # for heif_version.h
core_windows {
core_debug {
BUILD_TYPE = Debug
} else {
BUILD_TYPE = Release
}
LIBS += \
-L$$PWD/x265_git/build/$$HEIF_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX/$$BUILD_TYPE -lx265-static \
-L$$PWD/libde265/build/$$HEIF_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX/libde265/$$BUILD_TYPE -llibde265 \
-L$$HEIF_BUILD_PATH/libheif/$$BUILD_TYPE -lheif
}
core_linux | core_android {
# we need to wrap x265 and de265 libraries in `whole-archive` flags to avoid "undefined symbol" errors when later linking with graphics.so
LIBS += \
-Wl,--whole-archive \
-L$$PWD/x265_git/build/$$HEIF_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX -lx265 \
-L$$PWD/libde265/build/$$HEIF_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX/libde265 -lde265 \
-Wl,--no-whole-archive \
-L$$HEIF_BUILD_PATH/libheif -lheif
}
core_mac | core_ios {
LIBS += \
-L$$PWD/x265_git/build/$$HEIF_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX -lx265 \
-L$$PWD/libde265/build/$$HEIF_BUILDS_PLATFORM_PREFIX/$$CORE_BUILDS_CONFIGURATION_PREFIX/libde265 -lde265 \
-L$$HEIF_BUILD_PATH/libheif -lheif
}

View File

@ -3,8 +3,6 @@ DEPENDPATH += $$PWD
CORE_ROOT_DIR = $$PWD/../../../..
include($$CORE_ROOT_DIR/Common/3dParty/boost/boost.pri)
css_calculator_without_xhtml {
HEADERS += \
$$PWD/src/CCssCalculator_Private.h \

View File

@ -12,20 +12,20 @@
#include "StaticFunctions.h"
#include "ConstValues.h"
#define DEFAULT_FONT_SIZE 12
#define DEFAULT_FONT_SIZE 14
namespace NSCSS
{
typedef std::map<std::wstring, std::wstring>::const_iterator styles_iterator;
CCompiledStyle::CCompiledStyle() : m_nDpi(96), m_UnitMeasure(Point), m_dCoreFontSize(DEFAULT_FONT_SIZE)
CCompiledStyle::CCompiledStyle() : m_nDpi(96), m_UnitMeasure(Point)
{}
CCompiledStyle::CCompiledStyle(const CCompiledStyle& oStyle) :
m_arParentsStyles(oStyle.m_arParentsStyles), m_sId(oStyle.m_sId),
m_nDpi(oStyle.m_nDpi), m_UnitMeasure(oStyle.m_UnitMeasure), m_dCoreFontSize(oStyle.m_dCoreFontSize),
m_nDpi(oStyle.m_nDpi), m_UnitMeasure(oStyle.m_UnitMeasure),
m_oFont(oStyle.m_oFont), m_oMargin(oStyle.m_oMargin), m_oPadding(oStyle.m_oPadding), m_oBackground(oStyle.m_oBackground),
m_oText(oStyle.m_oText), m_oBorder(oStyle.m_oBorder), m_oDisplay(oStyle.m_oDisplay), m_oTransform(oStyle.m_oTransform){}
m_oText(oStyle.m_oText), m_oBorder(oStyle.m_oBorder), m_oDisplay(oStyle.m_oDisplay){}
CCompiledStyle::~CCompiledStyle()
{
@ -34,9 +34,6 @@ namespace NSCSS
CCompiledStyle& CCompiledStyle::operator+= (const CCompiledStyle &oElement)
{
if (oElement.Empty())
return *this;
m_oBackground += oElement.m_oBackground;
m_oBorder += oElement.m_oBorder;
m_oFont += oElement.m_oFont;
@ -44,12 +41,6 @@ namespace NSCSS
m_oPadding += oElement.m_oPadding;
m_oText += oElement.m_oText;
m_oDisplay += oElement.m_oDisplay;
m_oTransform += oElement.m_oTransform;
if (!oElement.m_sId.empty())
m_sId += L'+' + oElement.m_sId;
m_arParentsStyles.insert(oElement.m_arParentsStyles.begin(), oElement.m_arParentsStyles.end());
return *this;
}
@ -69,9 +60,6 @@ namespace NSCSS
m_oPadding = oElement.m_oPadding;
m_oText = oElement.m_oText;
m_oDisplay = oElement.m_oDisplay;
m_oTransform = oElement.m_oTransform;
m_arParentsStyles = oElement.m_arParentsStyles;
return *this;
}
@ -84,8 +72,7 @@ namespace NSCSS
m_oMargin == oStyle.m_oMargin &&
m_oPadding == oStyle.m_oPadding &&
m_oText == oStyle.m_oText &&
m_oDisplay == oStyle.m_oDisplay &&
m_oTransform == oStyle.m_oTransform;
m_oDisplay == oStyle.m_oDisplay;
}
void CCompiledStyle::StyleEquation(CCompiledStyle &oFirstStyle, CCompiledStyle &oSecondStyle)
@ -97,7 +84,6 @@ namespace NSCSS
NSProperties::CText ::Equation(oFirstStyle.m_oText, oSecondStyle.m_oText);
NSProperties::CBorder ::Equation(oFirstStyle.m_oBorder, oSecondStyle.m_oBorder);
NSProperties::CDisplay ::Equation(oFirstStyle.m_oDisplay, oSecondStyle.m_oDisplay);
NSProperties::CTransform ::Equation(oFirstStyle.m_oTransform, oSecondStyle.m_oTransform);
}
void CCompiledStyle::SetDpi(const unsigned short &uiDpi)
@ -113,8 +99,7 @@ namespace NSCSS
bool CCompiledStyle::Empty() const
{
return m_oBackground.Empty() && m_oBorder.Empty() && m_oFont.Empty() &&
m_oMargin.Empty() && m_oPadding.Empty() && m_oText.Empty() &&
m_oDisplay.Empty() && m_oTransform.Empty();
m_oMargin.Empty() && m_oPadding.Empty() && m_oText.Empty() && m_oDisplay.Empty();
}
void CCompiledStyle::AddPropSel(const std::wstring& sProperty, const std::wstring& sValue, const unsigned int unLevel, const bool& bHardMode)
@ -125,10 +110,7 @@ namespace NSCSS
void CCompiledStyle::AddStyle(const std::map<std::wstring, std::wstring>& mStyle, const unsigned int unLevel, const bool& bHardMode)
{
const bool bIsThereBorder = (m_oBorder.Empty()) ? false : true;
const double dParentFontSize = (!m_oFont.GetSize().Empty()) ? m_oFont.GetSize().ToDouble(NSCSS::Point) : DEFAULT_FONT_SIZE;
if (0 == unLevel)
m_dCoreFontSize = dParentFontSize;
const double dFontSize = (!m_oFont.GetSize().Empty()) ? m_oFont.GetSize().ToDouble(NSCSS::Point) : DEFAULT_FONT_SIZE;
for (std::pair<std::wstring, std::wstring> pPropertie : mStyle)
{
@ -140,15 +122,15 @@ namespace NSCSS
CASE(L"font"):
{
m_oFont.SetValue(pPropertie.second, unLevel, bHardMode);
m_oFont.UpdateSize(dParentFontSize, m_dCoreFontSize);
m_oFont.UpdateLineHeight(dParentFontSize, m_dCoreFontSize);
m_oFont.UpdateSize(dFontSize);
m_oFont.UpdateLineHeight(dFontSize);
break;
}
CASE(L"font-size"):
CASE(L"font-size-adjust"):
{
m_oFont.SetSize(pPropertie.second, unLevel, bHardMode);
m_oFont.UpdateSize(dParentFontSize, m_dCoreFontSize);
m_oFont.UpdateSize(dFontSize);
break;
}
CASE(L"font-stretch"):
@ -188,7 +170,7 @@ namespace NSCSS
break;
m_oMargin.SetValues(pPropertie.second, unLevel, bHardMode);
m_oMargin.UpdateAll(dParentFontSize, m_dCoreFontSize);
m_oMargin.UpdateAll(dFontSize);
break;
}
CASE(L"margin-top"):
@ -208,7 +190,7 @@ namespace NSCSS
break;
m_oMargin.SetRight(pPropertie.second, unLevel, bHardMode);
m_oMargin.UpdateRight(dParentFontSize, m_dCoreFontSize);
m_oMargin.UpdateRight(dFontSize);
break;
}
CASE(L"margin-bottom"):
@ -218,7 +200,7 @@ namespace NSCSS
break;
m_oMargin.SetBottom(pPropertie.second, unLevel, bHardMode);
m_oMargin.UpdateBottom(dParentFontSize, m_dCoreFontSize);
m_oMargin.UpdateBottom(dFontSize);
break;
}
CASE(L"margin-left"):
@ -229,7 +211,7 @@ namespace NSCSS
break;
m_oMargin.SetLeft(pPropertie.second, unLevel, bHardMode);
m_oMargin.UpdateLeft(dParentFontSize, m_dCoreFontSize);
m_oMargin.UpdateLeft(dFontSize);
break;
}
//PADDING
@ -237,35 +219,35 @@ namespace NSCSS
CASE(L"mso-padding-alt"):
{
m_oPadding.SetValues(pPropertie.second, unLevel, bHardMode);
m_oPadding.UpdateAll(dParentFontSize, m_dCoreFontSize);
m_oPadding.UpdateAll(dFontSize);
break;
}
CASE(L"padding-top"):
CASE(L"mso-padding-top-alt"):
{
m_oPadding.SetTop(pPropertie.second, unLevel, bHardMode);
m_oPadding.UpdateTop(dParentFontSize, m_dCoreFontSize);
m_oPadding.UpdateTop(dFontSize);
break;
}
CASE(L"padding-right"):
CASE(L"mso-padding-right-alt"):
{
m_oPadding.SetRight(pPropertie.second, unLevel, bHardMode);
m_oPadding.UpdateRight(dParentFontSize, m_dCoreFontSize);
m_oPadding.UpdateRight(dFontSize);
break;
}
CASE(L"padding-bottom"):
CASE(L"mso-padding-bottom-alt"):
{
m_oPadding.SetBottom(pPropertie.second, unLevel, bHardMode);
m_oPadding.UpdateBottom(dParentFontSize, m_dCoreFontSize);
m_oPadding.UpdateBottom(dFontSize);
break;
}
CASE(L"padding-left"):
CASE(L"mso-padding-left-alt"):
{
m_oPadding.SetLeft(pPropertie.second, unLevel, bHardMode);
m_oPadding.UpdateLeft(dParentFontSize, m_dCoreFontSize);
m_oPadding.UpdateLeft(dFontSize);
break;
}
// TEXT
@ -319,7 +301,6 @@ namespace NSCSS
}
//BORDER TOP
CASE(L"border-top"):
CASE(L"mso-border-top-alt"):
{
m_oBorder.SetTopSide(pPropertie.second, unLevel, bHardMode);
break;
@ -341,7 +322,6 @@ namespace NSCSS
}
//BORDER RIGHT
CASE(L"border-right"):
CASE(L"mso-border-right-alt"):
{
m_oBorder.SetRightSide(pPropertie.second, unLevel, bHardMode);
break;
@ -363,7 +343,6 @@ namespace NSCSS
}
//BORDER bottom
CASE(L"border-bottom"):
CASE(L"mso-border-bottom-alt"):
{
m_oBorder.SetBottomSide(pPropertie.second, unLevel, bHardMode);
break;
@ -385,7 +364,6 @@ namespace NSCSS
}
//BORDER LEFT
CASE(L"border-left"):
CASE(L"mso-border-left-alt"):
{
m_oBorder.SetLeftSide(pPropertie.second, unLevel, bHardMode);
break;
@ -444,17 +422,6 @@ namespace NSCSS
m_oDisplay.SetVAlign(pPropertie.second, unLevel, bHardMode);
break;
}
CASE(L"white-space"):
{
m_oDisplay.SetWhiteSpace(pPropertie.second, unLevel, bHardMode);
break;
}
//TRANSFORM
CASE(L"transform"):
{
m_oTransform.SetMatrix(pPropertie.second, unLevel, bHardMode);
break;
}
default: AddOtherStyle(pPropertie, unLevel, bHardMode);
}
}
@ -535,7 +502,7 @@ namespace NSCSS
{
return m_sId;
}
bool CCompiledStyle::HaveThisParent(const std::wstring &wsParentName) const
{
return m_arParentsStyles.end() != m_arParentsStyles.find(wsParentName);

View File

@ -1,6 +1,9 @@
#ifndef CCOMPILEDSTYLE_H
#define CCOMPILEDSTYLE_H
#include "CssCalculator_global.h"
#include "ConstValues.h"
#include <map>
#include <set>
#include <vector>
@ -19,7 +22,6 @@ namespace NSCSS
unsigned short int m_nDpi;
UnitMeasure m_UnitMeasure;
double m_dCoreFontSize;
public:
NSProperties::CFont m_oFont;
NSProperties::CIndent m_oMargin;
@ -28,12 +30,11 @@ namespace NSCSS
NSProperties::CText m_oText;
NSProperties::CBorder m_oBorder;
NSProperties::CDisplay m_oDisplay;
NSProperties::CTransform m_oTransform;
CCompiledStyle();
CCompiledStyle(const CCompiledStyle& oStyle);
virtual ~CCompiledStyle();
~CCompiledStyle();
void SetDpi(const unsigned short& uiDpi);
void SetUnitMeasure(const UnitMeasure& enUnitMeasure);

View File

@ -13,14 +13,14 @@ namespace NSCSS
delete m_pInternal;
}
bool CCssCalculator::CalculateCompiledStyle(std::vector<CNode>& arSelectors) const
CCompiledStyle CCssCalculator::GetCompiledStyle(const std::vector<CNode> &arSelectors, const bool& bIsSettings, const UnitMeasure& unitMeasure) const
{
return m_pInternal->CalculateCompiledStyle(arSelectors);
return m_pInternal->GetCompiledStyle(arSelectors, bIsSettings, unitMeasure);
}
std::wstring CCssCalculator::CalculateStyleId(const CNode& oNode)
bool CCssCalculator::GetCompiledStyle(CCompiledStyle &oStyle, const std::vector<CNode> &arSelectors, const bool &bIsSettings, const UnitMeasure &unitMeasure) const
{
return m_pInternal->CalculateStyleId(oNode);
return m_pInternal->GetCompiledStyle(oStyle, arSelectors, bIsSettings, unitMeasure);
}
bool CCssCalculator::CalculatePageStyle(NSProperties::CPage& oPageData, const std::vector<CNode> &arSelectors)
@ -43,11 +43,26 @@ namespace NSCSS
m_pInternal->AddStylesFromFile(wsFileName);
}
void CCssCalculator::SetUnitMeasure(const UnitMeasure& nType)
{
m_pInternal->SetUnitMeasure(nType);
}
void CCssCalculator::SetDpi(const unsigned short int& nValue)
{
m_pInternal->SetDpi(nValue);
}
void CCssCalculator::SetBodyTree(const CTree &oTree)
{
m_pInternal->SetBodyTree(oTree);
}
UnitMeasure CCssCalculator::GetUnitMeasure() const
{
return m_pInternal->GetUnitMeasure();
}
std::wstring CCssCalculator::GetEncoding() const
{
return m_pInternal->GetEncoding();
@ -58,31 +73,6 @@ namespace NSCSS
return m_pInternal->GetDpi();
}
bool CCssCalculator::HaveStylesById(const std::wstring& wsId) const
{
return m_pInternal->HaveStylesById(wsId);
}
void CCssCalculator::ClearPageData()
{
m_pInternal->ClearPageData();
}
void CCssCalculator::ClearEmbeddedStyles()
{
m_pInternal->ClearEmbeddedStyles();
}
void CCssCalculator::ClearAllowedStyleFiles()
{
m_pInternal->ClearAllowedStyleFiles();
}
void CCssCalculator::ClearStylesFromFile(const std::wstring& wsFilePath)
{
m_pInternal->ClearStylesFromFile(wsFilePath);
}
void CCssCalculator::Clear()
{
m_pInternal->Clear();

View File

@ -2,8 +2,10 @@
#define CCSSCALCULATOR_H
#include "CssCalculator_global.h"
#include "StyleProperties.h"
#include "CNode.h"
#include "CCompiledStyle.h"
#include "ConstValues.h"
#include <iostream>
#include <map>
#include <vector>
namespace NSCSS
@ -17,9 +19,9 @@ namespace NSCSS
CCssCalculator();
~CCssCalculator();
bool CalculateCompiledStyle(std::vector<CNode>& arSelectors) const;
CCompiledStyle GetCompiledStyle(const std::vector<CNode> &arSelectors, const bool& bIsSettings = false, const UnitMeasure& unitMeasure = Point) const;
bool GetCompiledStyle(CCompiledStyle& oStyle, const std::vector<CNode> &arSelectors, const bool& bIsSettings = false, const UnitMeasure& unitMeasure = Point) const;
std::wstring CalculateStyleId(const CNode& oNode);
bool CalculatePageStyle(NSProperties::CPage& oPageData, const std::vector<CNode> &arSelectors);
// void AddStyle(const std::vector<std::string>& sSelectors, const std::string& sStyle);
@ -27,17 +29,14 @@ namespace NSCSS
void AddStyles (const std::wstring& wsStyle);
void AddStylesFromFile(const std::wstring& wsFileName);
void SetUnitMeasure(const UnitMeasure& nType);
void SetDpi(const unsigned short int& nValue);
void SetBodyTree(const CTree &oTree);
UnitMeasure GetUnitMeasure() const;
std::wstring GetEncoding() const;
unsigned short int GetDpi() const;
bool HaveStylesById(const std::wstring& wsId) const;
void ClearPageData();
void ClearEmbeddedStyles();
void ClearAllowedStyleFiles();
void ClearStylesFromFile(const std::wstring& wsFilePath);
void Clear();
};
}

File diff suppressed because it is too large Load Diff

View File

@ -3,9 +3,11 @@
#include <vector>
#include <map>
#include <set>
#include <list>
#include <functional>
#include "CElement.h"
#include "StyleProperties.h"
#include "ConstValues.h"
#include "CUnitMeasureConverter.h"
#include "../../katana-parser/src/katana.h"
#ifdef CSS_CALCULATOR_WITH_XHTML
@ -14,43 +16,16 @@
namespace NSCSS
{
class CStyleStorage
class CCssCalculator_Private
{
public:
CStyleStorage();
~CStyleStorage();
unsigned short int m_nDpi;
unsigned short int m_nCountNodes;
UnitMeasure m_UnitMeasure;
void Clear();
std::list<std::wstring> m_arFiles;
void AddStyles(const std::string& sStyle);
void AddStyles(const std::wstring& wsStyle);
void AddStylesFromFile(const std::wstring& wsFileName);
std::map<std::wstring, CElement*> m_mData;
void ClearEmbeddedStyles();
void ClearAllowedStyleFiles();
void ClearStylesFromFile(const std::wstring& wsFileName);
#ifdef CSS_CALCULATOR_WITH_XHTML
void AddPageData(const std::wstring& wsPageName, const std::wstring& wsStyles);
void SetPageData(NSProperties::CPage& oPage, const std::map<std::wstring, std::wstring>& mData, unsigned int unLevel, bool bHardMode = false);
std::map<std::wstring, std::wstring> GetPageData(const std::wstring& wsPageName);
void ClearPageData();
#endif
const CElement* FindElement(const std::wstring& wsSelector) const;
private:
typedef struct
{
std::wstring m_wsStyleFilepath;
std::map<std::wstring, CElement*> m_mStyleData;
} TStyleFileData;
std::set<std::wstring> m_arEmptyStyleFiles;
std::set<std::wstring> m_arAllowedStyleFiles;
std::vector<TStyleFileData*> m_arStyleFiles;
std::map<std::wstring, CElement*> m_mEmbeddedStyleData;
#ifdef CSS_CALCULATOR_WITH_XHTML
typedef struct
{
std::vector<std::wstring> m_wsNames;
@ -58,14 +33,29 @@ namespace NSCSS
} TPageData;
std::vector<TPageData> m_arPageDatas;
std::map<StatistickElement, unsigned int> *m_mStatictics; // Количество повторений свойств id и style у селекторов
#ifdef CSS_CALCULATOR_WITH_XHTML
std::map<std::vector<CNode>, CCompiledStyle> m_mUsedStyles;
std::map<std::wstring, std::wstring> GetPageData(const std::wstring& wsPageName);
void SetPageData(NSProperties::CPage& oPage, const std::map<std::wstring, std::wstring>& mData, unsigned int unLevel, bool bHardMode = false);
std::vector<std::wstring> CalculateAllNodes(const std::vector<CNode>& arSelectors);
void FindPrevAndKindElements(const CElement* pElement, const std::vector<std::wstring>& arNextNodes, std::vector<CElement*>& arFindedElements, const std::wstring& wsName, const std::vector<std::wstring>& arClasses = {});
std::vector<CElement*> FindElements(std::vector<std::wstring>& arNodes, std::vector<std::wstring>& arNextNodes, bool bIsSettings);
#endif
private:
void AddStyles(const std::string& sStyle, std::map<std::wstring, CElement*>& mStyleData);
void GetStylesheet(const KatanaStylesheet* oStylesheet, std::map<std::wstring, CElement*>& mStyleData);
void GetRule(const KatanaRule* oRule, std::map<std::wstring, CElement*>& mStyleData);
std::wstring m_sEncoding;
void GetStyleRule(const KatanaStyleRule* oRule, std::map<std::wstring, CElement*>& mStyleData);
void AddPageData(const std::wstring& wsPageName, const std::wstring& wsStyles);
void GetStylesheet(const KatanaStylesheet* oStylesheet);
void GetRule(const KatanaRule* oRule);
void GetStyleRule(const KatanaStyleRule* oRule);
std::wstring GetValueList(const KatanaArray* oValues);
@ -75,61 +65,35 @@ namespace NSCSS
std::map<std::wstring, std::wstring> GetDeclarationList(const KatanaArray* oDeclarations) const;
std::pair<std::wstring, std::wstring> GetDeclaration(const KatanaDeclaration* oDecl) const;
void GetOutputData(KatanaOutput* oOutput, std::map<std::wstring, CElement*>& mStyleData);
void GetOutputData(KatanaOutput* oOutput);
const CElement* FindSelectorFromStyleData(const std::wstring& wsSelector, const std::map<std::wstring, CElement*>& mStyleData) const;
};
class CCssCalculator_Private
{
unsigned short int m_nDpi;
unsigned short int m_nCountNodes;
CStyleStorage m_oStyleStorage;
#ifdef CSS_CALCULATOR_WITH_XHTML
std::map<std::vector<CNode>, CCompiledStyle> m_mUsedStyles;
void SetPageData(NSProperties::CPage& oPage, const std::map<std::wstring, std::wstring>& mData, unsigned int unLevel, bool bHardMode = false);
std::map<std::wstring, std::wstring> GetPageData(const std::wstring &wsPageName);
#endif
void FindPrevAndKindElements(const CElement* pElement, const std::vector<std::wstring>& arNextNodes, std::vector<const CElement*>& arFindedElements, const std::wstring& wsName, const std::vector<std::wstring>& arClasses = {});
std::wstring m_sEncoding;
public:
CCssCalculator_Private();
~CCssCalculator_Private();
#ifdef CSS_CALCULATOR_WITH_XHTML
bool CalculateCompiledStyle(std::vector<CNode>& arSelectors);
CCompiledStyle GetCompiledStyle(const std::vector<CNode> &arSelectors, const bool& bIsSettings = false, const UnitMeasure& unitMeasure = Point);
bool GetCompiledStyle(CCompiledStyle& oStyle, const std::vector<CNode> &arSelectors, const bool& bIsSettings = false, const UnitMeasure& unitMeasure = Point);
std::wstring CalculateStyleId(const CNode& oNode);
bool CalculatePageStyle(NSProperties::CPage& oPageData, const std::vector<CNode> &arSelectors);
void ClearPageData();
#endif
std::vector<std::wstring> CalculateAllNodes(const std::vector<CNode>& arSelectors, unsigned int unStart, unsigned int unEnd);
std::vector<const CElement*> FindElements(std::vector<std::wstring>& arNodes, std::vector<std::wstring>& arNextNodes);
void AddStyles(const std::string& sStyle);
void AddStyles(const std::wstring& wsStyle);
void AddStylesFromFile(const std::wstring& wsFileName);
void SetUnitMeasure(const UnitMeasure& nType);
void SetDpi(unsigned short int nValue);
void SetBodyTree(const CTree &oTree);
UnitMeasure GetUnitMeasure() const;
std::wstring GetEncoding() const;
unsigned short int GetDpi() const;
bool HaveStylesById(const std::wstring& wsId) const;
const std::map<std::wstring, CElement*>* GetData() const;
void ClearEmbeddedStyles();
void ClearAllowedStyleFiles();
void ClearStylesFromFile(const std::wstring& wsFilePath);
void Clear();
};
inline bool IsTableElement(const std::wstring& wsNameTag);
};
}
#endif // CCSSCALCULATOR_PRIVATE_H

View File

@ -40,7 +40,6 @@ namespace NSCSS
{
m_sSelector = sSelector;
m_sFullSelector = m_sSelector;
UpdateWeight();
}
void NSCSS::CElement::AddPropertie(const std::wstring &sName, const std::wstring& sValue)
@ -68,7 +67,6 @@ namespace NSCSS
m_arPrevElements.push_back(oPrevElement);
oPrevElement->m_sFullSelector += L' ' + m_sFullSelector;
UpdateWeight();
}
void CElement::AddKinElement(CElement *oKinElement)
@ -78,7 +76,6 @@ namespace NSCSS
m_arKinElements.push_back(oKinElement);
oKinElement->m_sFullSelector += m_sFullSelector;
oKinElement->UpdateWeight();
}
std::map<std::wstring, std::wstring> CElement::GetStyle() const
@ -176,14 +173,14 @@ namespace NSCSS
return arElements;
}
std::vector<CElement *> CElement::GetPrevElements(const std::vector<std::wstring>::const_iterator& oNodesBegin, const std::vector<std::wstring>::const_iterator& oNodesEnd) const
std::vector<CElement *> CElement::GetPrevElements(const std::vector<std::wstring>::const_reverse_iterator& oNodesRBegin, const std::vector<std::wstring>::const_reverse_iterator& oNodesREnd) const
{
if (oNodesBegin >= oNodesEnd || m_arPrevElements.empty())
if (oNodesRBegin >= oNodesREnd || m_arPrevElements.empty())
return std::vector<CElement*>();
std::vector<CElement*> arElements;
for (std::vector<std::wstring>::const_iterator iWord = oNodesBegin; iWord != oNodesEnd; ++iWord)
for (std::vector<std::wstring>::const_reverse_iterator iWord = oNodesRBegin; iWord != oNodesREnd; ++iWord)
{
if ((*iWord)[0] == L'.' && ((*iWord).find(L" ") != std::wstring::npos))
{
@ -195,7 +192,7 @@ namespace NSCSS
if (oPrevElement->m_sSelector == wsClass)
{
arElements.push_back(oPrevElement);
std::vector<CElement*> arTempElements = oPrevElement->GetPrevElements(iWord + 1, oNodesEnd);
std::vector<CElement*> arTempElements = oPrevElement->GetPrevElements(iWord + 1, oNodesREnd);
arElements.insert(arElements.end(), arTempElements.begin(), arTempElements.end());
}
}
@ -208,8 +205,9 @@ namespace NSCSS
if (oPrevElement->m_sSelector == *iWord)
{
arElements.push_back(oPrevElement);
std::vector<CElement*> arTempElements = oPrevElement->GetPrevElements(iWord + 1, oNodesEnd);
std::vector<CElement*> arTempElements = oPrevElement->GetPrevElements(iWord + 1, oNodesREnd);
arElements.insert(arElements.end(), arTempElements.begin(), arTempElements.end());
// return arElements;
}
}
}
@ -232,14 +230,11 @@ namespace NSCSS
return NULL;
}
void CElement::UpdateWeight()
std::vector<unsigned short> CElement::GetWeight()
{
if (m_arWeight.empty())
m_arWeight = NS_STATIC_FUNCTIONS::GetWeightSelector(m_sFullSelector);
}
std::vector<unsigned short> CElement::GetWeight() const
{
return m_arWeight;
}

View File

@ -39,13 +39,12 @@ namespace NSCSS
std::map<std::wstring, std::wstring> GetFullStyle(const std::vector<CNode>& arSelectors) const;
std::map<std::wstring, std::wstring> GetFullStyle(const std::vector<std::wstring>& arNodes) const;
std::vector<CElement *> GetNextOfKin(const std::wstring& sName, const std::vector<std::wstring>& arClasses = {}) const;
std::vector<CElement *> GetPrevElements(const std::vector<std::wstring>::const_iterator& oNodesBegin, const std::vector<std::wstring>::const_iterator& oNodesEnd) const;
std::vector<CElement *> GetPrevElements(const std::vector<std::wstring>::const_reverse_iterator& oNodesRBegin, const std::vector<std::wstring>::const_reverse_iterator& oNodesREnd) const;
std::map<std::wstring, std::wstring> GetConvertStyle(const std::vector<CNode>& arNodes) const;
CElement *FindPrevElement(const std::wstring& sSelector) const;
void UpdateWeight();
std::vector<unsigned short int> GetWeight() const;
std::vector<unsigned short int> GetWeight();
void IncreasedWeight();
};
}

View File

@ -1,67 +1,19 @@
#include "CNode.h"
#ifdef CSS_CALCULATOR_WITH_XHTML
#include "CCompiledStyle.h"
#endif
namespace NSCSS
{
CNode::CNode()
#ifdef CSS_CALCULATOR_WITH_XHTML
: m_pCompiledStyle(new CCompiledStyle())
#endif
{}
CNode::CNode(const CNode& oNode)
: m_wsName(oNode.m_wsName), m_wsClass(oNode.m_wsClass), m_wsId(oNode.m_wsId),
m_wsStyle(oNode.m_wsStyle), m_mAttributes(oNode.m_mAttributes)
{
#ifdef CSS_CALCULATOR_WITH_XHTML
m_pCompiledStyle = new CCompiledStyle();
*m_pCompiledStyle = *oNode.m_pCompiledStyle;
#endif
}
CNode::CNode(const std::wstring& wsName, const std::wstring& wsClass, const std::wstring& wsId)
CNode::CNode(std::wstring wsName, std::wstring wsClass, std::wstring wsId)
: m_wsName(wsName), m_wsClass(wsClass), m_wsId(wsId)
#ifdef CSS_CALCULATOR_WITH_XHTML
, m_pCompiledStyle(new CCompiledStyle())
#endif
{}
CNode::~CNode()
{
#ifdef CSS_CALCULATOR_WITH_XHTML
if (nullptr != m_pCompiledStyle)
delete m_pCompiledStyle;
#endif
}
bool CNode::Empty() const
{
return m_wsName.empty() && m_wsClass.empty() && m_wsId.empty() && m_wsStyle.empty();
}
#ifdef CSS_CALCULATOR_WITH_XHTML
void CNode::SetCompiledStyle(CCompiledStyle* pCompiledStyle)
{
if (nullptr != m_pCompiledStyle)
delete m_pCompiledStyle;
m_pCompiledStyle = new CCompiledStyle();
*m_pCompiledStyle = *pCompiledStyle;
}
#endif
void CNode::Clear()
{
m_wsName .clear();
m_wsClass .clear();
m_wsId .clear();
m_wsStyle .clear();
m_mAttributes.clear();
}
std::vector<std::wstring> CNode::GetData() const
{
std::vector<std::wstring> arValues;

View File

@ -7,9 +7,6 @@
namespace NSCSS
{
#ifdef CSS_CALCULATOR_WITH_XHTML
class CCompiledStyle;
#endif
class CNode
{
public:
@ -18,25 +15,13 @@ namespace NSCSS
std::wstring m_wsId; // Id тэга
std::wstring m_wsStyle; // Стиль тэга
std::map<std::wstring, std::wstring> m_mAttributes; // Остальные аттрибуты тэга
//TODO:: возможно использование std::wstring излишне
#ifdef CSS_CALCULATOR_WITH_XHTML
CCompiledStyle *m_pCompiledStyle;
#endif
public:
CNode();
CNode(const CNode& oNode);
CNode(const std::wstring& wsName, const std::wstring& wsClass, const std::wstring& wsId);
~CNode();
CNode(std::wstring wsName, std::wstring wsClass, std::wstring wsId);
bool Empty() const;
#ifdef CSS_CALCULATOR_WITH_XHTML
void SetCompiledStyle(CCompiledStyle* pCompiledStyle);
#endif
void Clear();
std::vector<std::wstring> GetData() const;
bool operator< (const CNode& oNode) const;
bool operator== (const CNode& oNode) const;

View File

@ -149,7 +149,7 @@ namespace NSCSS
case NSCSS::Millimeter:
return dValue * 0.01764;
case NSCSS::Inch:
return dValue / 1440.;
return dValue * 1440.;
case NSCSS::Peak:
return dValue * 0.004167; // 0.004167 = 6 / 1440
default:

View File

@ -2,6 +2,23 @@
namespace NSCSS
{
bool StatistickElement::operator<(const StatistickElement &oStatistickElement) const
{
return sValue < oStatistickElement.sValue;
}
void CTree::CountingNumberRepetitions(const CTree &oTree, std::map<StatistickElement, unsigned int> &mStatictics)
{
if (!oTree.m_oNode.m_wsId.empty())
++mStatictics[StatistickElement{StatistickElement::IsId, L'#' + oTree.m_oNode.m_wsId}];
if (!oTree.m_oNode.m_wsStyle.empty())
++mStatictics[StatistickElement{StatistickElement::IsStyle, oTree.m_oNode.m_wsStyle}];
if (!oTree.m_arrChild.empty())
for (const CTree& oChildren : oTree.m_arrChild)
CountingNumberRepetitions(oChildren, mStatictics);
}
namespace NSConstValues
{
const std::map<std::wstring, std::wstring> COLORS
@ -65,7 +82,7 @@ namespace NSCSS
{L"gainsboro", L"DCDCDC"}, {L"lightgray", L"D3D3D3"}, {L"silver", L"C0C0C0"},
{L"darkgray", L"A9A9A9"}, {L"gray", L"808080"}, {L"dimgray", L"696969"},
{L"lightslategray", L"778899"}, {L"slategray", L"708090"}, {L"darkslategray", L"2F4F4F"},
{L"black", L"000000"}, {L"grey", L"808080"},
{L"black", L"000000"},
/* Outdated */
{L"windowtext", L"000000"}, {L"transparent", L"000000"}
};

View File

@ -16,6 +16,26 @@ namespace NSCSS
ScalingDirectionY = 2
} ScalingDirection;
struct StatistickElement
{
enum TypeElement
{
IsStyle = 0,
IsId
} m_enType;
std::wstring sValue;
bool operator<(const StatistickElement& oStatistickElement) const;
};
struct CTree
{
NSCSS::CNode m_oNode;
std::vector<CTree> m_arrChild;
static void CountingNumberRepetitions(const CTree &oTree, std::map<StatistickElement, unsigned int> &mStatictics);
};
namespace NSConstValues
{
extern const std::map<std::wstring, std::wstring> COLORS;
@ -69,8 +89,7 @@ namespace NSCSS
R_Highlight,
R_Shd,
R_SmallCaps,
R_Kern,
R_Vanish
R_Kern
} RunnerProperties;
typedef enum

View File

@ -48,6 +48,7 @@ namespace NS_STATIC_FUNCTIONS
if (sEncoding.empty())
sEncoding = "utf-8";
if (!sEncoding.empty() && sEncoding != "utf-8" && sEncoding != "UTF-8")
{
NSUnicodeConverter::CUnicodeConverter oConverter;
@ -140,9 +141,7 @@ namespace NS_STATIC_FUNCTIONS
while (std::wstring::npos != unEnd)
{
if (unStart != unEnd)
arWords.emplace_back(wsLine.data() + unStart, unEnd - unStart + ((bWithSigns) ? 1 : 0));
arWords.emplace_back(wsLine.data() + unStart, unEnd - unStart + ((bWithSigns) ? 1 : 0));
unStart = wsLine.find_first_not_of(wsDelimiters, unEnd);
unEnd = wsLine.find_first_of(wsDelimiters, unStart);
}

File diff suppressed because it is too large Load Diff

View File

@ -4,49 +4,42 @@
#include <map>
#include <string>
#include <vector>
#include <sstream>
#include "../../../../DesktopEditor/graphics/Matrix.h"
#include "CUnitMeasureConverter.h"
#include <boost/optional.hpp>
#include "boost/blank.hpp"
#include <boost/variant2/variant.hpp>
namespace NSCSS
{
namespace NSProperties
{
#define NEXT_LEVEL UINT_MAX, true
template<typename T>
class CValueBase
class CValue
{
protected:
CValueBase()
: m_unLevel(0), m_bImportant(false)
{}
CValueBase(const CValueBase& oValue)
: m_oValue(oValue.m_oValue), m_unLevel(oValue.m_unLevel), m_bImportant(oValue.m_bImportant)
{}
CValueBase(const T& oValue, unsigned int unLevel, bool bImportant)
: m_oValue(oValue), m_unLevel(unLevel), m_bImportant(bImportant)
{}
friend class CString;
friend class CMatrix;
friend class CDigit;
friend class CColor;
friend class CEnum;
T m_oValue;
unsigned int m_unLevel;
bool m_bImportant;
public:
virtual bool Empty() const = 0;
virtual void Clear() = 0;
CValue(const T& oValue, unsigned int unLevel, bool bImportant) :
m_oValue(oValue), m_unLevel(unLevel), m_bImportant(bImportant)
{
}
virtual bool SetValue(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode) = 0;
virtual bool Empty() const = 0;
virtual void Clear() = 0;
virtual int ToInt() const = 0;
virtual double ToDouble() const = 0;
virtual std::wstring ToWString() const = 0;
static void Equation(CValueBase &oFirstValue, CValueBase &oSecondValue)
static void Equation(CValue &oFirstValue, CValue &oSecondValue)
{
if (oFirstValue.m_bImportant && !oSecondValue.m_bImportant && oFirstValue.Empty())
oSecondValue.Clear();
@ -61,39 +54,18 @@ namespace NSCSS
}
}
static bool LevelIsSame(const CValueBase& oFirstValue, const CValueBase& oSecondValue)
static bool LevelIsSame(const CValue& oFirstValue, const CValue& oSecondValue)
{
return oFirstValue.m_unLevel == oSecondValue.m_unLevel;
}
friend bool operator==(const CValueBase& oLeftValue, const CValueBase& oRightValue)
{
if (oLeftValue.Empty() && oRightValue.Empty())
return true;
bool operator==(const T& oValue) const { return m_oValue == oValue; }
bool operator>=(const T& oValue) const { return m_oValue >= oValue; }
bool operator<=(const T& oValue) const { return m_oValue <= oValue; }
bool operator> (const T& oValue) const { return m_oValue > oValue; }
bool operator< (const T& oValue) const { return m_oValue < oValue; }
if (( oLeftValue.Empty() && !oRightValue.Empty()) ||
(!oLeftValue.Empty() && oRightValue.Empty()))
return false;
return oLeftValue.m_oValue == oRightValue.m_oValue;
}
friend bool operator!=(const CValueBase& oLeftValue, const CValueBase& oRightValue)
{
return !(oLeftValue == oRightValue);
}
bool operator==(const T& oValue) const
{
return m_oValue == oValue;
}
bool operator!=(const T& oValue) const
{
return m_oValue != oValue;
}
virtual CValueBase& operator =(const CValueBase& oValue)
virtual CValue& operator =(const CValue& oValue)
{
m_oValue = oValue.m_oValue;
m_unLevel = oValue.m_unLevel;
@ -102,93 +74,64 @@ namespace NSCSS
return *this;
}
virtual CValueBase& operator =(const T& oValue)
CValue& operator =(const T& oValue)
{
m_oValue = oValue;
//m_oValue = oValue.m_oValue;
return *this;
}
virtual CValueBase& operator+=(const CValueBase& oValue)
CValue& operator+=(const CValue& oValue)
{
if (m_unLevel > oValue.m_unLevel || (m_bImportant && !oValue.m_bImportant) || oValue.Empty())
return *this;
*this = oValue;
m_oValue = oValue.m_oValue;
m_unLevel = oValue.m_unLevel;
m_bImportant = oValue.m_bImportant;
return *this;
}
};
template<typename T>
class CValueOptional : public CValueBase<boost::optional<T>>
{
protected:
CValueOptional() = default;
CValueOptional(const T& oValue, unsigned int unLevel = 0, bool bImportant = false)
: CValueBase<boost::optional<T>>(oValue, unLevel, bImportant)
{}
public:
virtual bool Empty() const override
bool operator==(const CValue& oValue) const
{
return !this->m_oValue.has_value();
}
void Clear() override
{
this->m_oValue.reset();
this->m_unLevel = 0;
this->m_bImportant = false;
}
bool operator==(const T& oValue) const
{
if (!this->m_oValue.has_value())
return false;
return this->m_oValue.value() == oValue;
}
virtual CValueOptional& operator=(const T& oValue)
{
this->m_oValue = oValue;
return *this;
return m_oValue == oValue.m_oValue;
}
};
class CString : public CValueOptional<std::wstring>
class CString : public CValue<std::wstring>
{
public:
CString() = default;
CString(const std::wstring& wsValue, unsigned int unLevel = 0, bool bImportant = false);
CString();
CString(const std::wstring& wsValue, unsigned int unLevel, bool bImportant = false);
bool SetValue(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode) override;
bool SetValue(const std::wstring& wsValue, const std::vector<std::wstring>& arValiableValues, unsigned int unLevel, bool bHardMode);
bool SetValue(const std::wstring& wsValue, const std::map<std::wstring, std::wstring>& arValiableValues, unsigned int unLevel, bool bHardMode);
bool Empty() const override;
void Clear() override;
int ToInt() const override;
double ToDouble() const override;
std::wstring ToWString() const override;
bool operator==(const wchar_t* pValue) const;
bool operator!=(const wchar_t* pValue) const;
using CValueOptional<std::wstring>::operator=;
CString& operator+=(const CString& oString);
};
class CDigit : public CValueOptional<double>
class CDigit : public CValue<double>
{
UnitMeasure m_enUnitMeasure;
double ConvertValue(double dPrevValue, UnitMeasure enUnitMeasure) const;
public:
CDigit();
CDigit(const double& dValue, unsigned int unLevel = 0, bool bImportant = false);
CDigit(double dValue);
CDigit(double dValue, unsigned int unLevel, bool bImportant = false);
bool SetValue(const std::wstring& wsValue, unsigned int unLevel = 0, bool bHardMode = true) override;
bool SetValue(const CDigit& oValue);
bool SetValue(const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel = 0, bool bHardMode = true);
bool Empty() const override;
bool Zero() const;
void Clear() override;
@ -204,7 +147,7 @@ namespace NSCSS
UnitMeasure GetUnitMeasure() const;
bool operator==(const double& dValue) const;
bool operator==(const double& oValue) const;
bool operator==(const CDigit& oDigit) const;
bool operator!=(const double& oValue) const;
@ -219,19 +162,11 @@ namespace NSCSS
CDigit& operator+=(const CDigit& oDigit);
CDigit& operator-=(const CDigit& oDigit);
CDigit& operator+=(const double& dValue);
CDigit& operator-=(const double& dValue);
CDigit& operator*=(const double& dValue);
CDigit& operator/=(const double& dValue);
using CValueOptional<double>::operator=;
private:
UnitMeasure m_enUnitMeasure;
double ConvertValue(double dPrevValue, UnitMeasure enUnitMeasure) const;
template <typename Operation>
CDigit ApplyOperation(const CDigit& oDigit, Operation operation) const;
CDigit& operator+=(double dValue);
CDigit& operator-=(double dValue);
CDigit& operator*=(double dValue);
CDigit& operator/=(double dValue);
CDigit& operator =(double dValue);
};
struct TRGB
@ -242,108 +177,71 @@ namespace NSCSS
bool Empty() const;
int ToInt() const;
bool operator==(const TRGB& oRGB) const;
bool operator!=(const TRGB& oRGB) const;
};
class CURL
{
public:
CURL();
bool Empty() const;
bool LinkToId() const;
void Clear();
bool SetValue(const std::wstring& wsValue);
std::wstring GetValue() const;
bool operator==(const CURL& oValue) const;
bool operator!=(const CURL& oValue) const;
private:
std::wstring m_wsValue;
};
typedef enum
{
ColorEmpty,
ColorNone,
ColorRGB,
ColorHEX,
ColorUrl,
ColorContextStroke,
ColorContextFill
} EColorType;
ColorUrl
} ColorType;
class CColorValue
class Q_DECL_EXPORT CColorValue
{
using color_value = boost::variant2::variant<boost::blank, std::wstring, TRGB, CURL>;
protected:
EColorType m_eType;
public:
CColorValue();
CColorValue(const CColorValue& oValue);
CColorValue(const std::wstring& wsValue);
CColorValue(const TRGB& oValue);
CColorValue(const CURL& oValue);
CColorValue(const CColorValue& oColorValue);
~CColorValue();
EColorType GetType() const;
void SetRGB(unsigned char uchR, unsigned char uchG, unsigned char uchB);
void SetRGB(const TRGB& oRGB);
void SetHEX(const std::wstring& wsValue);
void SetUrl(const std::wstring& wsValue);
void SetNone();
bool operator==(const CColorValue& oValue) const;
void Clear();
color_value m_oValue;
bool Empty() const;
ColorType m_enType;
void* m_pColor = NULL;
std::wstring GetColor() const;
bool operator==(const CColorValue& oColorValue) const;
CColorValue& operator= (const CColorValue& oColorValue);
};
class CColorValueContextStroke : public CColorValue
{
public:
CColorValueContextStroke();
};
class CColorValueContextFill : public CColorValue
{
public:
CColorValueContextFill();
};
class CColor : public CValueOptional<CColorValue>
class CColor : public CValue<CColorValue>
{
CDigit m_oOpacity;
static TRGB ConvertHEXtoRGB(const std::wstring& wsValue);
static std::wstring ConvertRGBtoHEX(const TRGB& oValue);
static std::wstring CutURL(const std::wstring& wsValue);
void SetEmpty(unsigned int unLevel = 0);
public:
CColor();
bool SetValue(const std::wstring& wsValue, unsigned int unLevel = 0, bool bHardMode = true) override;
bool SetOpacity(const std::wstring& wsValue, unsigned int unLevel = 0, bool bHardMode = true);
bool Empty() const override;
bool None() const;
bool Url() const;
void Clear() override;
EColorType GetType() const;
ColorType GetType() const;
double GetOpacity() const;
int ToInt() const override;
double ToDouble() const override;
std::wstring ToWString() const override;
std::wstring ToHEX() const;
std::wstring EquateToColor(const std::vector<std::pair<TRGB, std::wstring>>& arColors) const;
TRGB ToRGB() const;
static TRGB ConvertHEXtoRGB(const std::wstring& wsValue);
static std::wstring ConvertRGBtoHEX(const TRGB& oValue);
using CValueOptional<CColorValue>::operator=;
private:
CDigit m_oOpacity;
void SetEmpty(unsigned int unLevel = 0);
void SetRGB(unsigned char uchR, unsigned char uchG, unsigned char uchB);
void SetRGB(const TRGB& oRGB);
void SetHEX(const std::wstring& wsValue);
bool SetUrl(const std::wstring& wsValue);
void SetNone();
};
typedef enum
@ -359,7 +257,7 @@ namespace NSCSS
typedef std::vector<std::pair<std::vector<double>, TransformType>> MatrixValues;
class CMatrix : public CValueBase<MatrixValues>
class CMatrix : public CValue<MatrixValues>
{
std::vector<std::wstring> CutTransforms(const std::wstring& wsValue) const;
public:
@ -382,41 +280,32 @@ namespace NSCSS
void ApplyTranform(Aggplus::CMatrix& oMatrix, Aggplus::MatrixOrder order = Aggplus::MatrixOrderPrepend) const;
bool operator==(const CMatrix& oMatrix) const;
CMatrix& operator+=(const CMatrix& oMatrix);
CMatrix& operator-=(const CMatrix& oMatrix);
using CValueBase<MatrixValues>::operator=;
};
class CEnum : public CValueOptional<int>
class CEnum : public CValue<int>
{
std::map<std::wstring, int> m_mMap;
public:
CEnum();
bool SetValue(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode) override;
void SetMapping(const std::map<std::wstring, int>& mMap, int nDefaulvalue = -1);
int ToInt() const override;
bool Empty() const override;
void Clear() override;
using CValueOptional<int>::operator=;
CEnum &operator =(int nValue);
bool operator==(int nValue) const;
bool operator!=(int nValue) const;
int ToInt() const override;
private:
double ToDouble() const override;
std::wstring ToWString() const override;
int m_nDefaultValue;
std::map<std::wstring, int> m_mMap;
};
// PROPERTIES
typedef enum
{
Normal,
Nowrap,
Pre,
Pre_Line,
Pre_Wrap
} EWhiteSpace;
class CDisplay
{
public:
@ -436,8 +325,6 @@ namespace NSCSS
bool SetDisplay(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWhiteSpace(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
const CDigit& GetX() const;
const CDigit& GetY() const;
const CDigit& GetWidth() const;
@ -448,10 +335,7 @@ namespace NSCSS
const CString& GetDisplay() const;
const CEnum& GetWhiteSpace() const;
bool Empty() const;
void Clear();
CDisplay& operator+=(const CDisplay& oDisplay);
bool operator==(const CDisplay& oDisplay) const;
@ -465,8 +349,6 @@ namespace NSCSS
CString m_oVAlign;
CString m_oDisplay;
CEnum m_eWhiteSpace;
};
class CStroke
@ -545,7 +427,6 @@ namespace NSCSS
{
public:
CBorderSide();
CBorderSide(const CBorderSide& oBorderSide);
void Clear();
@ -553,12 +434,9 @@ namespace NSCSS
bool SetValue(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidth(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidth(const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetStyle(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetColor(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
void SetNone(unsigned int unLevel, bool bHardMode);
void Block();
void Unblock();
@ -574,7 +452,6 @@ namespace NSCSS
CBorderSide& operator+=(const CBorderSide& oBorderSide);
bool operator==(const CBorderSide& oBorderSide) const;
bool operator!=(const CBorderSide& oBorderSide) const;
CBorderSide& operator =(const CBorderSide& oBorderSide);
private:
CDigit m_oWidth;
@ -596,50 +473,39 @@ namespace NSCSS
CBorder();
void Clear();
void ClearLeftSide();
void ClearTopSide();
void ClearRightSide();
void ClearBottomSide();
static void Equation(CBorder &oFirstBorder, CBorder &oSecondBorder);
bool SetSides(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidth(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidth(const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetStyle(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetColor(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetSides(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidth(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetStyle(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetColor(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetCollapse(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
//Left Side
bool SetLeftSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidthLeftSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidthLeftSide (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetStyleLeftSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetColorLeftSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
//Top Side
bool SetTopSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidthTopSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidthTopSide (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetStyleTopSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetColorTopSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
//Right Side
bool SetRightSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidthRightSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidthRightSide (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetStyleRightSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetColorRightSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
//Bottom Side
bool SetBottomSide (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidthBottomSide(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidthBottomSide(const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetStyleBottomSide(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetColorBottomSide(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
void SetNone(unsigned int unLevel, bool bHardMode = false);
void Block();
void Unblock();
@ -656,7 +522,7 @@ namespace NSCSS
CBorder& operator+=(const CBorder& oBorder);
bool operator==(const CBorder& oBorder) const;
bool operator!=(const CBorder& oBorder) const;
CBorder& operator =(const CBorder& oBorder);
private:
CBorderSide m_oLeft;
@ -697,30 +563,6 @@ namespace NSCSS
bool operator==(const TTextDecoration& oTextDecoration) const;
};
typedef enum
{
Baseline,
Sub,
Super,
Percentage,
Length
} EBaselineShift;
class CBaselineShift
{
CEnum m_eType;
CDigit m_oValue;
public:
CBaselineShift();
bool Empty() const;
EBaselineShift GetType() const;
double GetValue() const;
bool SetValue(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
};
class CText
{
public:
@ -728,21 +570,15 @@ namespace NSCSS
static void Equation(CText &oFirstText, CText &oSecondText);
bool SetIndent (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetAlign (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetDecoration (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetColor (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetHighlight (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetBaselineShift (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetIndent (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetAlign (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetDecoration(const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetColor (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
const CDigit& GetIndent() const;
const CString& GetAlign() const;
const TTextDecoration& GetDecoration() const;
const CColor& GetColor() const;
const CColor& GetHighlight() const;
EBaselineShift GetBaselineShiftType() const;
double GetBaselineShiftValue() const;
bool Empty() const;
@ -753,12 +589,10 @@ namespace NSCSS
CText& operator+=(const CText& oText);
bool operator==(const CText& oText) const;
private:
CBaselineShift m_oBaselineShift;
TTextDecoration m_oDecoration;
CDigit m_oIndent;
CString m_oAlign;
CColor m_oColor;
CColor m_oHighlight;
};
class CIndent
@ -780,26 +614,17 @@ namespace NSCSS
bool SetBottom (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetLeft (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetValues (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetTop (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetRight (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetBottom (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetLeft (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
void UpdateAll (const double& dParentFontSize, const double& dCoreFontSize);
void UpdateTop (const double& dParentFontSize, const double& dCoreFontSize);
void UpdateRight (const double& dParentFontSize, const double& dCoreFontSize);
void UpdateBottom(const double& dParentFontSize, const double& dCoreFontSize);
void UpdateLeft (const double& dParentFontSize, const double& dCoreFontSize);
void UpdateAll (double dFontSize);
void UpdateTop (double dFontSize);
void UpdateRight (double dFontSize);
void UpdateBottom(double dFontSize);
void UpdateLeft (double dFontSize);
const CDigit& GetTop () const;
const CDigit& GetRight () const;
const CDigit& GetBottom() const;
const CDigit& GetLeft () const;
bool GetAfterAutospacing () const;
bool GetBeforeAutospacing() const;
bool Empty() const;
bool Zero() const;
@ -808,7 +633,7 @@ namespace NSCSS
bool operator!=(const CIndent& oIndent) const;
private:
bool SetValues(const std::wstring& wsTopValue, const std::wstring& wsRightValue, const std::wstring& wsBottomValue, const std::wstring& wsLeftValue, unsigned int unLevel, bool bHardMode = false);
void UpdateSide(CDigit& oSide, const double& dParentFontSize, const double& dCoreFontSize);
void UpdateSide(CDigit& oSide, double dFontSize);
CDigit m_oLeft;
CDigit m_oTop;
@ -827,7 +652,6 @@ namespace NSCSS
bool SetValue (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetSize (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetSize (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetLineHeight (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetFamily (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetStretch (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
@ -835,8 +659,8 @@ namespace NSCSS
bool SetVariant (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWeight (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
void UpdateSize(const double& dParentFontSize, const double& dCoreFontSize);
void UpdateLineHeight(const double& dParentFontSize, const double& dCoreFontSize);
void UpdateSize(double dFontSize);
void UpdateLineHeight(double dFontSize);
void Clear();
@ -877,12 +701,6 @@ namespace NSCSS
bool SetFooter (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetHeader (const std::wstring& wsValue, unsigned int unLevel, bool bHardMode = false);
bool SetWidth (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetHeight (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetMargin (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetFooter (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
bool SetHeader (const double& dValue, UnitMeasure enUnitMeasure, unsigned int unLevel, bool bHardMode = false);
const CDigit& GetWidth() const;
const CDigit& GetHeight() const;
const CIndent& GetMargin() const;

View File

@ -22,10 +22,10 @@ namespace NSCSS
: m_oStyle(oStyle), m_bIsPStyle(bIsPStyle)
{}
bool CheckArrays(const std::vector<std::wstring>& arInitial, const std::set<std::wstring>& arFirst, const std::set<std::wstring>& arSecond)
bool CheckArrays(const std::vector<std::wstring>& arInitial, const std::set<std::wstring>& arFirst, const std::set<std::wstring>& arSecond)
{
std::unordered_set<std::wstring> arInitialSet(arInitial.begin(), arInitial.end());
std::vector<std::wstring> arCommonElements1;
std::vector<std::wstring> arCommonElements2;
@ -316,7 +316,7 @@ namespace NSCSS
std::wstring wsTextAlign{oStyle.m_oText.GetAlign().ToWString()};
if (wsTextAlign.empty())
if (wsTextAlign.empty() && bInTable)
wsTextAlign = oStyle.m_oDisplay.GetHAlign().ToWString();
oXmlElement.AddPropertiesInP(PProperties::P_Jc, wsTextAlign);
@ -341,14 +341,12 @@ namespace NSCSS
sSpacingValue.reserve(128);
if (!oStyle.m_oMargin.GetTop().Empty() && !oStyle.m_oMargin.GetTop().Zero())
sSpacingValue += L"w:before=\"" + std::to_wstring(VALUE_TO_INT(oStyle.m_oMargin.GetTop(), NSCSS::Twips)) + L"\" w:beforeAutospacing=\"1\"";
else if (oStyle.m_oMargin.GetBottom().Zero() || bInTable)
sSpacingValue += L"w:before=\"0\" w:beforeAutospacing=\"1\"";
sSpacingValue += L"w:before=\"" + std::to_wstring(VALUE_TO_INT(oStyle.m_oMargin.GetTop(), NSCSS::Twips)) + L"\" w:beforeAutospacing=\"0\" ";
if (!oStyle.m_oMargin.GetBottom().Empty() && !oStyle.m_oMargin.GetBottom().Zero())
sSpacingValue += L" w:after=\"" + std::to_wstring(VALUE_TO_INT(oStyle.m_oMargin.GetBottom(), NSCSS::Twips)) + L"\" w:afterAutospacing=\"1\"";
sSpacingValue += L"w:after=\"" + std::to_wstring(VALUE_TO_INT(oStyle.m_oMargin.GetBottom(), NSCSS::Twips)) + L"\" w:afterAutospacing=\"0\" ";
else if (oStyle.m_oMargin.GetBottom().Zero() || bInTable)
sSpacingValue += L" w:after=\"0\" w:afterAutospacing=\"1\"";
sSpacingValue += L"w:after=\"0\" ";
if (!oStyle.m_oFont.GetLineHeight().Empty() && !oStyle.m_oFont.GetLineHeight().Zero())
{
@ -358,7 +356,7 @@ namespace NSCSS
sSpacingValue += L" w:line=\"" + wsLine + L"\" w:lineRule=\"" + wsLineRule + L"\"";
}
else if (oStyle.m_oFont.GetLineHeight().Zero() || bInTable)
sSpacingValue += L" w:lineRule=\"auto\" w:line=\"240\"";
sSpacingValue += L"w:lineRule=\"auto\" w:line=\"240\"";
if (!sSpacingValue.empty())
oXmlElement.AddPropertiesInP(PProperties::P_Spacing, sSpacingValue);
@ -470,6 +468,9 @@ namespace NSCSS
int nSpace{0};
if (NULL != pPadding && !pPadding->Empty() && !pPadding->Zero())
nSpace = pPadding->ToInt(NSCSS::Point);
return L"w:val=\"" + wsStyle + L"\" w:sz=\"" + std::to_wstring(nWidth) + + L"\" w:space=\"" + std::to_wstring(nSpace) + L"\" w:color=\"" + wsColor + L"\"";
}
@ -482,7 +483,7 @@ namespace NSCSS
return;
if (!oStyle.m_oFont.GetSize().Empty())
oXmlElement.AddPropertiesInR(RProperties::R_Sz, std::to_wstring(static_cast<int>(oStyle.m_oFont.GetSize().ToDouble(NSCSS::Point) * 2. * oStyle.m_oTransform.GetMatrix().GetFinalValue().sy() + 0.5))); // Значения шрифта увеличивает на 2
oXmlElement.AddPropertiesInR(RProperties::R_Sz, std::to_wstring(static_cast<int>(oStyle.m_oFont.GetSize().ToDouble(NSCSS::Point) * 2. + 0.5))); // Значения шрифта увеличивает на 2
if (oStyle.m_oText.GetDecoration().m_oLine.Underline())
oXmlElement.AddPropertiesInR(RProperties::R_U, (!oStyle.m_oText.GetDecoration().m_oStyle.Empty()) ? oStyle.m_oText.GetDecoration().m_oStyle.ToWString() : L"single");
@ -490,15 +491,17 @@ namespace NSCSS
if (!oStyle.m_oBackground.GetColor().Empty() && !oStyle.m_oBackground.GetColor().None() && !oStyle.m_oBackground.GetColor().Url())
oXmlElement.AddPropertiesInR(RProperties::R_Shd, oStyle.m_oBackground.GetColor().ToWString());
const std::wstring wsHighlight{oStyle.m_oText.GetHighlight().EquateToColor({{{0, 0, 0}, L"black"}, {{0, 0, 255}, L"blue"}, {{0, 255, 255}, L"cyan"},
{{0, 255, 0}, L"green"}, {{255, 0, 255}, L"magenta"}, {{255, 0, 0}, L"red"},
{{255, 255, 0}, L"yellow"}, {{255, 255, 255}, L"white"}, {{0, 0, 139}, L"darkBlue"},
{{0, 139, 139}, L"darkCyan"}, {{0, 100, 0}, L"darkGreen"}, {{139, 0, 139}, L"darkMagenta"},
{{139, 0, 0}, L"darkRed"}, {{128, 128, 0}, L"darkYellow"},{{169, 169, 169}, L"darkGray"},
{{211, 211, 211}, L"lightGray"}})};
/*
const std::wstring wsHighlight{oStyle.m_oBackground.GetColor().EquateToColor({{{0, 0, 0}, L"black"}, {{0, 0, 255}, L"blue"}, {{0, 255, 255}, L"cyan"},
{{0, 255, 0}, L"green"}, {{255, 0, 255}, L"magenta"}, {{255, 0, 0}, L"red"},
{{255, 255, 0}, L"yellow"}, {{255, 255, 255}, L"white"}, {{0, 0, 139}, L"darkBlue"},
{{0, 139, 139}, L"darkCyan"}, {{0, 100, 0}, L"darkGreen"}, {{139, 0, 139}, L"darkMagenta"},
{{139, 0, 0}, L"darkRed"}, {{128, 128, 0}, L"darkYellow"},{{169, 169, 169}, L"darkGray"},
{{211, 211, 211}, L"lightGray"}})};
if (L"none" != wsHighlight)
oXmlElement.AddPropertiesInR(RProperties::R_Highlight, wsHighlight);
*/
oXmlElement.AddPropertiesInR(RProperties::R_Color, oStyle.m_oText.GetColor().ToWString());
@ -509,9 +512,6 @@ namespace NSCSS
else if (L"serif" == wsFontFamily)
wsFontFamily = L"Times New Roman";
if (oStyle.m_oDisplay.GetDisplay() == L"none")
oXmlElement.AddPropertiesInR(RProperties::R_Vanish, L"true");
oXmlElement.AddPropertiesInR(RProperties::R_RFonts, oStyle.m_oFont.GetFamily().ToWString());
oXmlElement.AddPropertiesInR(RProperties::R_I, oStyle.m_oFont.GetStyle().ToWString());
oXmlElement.AddPropertiesInR(RProperties::R_B, oStyle.m_oFont.GetWeight().ToWString());
@ -523,7 +523,10 @@ namespace NSCSS
Clear();
if(oStyle.GetId().empty())
{
m_sId = L"normal";
return false;
}
CStyleUsed structStyle(oStyle, false);
@ -559,7 +562,7 @@ namespace NSCSS
if (oXmlElement.Empty())
return false;
m_sStyle += oXmlElement.GetPStyle(true);
return true;
}
@ -586,7 +589,10 @@ namespace NSCSS
Clear();
if(oStyle.GetId().empty())
return false;
{
m_sId = L"normal";
return true;
}
CStyleUsed structStyle(oStyle, true);
std::vector<CStyleUsed>::iterator oItem = std::find(m_arStyleUsed.begin(), m_arStyleUsed.end(), structStyle);

View File

@ -27,7 +27,7 @@ CXmlElement::CXmlElement(const std::wstring& sNameDefaultElement)
bool CXmlElement::Empty() const
{
return m_mPStyleValues.empty() && m_mRStyleValues.empty() && GetBasedOn().empty();
return m_mPStyleValues.empty() && m_mRStyleValues.empty() && m_mBasicValues.find(CSSProperties::BasicProperties::B_BasedOn) == m_mBasicValues.end();
}
void CXmlElement::CreateDefaultElement(const std::wstring& sNameDefaultElement)
@ -35,7 +35,7 @@ void CXmlElement::CreateDefaultElement(const std::wstring& sNameDefaultElement)
if (!Empty())
Clear();
/* if (sNameDefaultElement == L"p")
if (sNameDefaultElement == L"p")
{
AddBasicProperties(CSSProperties::BasicProperties::B_Type, L"paragraph");
AddBasicProperties(CSSProperties::BasicProperties::B_StyleId, L"p");
@ -47,7 +47,7 @@ void CXmlElement::CreateDefaultElement(const std::wstring& sNameDefaultElement)
// AddPropertiesInP(CSSProperties::ParagraphProperties::P_Spacing, L"w:before=\"100\" w:beforeAutospacing=\"1\" w:after=\"100\" w:afterAutospacing=\"1\"");
}
else */if (sNameDefaultElement == L"li")
else if (sNameDefaultElement == L"li")
{
AddBasicProperties(CSSProperties::BasicProperties::B_Type, L"paragraph");
AddBasicProperties(CSSProperties::BasicProperties::B_StyleId, L"li");
@ -203,7 +203,7 @@ void CXmlElement::CreateDefaultElement(const std::wstring& sNameDefaultElement)
AddPropertiesInR(CSSProperties::RunnerProperties::R_Sz, L"15");
AddPropertiesInR(CSSProperties::RunnerProperties::R_B, L"bold");
}
/*else if (sNameDefaultElement == L"div-c")
else if (sNameDefaultElement == L"div-c")
{
AddBasicProperties(CSSProperties::BasicProperties::B_Type, L"character");
AddBasicProperties(CSSProperties::BasicProperties::B_StyleId, L"div-c");
@ -219,7 +219,7 @@ void CXmlElement::CreateDefaultElement(const std::wstring& sNameDefaultElement)
AddBasicProperties(CSSProperties::BasicProperties::B_Name, L"Div paragraph");
AddBasicProperties(CSSProperties::BasicProperties::B_BasedOn, L"normal");
AddBasicProperties(CSSProperties::BasicProperties::B_Link, L"div-c");
}*/
}
else if (sNameDefaultElement == L"a-c")
{
AddBasicProperties(CSSProperties::BasicProperties::B_Type, L"character");
@ -473,12 +473,6 @@ std::wstring CXmlElement::ConvertRStyle(bool bIsLite) const
sRStyle += L"<w:kern w:val=\"" + oItem.second + L"\"/>";
break;
}
case CSSProperties::RunnerProperties::R_Vanish:
{
if (oItem.second == L"true")
sRStyle += L"<w:vanish/>";
break;
}
default:
break;
}

View File

@ -25,5 +25,3 @@ if not base.is_dir("katana-parser"):
base.replaceInFileUtf8(base_directory + "/katana-parser/src/tokenizer.c", "static inline bool2 katana_is_html_space(char c);", "static inline bool katana_is_html_space(char c);")
base.replaceInFileUtf8(base_directory + "/katana-parser/src/parser.c", "katanaget_text(parser->scanner)", "/*katanaget_text(parser->scanner)*/\"error\"")
base.replaceInFileUtf8(base_directory + "/katana-parser/src/parser.c", "#define KATANA_PARSER_STRING(literal) (KatanaParserString){", "#define KATANA_PARSER_STRING(literal) {")
# katana may not be able to handle an empty string correctly in some cases (bug#73485)
base.replaceInFileUtf8(base_directory + "/katana-parser/src/foundation.c", "size_t len = strlen(str);", "if (NULL == str)\n return;\n size_t len = strlen(str);")

View File

@ -15,14 +15,11 @@
#include "../../../UnicodeConverter/UnicodeConverter.h"
#include "../../../HtmlFile2/src/StringFinder.h"
#if defined(CreateDirectory)
#undef CreateDirectory
#endif
static std::string nonbreaking_inline = "|a|abbr|acronym|b|bdo|big|cite|code|dfn|em|font|i|img|kbd|nobr|s|small|span|strike|strong|sub|sup|tt|";
static std::string empty_tags = "|area|base|basefont|bgsound|br|command|col|embed|event-source|frame|hr|image|img|input|keygen|link|menuitem|meta|param|source|spacer|track|wbr|";
static std::string preserve_whitespace = "|pre|textarea|script|style|";
static std::string special_handling = "|html|body|";
static std::string no_entity_sub = ""; //"|style|";
static std::string treat_like_inline = "|p|";
static std::vector<std::string> html_tags = {"div","span","a","img","p","h1","h2","h3","h4","h5","h6",
@ -58,11 +55,6 @@ static void replace_all(std::string& s, const std::string& s1, const std::string
}
}
static bool NodeIsUnprocessed(const std::string& wsTagName)
{
return "xml" == wsTagName;
}
static bool IsUnckeckedNodes(const std::string& sValue)
{
return unchecked_nodes_new.end() != std::find(unchecked_nodes_new.begin(), unchecked_nodes_new.end(), sValue);
@ -72,10 +64,10 @@ static std::wstring htmlToXhtml(std::string& sFileContent, bool bNeedConvert)
{
if (bNeedConvert)
{ // Определение кодировки
std::string sEncoding = NSStringFinder::FindProperty(sFileContent, "charset", {"="}, {";", "\\n", "\\r", " ", "\"", "'"}).m_sValue;
std::string sEncoding = NSStringFinder::FindPropety(sFileContent, "charset", {"="}, {";", "\\n", "\\r", " ", "\""}).m_sValue;
if (sEncoding.empty())
sEncoding = NSStringFinder::FindProperty(sFileContent, "encoding", {"="}, {";", "\\n", "\\r", " "}).m_sValue;
sEncoding = NSStringFinder::FindPropety(sFileContent, "encoding", {"="}, {";", "\\n", "\\r", " "}).m_sValue;
if (!sEncoding.empty() && !NSStringFinder::Equals("utf-8", sEncoding))
{
@ -214,7 +206,7 @@ static void ReadMht(const std::string& sMhtContent, std::map<std::string, std::s
NSStringFinder::TFoundedData<char> oData;
// Content-Type
oData = NSStringFinder::FindProperty(sMhtContent, "content-type", {":"}, {";", "\\n", "\\r"});
oData = NSStringFinder::FindPropety(sMhtContent, "content-type", {":"}, {";", "\\n", "\\r"});
const std::string sContentType{oData.m_sValue};
if (sContentType.empty())
@ -230,18 +222,18 @@ static void ReadMht(const std::string& sMhtContent, std::map<std::string, std::s
unCharsetBegin = oData.m_unEndPosition;
// name
// std::string sName = NSStringFinder::FindProperty(sMhtContent, "name", {"="}, {";", "\\n", "\\r"}, 0, unLastPosition);
// std::string sName = NSStringFinder::FindPropety(sMhtContent, "name", {"="}, {";", "\\n", "\\r"}, 0, unLastPosition);
// unContentPosition = std::max(unContentPosition, unLastPosition);
// Content-Location
oData = NSStringFinder::FindProperty(sMhtContent, "content-location", {":"}, {";", "\\n", "\\r"});
oData = NSStringFinder::FindPropety(sMhtContent, "content-location", {":"}, {";", "\\n", "\\r"});
std::string sContentLocation{oData.m_sValue};
if (!oData.Empty())
unContentPosition = std::max(unContentPosition, oData.m_unEndPosition);
// Content-ID
oData = NSStringFinder::FindProperty(sMhtContent, "content-id", {":"}, {";", "\\n", "\\r"});
oData = NSStringFinder::FindPropety(sMhtContent, "content-id", {":"}, {";", "\\n", "\\r"});
std::string sContentID{oData.m_sValue};
if (!oData.Empty())
@ -255,7 +247,7 @@ static void ReadMht(const std::string& sMhtContent, std::map<std::string, std::s
sContentLocation = "cid:" + sContentID;
// Content-Transfer-Encoding
oData = NSStringFinder::FindProperty(sMhtContent, "content-transfer-encoding", {":"}, {";", "\\n", "\\r"});
oData = NSStringFinder::FindPropety(sMhtContent, "content-transfer-encoding", {":"}, {";", "\\n", "\\r"});
const std::string sContentEncoding{oData.m_sValue};
if (!oData.Empty())
@ -269,7 +261,7 @@ static void ReadMht(const std::string& sMhtContent, std::map<std::string, std::s
if (std::string::npos != unCharsetEnd && unCharsetBegin < unCharsetEnd)
{
sCharset = NSStringFinder::FindProperty(sMhtContent.substr(unCharsetBegin, unCharsetEnd - unCharsetBegin), "charset", {"="}, {";", "\\n", "\\r"}).m_sValue;
sCharset = NSStringFinder::FindPropety(sMhtContent.substr(unCharsetBegin, unCharsetEnd - unCharsetBegin), "charset", {"="}, {";", "\\n", "\\r"}).m_sValue;
NSStringFinder::CutInside<std::string>(sCharset, "\"");
}
@ -341,7 +333,7 @@ static std::string mhtTohtml(const std::string& sFileContent)
NSStringUtils::CStringBuilderA oRes;
// Поиск boundary
NSStringFinder::TFoundedData<char> oData{NSStringFinder::FindProperty(sFileContent, "boundary", {"="}, {"\\r", "\\n", "\""})};
NSStringFinder::TFoundedData<char> oData{NSStringFinder::FindPropety(sFileContent, "boundary", {"="}, {"\\r", "\\n", "\""})};
size_t nFound{oData.m_unEndPosition};
std::string sBoundary{oData.m_sValue};
@ -439,25 +431,9 @@ static void substitute_xml_entities_into_text(std::string& text)
replace_all(text, ">", "&gt;");
}
// After running through Gumbo, the values of type "&#1;" are replaced with the corresponding code '0x01'
// Since the attribute value does not use control characters (value <= 0x09),
// then just delete them, otherwise XmlUtils::CXmlLiteReader crashes on them.
// bug#73486
static void remove_control_symbols(std::string& text)
{
std::string::iterator itFound = std::find_if(text.begin(), text.end(), [](unsigned char chValue){ return chValue <= 0x09; });
while (itFound != text.end())
{
itFound = text.erase(itFound);
itFound = std::find_if(itFound, text.end(), [](unsigned char chValue){ return chValue <= 0x09; });
}
}
// Заменяет сущности " в text
static void substitute_xml_entities_into_attributes(std::string& text)
{
remove_control_symbols(text);
substitute_xml_entities_into_text(text);
replace_all(text, "\"", "&quot;");
}
@ -493,7 +469,6 @@ static void build_doctype(GumboNode* node, NSStringUtils::CStringBuilderA& oBuil
oBuilder.WriteString("<!DOCTYPE ");
oBuilder.WriteString(node->v.document.name);
std::string pi(node->v.document.public_identifier);
remove_control_symbols(pi);
if ((node->v.document.public_identifier != NULL) && !pi.empty())
{
oBuilder.WriteString(" PUBLIC \"");
@ -506,7 +481,7 @@ static void build_doctype(GumboNode* node, NSStringUtils::CStringBuilderA& oBuil
}
}
static void build_attributes(const GumboVector* attribs, NSStringUtils::CStringBuilderA& atts)
static void build_attributes(const GumboVector* attribs, bool no_entities, NSStringUtils::CStringBuilderA& atts)
{
std::vector<std::string> arrRepeat;
for (size_t i = 0; i < attribs->length; ++i)
@ -514,10 +489,6 @@ static void build_attributes(const GumboVector* attribs, NSStringUtils::CStringB
GumboAttribute* at = static_cast<GumboAttribute*>(attribs->data[i]);
std::string sVal(at->value);
std::string sName(at->name);
remove_control_symbols(sVal);
remove_control_symbols(sName);
atts.WriteString(" ");
bool bCheck = false;
@ -556,7 +527,8 @@ static void build_attributes(const GumboVector* attribs, NSStringUtils::CStringB
std::string qs ="\"";
atts.WriteString("=");
atts.WriteString(qs);
substitute_xml_entities_into_attributes(sVal);
if(!no_entities)
substitute_xml_entities_into_attributes(sVal);
atts.WriteString(sVal);
atts.WriteString(qs);
}
@ -565,6 +537,7 @@ static void build_attributes(const GumboVector* attribs, NSStringUtils::CStringB
static void prettyprint_contents(GumboNode* node, NSStringUtils::CStringBuilderA& contents, bool bCheckValidNode)
{
std::string key = "|" + get_tag_name(node) + "|";
bool no_entity_substitution = no_entity_sub.find(key) != std::string::npos;
bool keep_whitespace = preserve_whitespace.find(key) != std::string::npos;
bool is_inline = nonbreaking_inline.find(key) != std::string::npos;
bool is_like_inline = treat_like_inline.find(key) != std::string::npos;
@ -578,8 +551,8 @@ static void prettyprint_contents(GumboNode* node, NSStringUtils::CStringBuilderA
if (child->type == GUMBO_NODE_TEXT)
{
std::string val(child->v.text.text);
remove_control_symbols(val);
substitute_xml_entities_into_text(val);
if(!no_entity_substitution)
substitute_xml_entities_into_text(val);
// Избавление от FF
size_t found = val.find_first_of("\014");
@ -618,10 +591,6 @@ static void prettyprint(GumboNode* node, NSStringUtils::CStringBuilderA& oBuilde
}
std::string tagname = get_tag_name(node);
remove_control_symbols(tagname);
if (NodeIsUnprocessed(tagname))
return;
if (bCheckValidNode)
bCheckValidNode = !IsUnckeckedNodes(tagname);
@ -636,6 +605,7 @@ static void prettyprint(GumboNode* node, NSStringUtils::CStringBuilderA& oBuilde
std::string closeTag = "";
std::string key = "|" + tagname + "|";
bool is_empty_tag = empty_tags.find(key) != std::string::npos;
bool no_entity_substitution = no_entity_sub.find(key) != std::string::npos;
// determine closing tag type
if (is_empty_tag)
@ -648,7 +618,7 @@ static void prettyprint(GumboNode* node, NSStringUtils::CStringBuilderA& oBuilde
// build attr string
const GumboVector* attribs = &node->v.element.attributes;
build_attributes(attribs, oBuilder);
build_attributes(attribs, no_entity_substitution, oBuilder);
oBuilder.WriteString(close + ">");
// prettyprint your contents

View File

@ -2,4 +2,3 @@ emsdk/
hunspell/
deploy/
o
hunspell.data

View File

@ -1,43 +0,0 @@
import os
import glob
import json
import subprocess
curDirectory = os.path.dirname(os.path.realpath(__file__))
dictionatiesDirectory = curDirectory + "/../../../../../dictionaries"
all_dictionaties = {}
for dir in glob.glob(dictionatiesDirectory + "/*"):
if not os.path.isdir(dir):
continue
dictionaryName = os.path.basename(dir)
configFile = dictionatiesDirectory + "/" + dictionaryName + "/" + dictionaryName + ".json"
if not os.path.isfile(configFile):
continue
isHyphen = False
hyphenFile = dictionatiesDirectory + "/" + dictionaryName + "/hyph_" + dictionaryName + ".dic"
if os.path.isfile(hyphenFile):
isHyphen = True
with open(configFile, 'r', encoding='utf-8') as file:
data = json.loads(file.read())
for lang in data["codes"]:
all_dictionaties[str(lang)] = {
"name": dictionaryName,
"hyphen": isHyphen
}
content = ""
content += "#define DictionaryRec_count " + str(len(all_dictionaties)) + "\n"
content += "typedef struct {\n"
content += " const char* m_name;\n"
content += " int m_lang;\n"
content += "} DictionaryRec;\n\n"
content += "static const DictionaryRec Dictionaries[DictionaryRec_count] = {\n"
for lang in all_dictionaties:
info = all_dictionaties[lang]
content += " { \"" + info["name"] + "\", " + str(lang) + " },\n"
content += "};\n"
with open("./records.h", 'w', encoding='utf-8') as f:
f.write(content)

View File

@ -1,73 +0,0 @@
#define DictionaryRec_count 65
typedef struct {
const char* m_name;
int m_lang;
} DictionaryRec;
static const DictionaryRec Dictionaries[DictionaryRec_count] = {
{ "ar", 1025 },
{ "ar", 2049 },
{ "ar", 3073 },
{ "ar", 4097 },
{ "ar", 5121 },
{ "ar", 6145 },
{ "ar", 7169 },
{ "ar", 8193 },
{ "ar", 9217 },
{ "ar", 10241 },
{ "ar", 11265 },
{ "ar", 12289 },
{ "ar", 13313 },
{ "ar", 14337 },
{ "ar", 15361 },
{ "ar", 16385 },
{ "az_Latn_AZ", 1068 },
{ "bg_BG", 1026 },
{ "ca_ES", 1027 },
{ "ca_ES_valencia", 2051 },
{ "cs_CZ", 1029 },
{ "da_DK", 1030 },
{ "de_AT", 3079 },
{ "de_CH", 2055 },
{ "de_DE", 1031 },
{ "el_GR", 1032 },
{ "en_AU", 3081 },
{ "en_CA", 4105 },
{ "en_GB", 2057 },
{ "en_US", 1033 },
{ "en_ZA", 7177 },
{ "es_ES", 3082 },
{ "eu_ES", 1069 },
{ "fr_FR", 1036 },
{ "gl_ES", 1110 },
{ "hr_HR", 1050 },
{ "hu_HU", 1038 },
{ "id_ID", 1057 },
{ "it_IT", 1040 },
{ "kk_KZ", 1087 },
{ "ko_KR", 1042 },
{ "lb_LU", 1134 },
{ "lt_LT", 1063 },
{ "lv_LV", 1062 },
{ "mn_MN", 1104 },
{ "nb_NO", 1044 },
{ "nl_NL", 1043 },
{ "nl_NL", 2067 },
{ "nn_NO", 2068 },
{ "oc_FR", 1154 },
{ "pl_PL", 1045 },
{ "pt_BR", 1046 },
{ "pt_PT", 2070 },
{ "ro_RO", 1048 },
{ "ru_RU", 1049 },
{ "sk_SK", 1051 },
{ "sl_SI", 1060 },
{ "sr_Cyrl_RS", 10266 },
{ "sr_Latn_RS", 9242 },
{ "sv_SE", 1053 },
{ "tr_TR", 1055 },
{ "uk_UA", 1058 },
{ "uz_Cyrl_UZ", 2115 },
{ "uz_Latn_UZ", 1091 },
{ "vi_VN", 1066 },
};

View File

@ -14,12 +14,6 @@ def get_hunspell(stable_commit):
base.replaceInFile("./src/hunspell/csutil.cxx", "void free_utf_tbl() {", "void free_utf_tbl() { \n return;\n")
# bug fix, we need to keep this utf table
# free_utf_tbl doesnt delete anything so we can destroy hunspell object
# replace & add defines to easy control of time limits (CUSTOM_LIMIT)
default_tl_defines = "#define TIMELIMIT_GLOBAL (CLOCKS_PER_SEC / 4)\n#define TIMELIMIT_SUGGESTION (CLOCKS_PER_SEC / 10)\n#define TIMELIMIT (CLOCKS_PER_SEC / 20)\n"
custom_tl_defines_tl = "#define TIMELIMIT_GLOBAL CUSTOM_TIMELIMIT_GLOBAL\n#define TIMELIMIT_SUGGESTION CUSTOM_TIMELIMIT_SUGGESTION\n#define TIMELIMIT CUSTOM_TIMELIMIT\n"
tl_defines = "#ifndef CUSTOM_TIMELIMITS\n" + default_tl_defines + "#else\n" + custom_tl_defines_tl + "#endif\n"
base.replaceInFile("./src/hunspell/atypes.hxx", default_tl_defines, tl_defines)
os.chdir("../")

View File

@ -0,0 +1,213 @@
A [Ü, Ha, Ağ, Ac, Ad, Da, Fa, Ah, Ka, Al, An, Na, Qa]
qocalmaq [almayacaq, almamaq]
Alderaan'ın [Federasiyanın]
hamısı
həmçinin
cavab
dir
incəsənət
kimi
da
uzaq
körpə
zirzəmi [zəmində]
ol
olub
doğuldu [doğulduğu, doğurduğu]
bulvar [bunlar]
fasilə
nəsllər [nəsillər, nəsnələri, nəslə, nələrlə, səslər]
gəlin
lakin
al
ilə
Kaliforniya [Kanalizasiya]
Kalifornikasiya [Kommunikasiya]
bilər
kartlar
şans
Çin
çənə [dənə, çəkə, mənə, nənə, sənə, tənə, çənəyə]
klublar
Cobain []
bürc [borc, gürcü]
nəzarət
qiymət
edə bilməzdim [bilməzdim]
yaratmaq
lənət
rəqs
saziş
sövdələşmələr [məsləhətləşmələr]
dağıdıcı
almazlar [almanlar, almaz lar, almaz-lar, almaları, marallar, mallara]
etməz
etməyərik [etmərik, etmədikləri]
arzu
xülyalar [yalanlar]
Şərq
kənar
kənarları [kənar ları, kənar-ları, kənarına, kənarında, kəlamları, aparılarkən]
məmnunluq
hamının
uzaq
peri [şeri, geri, meri, yeri]
solğun [dolğun]
üz
son
tap
ilk
üçün
-dan [-dam, -da, -an, -dana, -adan, -nda, -daş, -dən, -dağ, -can, -dad, -din, -lan, -don, -qan, adan, andan]
sərhəd
qız
qızın
yaxşı
gitara [artaraq]
əl
hardcore [hardadır]
var
yoxdur
o [od, ol, on, ot, ov, ox, ü, ı]
eşitmək
ürək
O'nun [Onun, Oyununu]
ona
gizli
yüksək
ona
onun
Hollivud [Holland]
Mən
Mənəm
əgər
içində
məlumat
içində
dir
bu
jack [janra]
sadəcə
kral
qohum
bilmək
qoyulmuş
qanun
yerləşdirilmək [yerləşdirilməsi, yerləşdirilmiş, yerləşdirilib, yerləşdirildiyini]
qurğuşun [quruluşunun]
aparmaq
yerləşdirilmə [yerləşdirilməsi, yerləşdirilmiş, yerləşdirilib, yerləşdirildiyini]
məkan
sevmək
şans
edilmiş
adam
çox
Evlənmək
maska [masa, marka]
o bilər [bilərlər, bilər]
bəlkə də [bəlkə]
mənası
mən
meditasiya [dissertasiya]
xatirə
ılın
pul
mənim
heç vaxt [vaxtsa]
deyil
heç nə [heçə]
nömrələr [nömrələri, nömrə lər, nömrə-lər, nömrəli, nömrə]
of [od, əf, ol, on, ot, ov, ox, ofis]
of [od, əf, ol, on, ot, ov, ox, ofis]
üstündə
bir
yalnız
və ya [vəla]
nəticə
öz
Ödə [Də, Ədə, Adə, Edə, Idə, Öndə, Ölə, Önə]
Şəftəli [Həftəlik]
yerlər
oynayır
oynamaq
əhali
porno [sponsor]
tərifləmək [təriflər, təklifləri, təkliflərlə, təkliflərə]
ehtimal ki [ehtimal]
ehtimal
psixik [psixi, psixoloji]
kraliça [kralı]
qaldırmaq
qalan
hörmət
qalxmaq
yol
xam
müqəddəs
Xilas et [Xilası]
elmi
çığırmaq [çağırmaq, çıxarmaq]
satılır
şəkil
xəstələnmək [xəstələnməyi, dəstəklənməsi]
gümüşçü [gümüş]
dəri
əsgər
bir şey [şeydir]
Mahnı
mahnılar
qılınclar [qılınc lar, qılınc-lar, qılıncı]
büyü [böyüyü]
casuslar [ruslar]
ulduz
Stansiya
oğurlamaq [vurğulamaq]
daşlar
günəş
şübhəli
İsveç
qılınclar [qılınc lar, qılınc-lar, qılıncı]
yeniyetmə
test
dandan [andan, candan, qandan, yandan, danışanda, adından, yanından, canından]
bu ki [builki]
bu ki [builki]
bu
onların
bu
onlar
düşünmək
bu
onlar
gel-git [get-gedə]
üçün
deyilmişəm [deyilmiş əm, deyilmiş-əm, deyilmişdi, deyilmiş, deyilmi, deyiləm]
çox
cəhd et [cəhdlər]
başa düşdüm []
qilin [ilin, bilin, dilin]
titrəmək [itirməmək, itirmək]
mübarizə aparır? []
istəyirəm
müharibə
idi
dalğalar [qadağalar, dağlarda, adalar, dağlar]
geymək [getmək, getməmək]
silahlar
yaxşı
idarə olunan [olunanlardan]
Qərbi [Hərbi, Qəbri, Qərb, Qərbin, Qəbir, Qərbə, Qəlbi]
arasında
qalib gəlmək [qaliblərin]
qalib gəlir [qalibləri]
ilə
qadın
dünya
səhv
siz
sizə
sənsən [səndən, sən sən, sən-sən, nədənsə, mənsə, sənə, səslənən]
sənin

View File

@ -0,0 +1,212 @@
A [А, Е, О, И, В, С, Я, У]
остаряване
Алдераан [Дерайлиран]
всичко
също
и
отговор
са
изкуство
като
в
далеч
бебе
мазе
бъда
било
роден
булевард
почивка
породи
невеста
но
купувам
от
Калифорния
Калифорникация [Калифорнийския, Калифорнийка, Калифорния]
може
карти
шанс
Китай
брадичка
клубове
Кобейн [Кобен]
съзвездие
контрол
цена
не можех [можехме]
създаване
проклятие
танц
сделка
сделки
унищожение
диаманти
не прави [неправи, неуправии, неправдиви]
не правим [непоправим]
мечта
мечти
Изток
ръб
ръбове
екстаз
всеки
далеч
приказка
избледнява
лица
краен
намирам
първи
за
от
предел
момиче
момичето
добре
китара
ръка
хардкор [хардуер]
има
няма
той
чуя
сърце
той е [той]
нейни
скрит
висок
него
негов
Холивуд
аз
аз съм [разсъмна]
ако
в
информация
вътре
е
това е [товарен]
вале
просто
крал
родственик
знам
определен
закон
поставям
водя
води
местоположение
обичам
късмет
направен
човек
много
Ожени се [Брожение]
маска
май
може би [можещи]
означава
аз
медитация
спомен
ума
пари
моя
никога
не
нищо
числа
от
изключен
на
един
само
или
изход
свой
Плати
праскова
места
играе
играя
население
порно [бурно, орно, порено, опорно, спорно, упорно, порна, парно, порне, поено, порни, потно, торно, морно, горно]
похвала
вероятно
вероятен
психичен
кралица
въздигам
останал
почит
възход
път
груб
светия
Спасявам
наука
крясък
продава
форма
по-болен
златар
кожа
войник
някаква
Песен
песни
пикове
заклинание
шпиони
звезда
стация [станция, стария, статия, стадия, атестация, стагнация]
крада
камъни
слънце
подозрителен
Швеция
мечове
тийнейджър [тинейджър, пейджър]
тест
отколкото
това
това е [товарен]
на
техни
тези
те с [тесте]
мисли
този
той
прилив
до
каза
също
опитайте
разбрано
еднорог [едно рог, еднороден]
вибрация
водене? [водене, неводен, воден]
искам
война
беше
вълни
носете
оръжия
Ами
бяха
Западна
какво
докато
победа
победи
със
жена
свят
грешка
ти
ти би [табиети]
ти си [тифуси]
вашият

View File

@ -0,0 +1,112 @@
amor
llum
lluum [lluu, llum, lluus, lluïm, lluu m]
esperança
espirança [esperança, espirant, espinçadora, espinça, espira]
llibertat
força
forrça [forra, força, forçar]
pau
somni
llibre
mar
amistat
cançó
flor
cel
estrella
temps
camí
vent
muntanya
mumntanya [muntanya, muntanyà, muntant]
riu
soroll
silenci
viatge
foc
gel
paraula
vida
dia
nit
tarda
matí
lluna
sol
llac
marbre
ferro
sal
mel
sucre
peix
ocell
oceoll [ocell]
joc
ritme
melodia
pintura
pentura [puntera, entura, pintura, puntura, ventura, penetrant, apertura, parapent]
teatre
dansa
poema
història
llegenda
mitologia
festa
música
vi
cervesa
cervessa [cervesa, cer vessa, cer-vessa, cerves sa, cerves-sa, cervesera, cerveseria, cerveser, cessava]
formatge
pa
ciutat
poble
natura
camp
bosc
platja
sorra
sorrà
pedra
ànima
cos
ment
cor
somriure
somriàre [somriure, somrient]
abraçada
bes
parla
oida [oidà, oïda, ioda, odia, aido, oia, oda, oiada, oxida, aida, sida, onda, mida, dida, vida]
vista
tacte
gust
olfacte
color
forma
número
lletra
sistema
regla
escola
universitat
univversitat [universitat, universitari, universalitat, universalitzat, universalista]
mestre
estudiant
sabiduria [sabuderia]
lliçó
pregunta
resposta
risposta [resposta, disposta, ris posta, ris-posta, risp osta, risp-osta, trasposta, posteritat, riosta, polvorista]
dubte
certesa
veritat
mentida
promesa
secret
descoberta
descaberta [descoberta, desca berta, desca-berta, descabestrat, descartable, descabota, descarta]
aventura
destinació

View File

@ -0,0 +1,212 @@
A
envellir
Alderaan [Aldebaran, Aldebrand, Aldeana, Anedera]
tot
també
I
resposta
és
art
com
a
lluny
nadó
celler
ser
ha estat [hastat]
nat
bulevard
pausa
generacions
núvia
però
comprar
amb
Califòrnia
Californication [Californiana, Californita]
pot
cartes
oportunitat
Xina
mentó
clubs
Cobain [Cobai, Cobais, Cobrin, Cob ain, Cob-ain, Cobalamina]
signe del zodíac [signé del zodíac, signè del zodíac, sígne del zodíac, sïgne del zodíac, signE del zodíac, Signe del zodíac, sIgne del zodíac, sigNe del zodíac, siGne del zodíac]
control
preu
no podria [nodriria, podriria, nodria]
crear
maleït
ballar
acord
negocis
destructiu
diamants
no fer [noosfera]
no fem [nomenem]
desitjar
somnis
Est
vora
voreres
satisfacció
tots
llunyà
fada
pallid [pallis, palli, pallin, pali]
cara
final
trobar
primer
per
de
frontera
noia
la noia [la noïa, la Noia]
guitarra
hardcore [recordar]
hi ha [hifa]
no hi ha [nó hi ha, nò hi ha, nO hi ha, No hi ha]
ell
sentir
cor
ell és [estellés]
seva
secret
alt
ell
seu
Hollywood
jo
sóc
si
en
informació
interior
és
és
jack
només
rei
parent
saber
fixat
llei
col·locar
plom
portar
col·locació
lloc
estimar
oportunitat
fet
home
molts
casar-se
màscara
podria
potser
sentit
jo
meditació
memòria
ment
diners
meu
mai
no
res
números
de
fora
sobre
un
només
o
resultat
seu
pagar
préssec
llocs
jugar
joc
població
porno
elogiar
probablement
probable
psíquic
reina
elevar
restant
respecte
pujar
camí
cru
sant
salvar
ciència
crit
vendres [vendre's, vendre]
figura
malalt
joier
pell
soldat
alguna cosa [glucosamina]
cançó
cançons
cims
encanteri
espies
estrella
estació
robar
pedres
sol
sospitós
Suècia
espases
adolescent
prova
que
que
això
seu
aqueixos
ells
pensar
aqueix
ells
marees
per
no he estat [nó he estat, nò he estat, nO he estat, No he estat]
molt
intentar
entendre
fer
tremolar
lluitar
desitjar
guerra
va ser [vaser, serva]
ones
portar
armes
administrat
Oest
què
entre
guanyar
guanya
amb
dona
món
equivocat
tu
vostè
tu ets [tubets]
teu

View File

@ -0,0 +1,206 @@
pomaliý [pomalý, pomaličku]
šťstný [šťastný]
smuutný [smutný, smutnu]
horcký [horký, horácký, horecký, horský, hornický, horňácký]
studiený [studený, studie]
záludnast [záludnost, záludný]
náhodillost [nahodilost, náhodnost]
úpěnlevý [úpěnlivý, úpletový]
rozspačitý [rozpačitý, rozpačitěný]
svéhllavý [svéhlavý, svéhlavička]
jablko
slunce
voda
dům
pták
káva
chleba
květina
kniha
pes
kočka
město
zelený
modrý
červený
bílý
černý
velký
malý
rychlý
pomalý
šťastný
smutný
horký
studený
nový
starý
hezký
ošklivý
dobrý
špatný
zdravý
nemocný
silný
slabý
chytrý
hloupý
pracovat
jíst
pít
spát
číst
psát
mluvit
smát se [smát]
plakat
zpívat
hrát
tančit
učit se [učitele]
nakupovat
vařit
telefonovat
dívat se [sedívat]
poslouchat
chodit
běžet
létat
plavat
psát
učit se [učitele]
dělat
mít
být
jít
přijít
odejít
dát
vzít
říct
vidět
slyšet
cítit
myslet
chtít
moct
muset
rád
nerad
ano
ne
prosím
děkuji
na shledanou [shledanou, dohledanou, shledávanou, ohledanou]
omlouvám se [omlouvání]
sbohem
ahoj
čau
hej
jo
fakt
super
blbost
paráda
no jo [nojo]
jasně
takže
vlastně
třeba
snad
leštěnka
pochmurný
živelný
ponaučení
záhada
pochybnost
nádhera
soucit
záludnost
náhodilost [nahodilost, náhodnost]
úpěnlivý
rozpačitý
svéhlavý
marnivost
blahodar [blaho dar, blaho-dar, lahoda]
rozčarování
odchylka
přelud
vytrvalost
neústupnost
lehkost
souznění
rozmarnost
roztržitost
úskočnost
rozkoš
marasmus
rozpolcenost
neúprosnost
ztřeštěnost
chmurnost
okouzlení
zářivost
vyrovnanost
neochvějnost
neúcta
bizarnost
rozmařilost
nepochopení
nevýslovný
pomíjivost
beznaděj
úzkost
odtažitost
rozerv [rozerve, rozervi, rozervu, rezerv, rozervat]
rozervanost
vyčerpanost
bezcitnost
záludnost
nezdolnost
rozkošátnost [rozkošnost, rozkošatěnost, rozkošnickost, rozkoktanost]
nezdolatelnost
rozmarnost
živelnost
bezútěšnost
záhadnost
neposkvrnitelnost [nepotiskovatelnost, nepopisovatelnost, nepřemostitelnost, nezvratitelnost]
rozkošnělost [rozkošatělost, rozkošnost, rozkošnickost, rozkošatěnost]
bezradnost
neuchopitelnost
pošetilost
opojení
rozervanost
marnost
bezstarostnost
nevinnost
náladovost
vyrovnanost
ztracenost
bezbřehost
rozervanost
opojení
bezradnost
neuchopitelnost
pošetilost
opojení
rozervanost
marnost
bezstarostnost
nevinnost
náladovost
vyrovnanost
ztracenost
bezbřehost
opojení
bezradnost
neuchopitelnost
pošetilost
opojení
rozervanost
marnost
bezstarostnost
nevinnost
náladovost
vyrovnanost
bezbřehost

View File

@ -0,0 +1,129 @@
Hej
Goddag
Tak
Ja
Nej
Måske
Mad
Vand
Hus
Bil
Tog
Cykel
Skole
Børn
Far
Mor
Søster
Bror
Hund
Kat
Fisk
Fugl
Træ
Blomst
Græs
Sol
Måne
Himmel
Regn
Sne
Sommer
Vinter
Forår
Efterår
Aften
Nat
Dag
Uge
Måned
År
Læse
Skrive
Tale
Lære [Lære, Læres, Lærer, Læren, Læreø, Læreå, læreå]
Arbejde
Sove
Vågne
Løbe
Sidde
Stå
Lytte
Se
Høre [Høre, Høres, Hører, Høreø, Høreå, høreå]
Spise
Drikke
Kød
Frugt
Grøntsager
Ost
Brød
Vand
Juice
Kaffe
Te
Mælk
Smør [Smør, Smøre, Smørs, Smør']
Æg
Salt
Peber
Sukker
Bolle
Smørrebrød
Køkken
Stue
Soveværelse
Badeværelse
Toilet
Bord
Stol
Sofa
Lampe
Vindue
Dør
Gulv
Loft
Væg
Sofa
Pude
Tæppe
Badekar
Håndvask
Spejl
Håndklæde
Seng
Dyne
Dynee [Dynes, Dyner, Dyne, Dynen, Dynge, Dynees, Dynete, Dyneel, Dynele, Dyneed, Dyneeg, Dyneem, Dynefe, Dyneve]
Pude
Pudee [Pudene, Pudre, Puder, Pude, Pudes, Pudse, Puden, Pudet, Pudel]
Alarm
Alarmm [Alarm, Alarms]
Skrivebord
Stol
Hus
Hund
Kat
Katt [Kett, Katy, Katty, Kate, Kitt, Kata, Kato, Matt, Watt, Kat, Kast, Kats, Takt, Kart, Katte]
Bil
Skole
Skolee [Skolie, Skolede, Skoler, Skole, Skoles, Skolen, Skolet, Skolde]
Sol
Soll [Sol, Sole, Sols, Soli, Sola, Sall, Sold, Solo, Soul]
Vand
Vandd [Vanda, Vandy, Vandt, Vand, Vands, Vande, Vandr]
Mad
Madd [Mads, Maud, Mad, Made, Mand]
By
Barn
Barnn [Barni, Baran, Barny, Barn, Baren, Barns, Baron]
Tørklæde
Skæbne
Uafhængighed
Kærlighed
Kærligheed [Kærlighed, Ærlighed, Hæderlighed, Herlighed, Liderlighed]
overbelastning
Modstandsbevægelsen
Uafhængighedserklæringen
Forårssommertemperaturen
Stabiliseringsperioden

View File

@ -0,0 +1,131 @@
Ägyptologie
Ährenamt [Ährensamt, Ährenast, Ährenart, Ährenact, Ährenabt, Ährenakt, Ährenaxt, Ehrenamt, Ohrenamt, -ährenamt, Ährenartig]
Ängstlichkeit
Äquatoria
Abarbeiten
Abbild
Abbilden
Abbildungs [Abbildung, Abbildungs-, Bildungsnah, Unbildung]
Abbreviatur
Abbrüche
Abfassen
Abfertigen
Abfolge
Abfuhr
Ableugnen
Ablichten
Ablöse
Absätze
Abschnitts
Abwechseln
Abwehren
Aktiv
Britannia
Browserfenster
Budgetieren
Bugpartie
Bukarester
Burgundersoße
Butterkrem
Button
Cabriolet
Campanile
Canapé
Caprice
Celsius
Chamäleon
Charakteristik
Chronometer
Chronometrie
Cölln
Connectzustände
Cursorspur
Däne
Dachs
Dahindämmern
Darbringen
Daten
Datenbankserver
Desktopsystem
Detektivfilm
Dichtertum
Dinosaurier
Direktion
Diskantgambe
Diskothek
Druckereicode
Kapsel
Karausche
Katzen
Klinge
Klinke
Kohlrabi
Koinzidenz
Kolleg
Komplott
Meereis
Mehrphasigkeit
Memorieren
Messen
Methode
Metrowaggon
Meute
Migräne
Milieuforschung
Mindern
Mineralien
Mitternacht
Mobiliar
Mohrrübe
Mühelosigkeit
Normativität
Notifikation
Ökonomie
Orangeton
Osten
Subjekt
Subsidiarität
Subsumieren
Tagfalter
Speicher
Spielzeugsammlung
Zahler
Сложные слова []
Zurückgezogenheit
Äquipotentialfläche
Äußerungsbedeutung
Abfassungszeitraum
Abgeschlossenheits [Abgeschlossenheit, Abgeschlossenheits-, Unabgeschlossenheit, Aufgeschlossenheit, Abgeschlagenheit, Geschlossenheit]
Adjunktionsbeseitigung
Anknüpfungsgrundsätze
Chiffrierschlüssel
Knochenmarktransplantation
Bundeskaderathlet
Carbonsäurechlorid
Cardiazoltherapie
Chancenungleichheit
Charakterisierungsmöglichkeit
Chlorophyllkonzentration
Computerspielemarkt
Deindustrialisieren
Dekodierungsmöglichkeit
Kartoffelschälmesser
Kernspinresonanztomographie
Merkmalskombination
Nachbarschaftszentren
Opportunitätsprinzip
Tiefenstaffelung
Tourismusfachmann
Sequenzbetrachtung
Слова с ошибками []
Dechifrierprogramm [Dechiffrierprogramm, Liederprogramm]
Administratorkenwort [Administratorkennwort, Administratorkonto, Administratorrecht, Distriktadministrator, Distriktsadministrator]
Spigeln [Spiegeln]
Tätigkeite [Tätigkeit, Tätigkeiten, Untätigkeit, Nagetätigkeit, Mildtätigkeit, Regietätigkeit]
Draufgangertum [Draufgängertum, Draufgänger]
Abschnit [Abschnitt, Abschritt]
Komunikation [Kommunikation, Exkommunikation, Kommunikativ, Kommunikator, Komplikation]
Drackereicode [Druckereicode, Dreidecker]
Bumeln [Baumeln, Bummeln, Blumen, Brummeln, Bummel]

View File

@ -0,0 +1,116 @@
Alpinist
Alteration
Alternative
Alumne
Amateurfilmer
Ambulanz
Amtmänner
Analogie
Analytik
Ananas
Angabe
Ankünfte
Dynastie
Ebenbürtigkeit
Echtheitszertifikat
Editionspläne
Editor
Ehrenamtlichkeit
Eigentümerschaft
Einbau
Eindringling
Eingabequittungsbetrieb
Einhüllen
Einkommen
Einloggen
Einschließen [Einschliessen, Einschliefen]
Einsortier [Einsortier-, Einsorter, Eintortier, Einportier, Einvortier, Einsortiere, Einsortiert, Unsortierter, Unsortiert, Einzusortieren, Sortieren]
Elaboration
Elementar
Entertainer
Entkuppeln
Entschädigungs [Entschädigung, Entschädigungs-, Entschädigungslos, Entschädigens, Entschädigen]
Enumerator
Erbringen
Erdichten
Erfahrenheit
Erhalt
Erleichtern
Ersparnis
Erstatten
Erzählliteratur
Helikopter
Helpdesk
Herunterladen
Hindeuten
Hinterlassenschaft
Hiob
Landesprache [Landessprache, Landesrache, Landsprache, Ladesprache, -landesprache]
flexibilität [Flexibilität, -flexibilität, flexibilisiert]
floristisch
flugbillet [Flugbillet, -flugbillet, flugbereit]
heroben
herrichten
herstellen
herübereilen
herunterzubücken
hie
hieraus
hilfe [Hilfe, hilf, hilfe-, -hilfe, helfe, hilft, hälfe]
himbeere [Himbeere, -himbeere, himbeer-, himbeerrot]
justiz [Justiz, justiz-, -justiz, justiziell]
kältebeständig
kärtchen [Kärtchen, -kärtchen, Gärtchen, Bärtchen, kärglichen]
känguru [Känguru, -känguru]
kaktusgewächs [Kaktusgewächs, -kaktusgewächs, ausgewechselt]
kalligrafie [Kalligrafie, -kalligrafie, kalligrafiere, kalligrafische, kalligrafisch]
kamel [Kamel, kamel-, -kamel, kamen, rammel]
kampagnendirektor [Kampagnendirektor, -kampagnendirektor, kampagnenartig]
kapazitär
kapitalist [Kapitalist, -kapitalist, kapital ist, kapital-ist, kapitalistisch, kapitalisierst, kapitalisiert, kapitalstark]
karamell [Karamell, karamell-, -karamell, lamellar]
kardieren
karpfen [Karpfen, -karpfen, krampfen]
katalogdaten [Katalogdaten, -katalogdaten, katalogartigen]
lyzeum [Lyzeum, -lyzeum]
mahagonirot
makkaroni [Makkaroni, -makkaroni, marokkanisch]
malerausbildung [Malerausbildung, -malerausbildung, ausbildungsreif]
management [Management, -management, managen, gemanagt, angemahnt]
mangel
maniküre
manneskraft [Manneskraft, -manneskraft, maskenhaft]
mansarde [Mansarde, -mansarde, ansparende]
mark [Mark, -mark, merk, park, Sark, Park, Bark, markig]
marketingpraktiker [Marketingpraktiker, -marketingpraktiker, marketingorientiert, marketingwirksamer]
maschinell
massage [Massage, massage-, -massage, massige, Passage, Gassage, passagere]
massengutschifffahrt [Massengutschifffahrt, -massengutschifffahrt, maschinenschriftlich]
materie [Materie, -materie, materiell, materiefrei, maturiere, mattier]
medaille [Medaille, -medaille, medaillenlos]
medizinalshampoo [Medizinalshampoo, -medizinalshampoo, sozialmedizinisch]
meeresfrüchte [Meeresfrüchte, -meeresfrüchte, Heeresfrüchte, meeresfeuchte, meeresfeucht, früchtereiche, früchtereich]
quotient [Quotient, -quotient, quotiert, quotieren, quotiere, quotisieren]
salonwagen [Salonwagen, -salonwagen, lossagen]
satzeinleitend
trilateral
tristesse [Tristesse, -tristesse, tristeste, trist esse, trist-esse, triste, rissfeste, stresse, rissfest]
tropen [Tropen, tropfen, tropen-, -tropen, trogen, tropenfest]
vereisen
verfahren
verfügungs [verfügungs-, verfügen]
verhindern
verkäufer [Verkäufer, -verkäufer, verkämpfe, verkaufe, verkupfer]
Слова с ошибками []
Anbindungsystem [Anbindungssystem]
Anglistikdocent [Anglistikdozent, Anglistikstudent, Linguistikdozent]
Ecco [Echo, Codec]
Economclass [Economyclass, Economyklasse]
Einverstandnis [Einverständnis, Einverstandanis, Einverstandnils, Einverstandeis, Einverstandnil, Einverstanden, Seinsverständnis, Koranverständnis, Unverständnis]
Electrik [Elektrik, Electrabel]
Historique [Historisiere, Historie]
herüberzurucken [herüberzugucken, herüberzurücken, herüberzulocken, herüberzustrecken, herüberzublicken, herüberzuschicken]
kartofel [kartoniere]
salade [malade, lade]
sanddornbere [versandbereite]

View File

@ -0,0 +1,211 @@
Hallo
Guten Morgen [Morgenläuten, Morgenröten]
Danke
Bitte
Ja
Nein
Entschuldigung
Tschüss
Liebe
Freund
Familie
Glück
Gesundheit
Schule
Arbeit
Essen
Trinken
Wasser
Brot
Käse
Fleisch
Gemüse
Obst
Kaffee
Tee
Milch
Zucker
Salz
Pfeffer
Haus
Wohnung
Bett
Stuhl
Tisch
Sofa
Fernseher
Telefon
Computer
Buch
Zeitung
Schreiben
Lesen
Hören
Sehen
Fühlen
Laufen
Springen
Schwimmen
Tanzen
Singen
Lachen
Weinen
Freude
Trauer
Angst
Mut
Liebe
Hass
Freundschaft
Beziehung
Familie
Eltern
Kinder
Geschwister
Großeltern
Onkel
Tante
Cousin
Cousine
Ehemann
Ehefrau
Verlobung
Hochzeit
Scheidung
Geburt
Tod
Krankheit
Arzt
Krankenhaus
Medikament
Apotheke
Gesundheit
Wohlbefinden
Fitness
Diät
Schlaf
Ruhe
Entspannung
Sport
Fußball
Tennis
Schwimmen
Laufen
Radfahren
Wandern
Reisen
Urlaub
Strand
Sonne
Meer
Komplementär
Perspektive
Konsens
Integrität
Konsequenz
Authentizität
Korrelation
Charakteristik
Akzeptanz
Flexibilität
Assoziation
Dekomposition
Komplexität
Positivismus
Universalität
Stabilität
Individualität
Konsistenz
Konformität
Dezentralisierung
Kollaboration
Partizipation
Präzision
Transformation
Konkurrenz
Paradoxie
Redundanz
Regeneration
Integration
Isolation
Asymmetrie
Aggregation
Disziplin
Resilienz
Relevanz
Konfusion
Komplikation
Koordination
Harmonie
Ineffizienz
Konstruktion
Konversion
Kollusion
Gerontologie
Differenzierung
Dimensionalität
Inferenz
Fluktuation
Kontraktion
Rezession
Inflation
Dekontamination
Exzellenz
Innovation
Isomorphie
Konnotation
Insuffizienz
Konversion
Kompensation
Koalition
Inkongruenz
Inkontinenz
Kontrahent
Konfiskation
Konjunktur
Aggression
Konfrontation
Kompatibilität
Prognose
Akzeleration
Konstruktion
Diversifikation
Prävention
Sanktion
Indikation
Reduktion
Konkurrenz
Konfiguration
Konnotation
Rezession
Transformation
Interaktion
Kooperation
Innovation
Kollision
Proklamation
Konnotation
Konfrontation
Disposition
Konkordanz
Deklamation
Kollaboration
Isolation
Inflation
Diversifikation
Konnotation
Kompensation
Diffusion
Dekadenz
Konserve
Deklomotion [Deklamation, Deklination, Deletionsklon]
Kolaboration [Kollaboration, Kollaborativ, Elaboration, Korporation, Inkorporation]
Isollation [Isolation, Installation, Kollation, Solmisation, Spallation]
Infllation [Inflation, Inflationär, Inflammation, Inflationiere, Installation]
Divirsifikation [Diversifikation, Ossifikation, Kodifikation, Ratifikation]
Konotation [Konnotation, Korotation, Kinotation, Kontotation, Ökonotation, Konnotativ, Annotation, Notation, Konfrontation]
Kompenssation [Kompensation]
Difusion [Diffusion, Gasdiffusion, Infusion, Diskussion, Fusion]
Dekadens [Dekaden, Dekadenz, Dekadent, Dekade, Dekans, Dekagons, Dekkans]
Kanzerve [Verwanze]

View File

@ -0,0 +1,123 @@
Αβαντάζ
Αβασταγά
Αβγάτισες
αβέβαιο
αβέλτερο
αβέλτεροι
αβίαστους
άβλαβοι
αβοκάντο
αβράδιαστης
άβραστη
αβράχυντου
άβρεχτα
αβρή
αβρότης
άβυσσον
αγαθόν
αγαθούς
αγάλακτο
αγγούρι
αγελαδινού
αγέρα
αγεωμέτρητων
αγίνωτοι
άγκυρες
αγορεύσεις
αγόρευσή
αγορίνα
Αγοριού
Αγροληψία
Αρμόνια
βγαίνοντας
βεβαιώσεων
διάθεση
διαίρεση
Διαιρέσου
Διαιτολογίου
διαψεύσουν
διδασκάλισσας
ενασκήσεις
ενασχόληση
ενασχόλησή
ενδείξεις
ενδεχόμενον
ενδιαμέσου
Επιστήθιες
Επιστημο [Επιστημοσύνη]
Επιστολές
Επιστολή
εύπορους
ευρέα
ευρημάτων
ευρύτητά
ευσταθών
εύστροφα
ευσυνειδησία
εύτακτε
ευτελείς
ευτελίζουν
ιδρυτικό
ιεροψάλτες
Ιζόλα
Ιθαγένειάς
ικανότατος
ιλαρότης
κεφαλής
κεφαλιάτικες
κεφαλωτές
κήπε
κήπευση
Κήρυξής
Λεξικογραφιών
Λεξιλογικός
λεοντή
λεοντής
ολιγοχρόνιου
ολικέ
ολικές
ολική
πελαγώνω
πελατών
πελάων
προστατεύει
προστασίας
σούρουπου
σουρούπωμα
σούρτης
Σούρωνα
Σπαγέτα
Σφάλμα
Σφάλματά
σφικτά
σφικτέ
σφοδρότητας
σφοδρού
σφραγίσω
σχεδιάζουμε
σχεδιάζουν
σχηματίσου
σχηματίσουμε
σχολιάζεσαι
Σχολιάζεστε
Ενδιαφέροντα
Слова с ошибками []
Αβασiλευτου [Αβασίλευτου, Αβασίλευτο, Αβόλευτου]
αγαπούσαv [αγαπούσα, αγαπούσαν, αγαπούσε]
βeβαιωμένοι [βεβαιωμένοι, βεβαιωμένο]
εvασxόλησης [ενασχόλησης]
επιολικέ [επιστολικέ, επιστολικό]
ιδιωτικοποιήσειc [ιδιωτικοποιήσει, ιδιωτικοποιήσεις, ιδιωτικοποιήσετε, ιδιωτικοποιήσεως, ιδιωτικοποιήσεων, ιδιωτικοποιήστε]
λεπταίσθnτη [λεπταίσθητη, λεπταίσθητα, λεπταίσθητε, λεπταίσθητο]
πρoστιμάρισμα [προστιμάρισμα, στιμάρισμα]
σφάλμαtα [σφάλματα, σφάλμα]
προστάτεuε [προστάτευε, προστάτεψε, προστάτευσε, προστάτες, προστάτευα, προστάτευσα]
κεxριμπαριού [κεχριμπαριού, κεχριμπαρένιο]
διαισθnτικότητες [διαισθητικότητες, διαισθητικότητας, διαισθητικότητα, διαισθητικότης, αισθητικότητες]
αγκιστpώσουv [αγκιστρώσουν]
αγαθoεργiας [αγαθοεργίας]
αβεβαιoτητά [αβεβαιότητά, βεβαιότητά]
αγέρεc [αγέρες]
διδαούμε [διδαχθούμε, διδαχτούμε]
εuσταθειώv [ευσταθειών]

View File

@ -0,0 +1,116 @@
Acknowledge
acrophobia
adventurousness
aeronautics
algal
Alligator
allegation
alphabetise
Analogy
appropriable
assembly
attempt
Average
barbecue
bathtub
begun
belongingness
Better
binary
blackberry
boatswain
bow-tie
brambly
bright-eyed
bubble
Calender
cancellous
cantankerousness
carefree
categorized [categorised, categorise, categorisation, category, decorticated, cauterised, avant-grist]
cellular
chaos
cheerfulise
childlike
circumstance
close-mouthed
Cocoa
coherent
co-located
Colours
controversial
cottage
creditworthiness
cut-down
dedicated
deep-freeze
Definitive
Designs
digital
distensible
dollar
dyslexia
Egyptian
effectively
etiquette
excess
exotica
fairly
feedback
features
figure's
fjord
forty-seven
government
haematomata
helpless
homologous
implant
Indemnify
inexpert
interior
localises
loquaciousness
maelstrom
mechanizable
melodious
mezzo-soprano
mozzie
municipalisation
mystifier
Neoclassicism
newsletter
non-professional
officiation
orientalisation
palaeoanthropography
parrot
pickpocket
pioneer
cryptanalytic
simplifying
sommelier
spicy
steward
subcontinental
swimwear
Technical
trajectory
wholesomeness
Advantageously
interindustry
red-eye
sub-group
Слова с ошибками []
Acredited [Credited, A credited, Accredited, Accredit, Accreted, Creditable, Discredit, Acridity, Aegritude]
agressive [aggressive, regressive, digressive, progressive, transgressive, aggressor, expressive]
appreciativiness [appreciativeness, appreciatively, appreciative, appreciation, apprehensiveness, operativeness, provocativeness]
aritmetical [arithmetical, arithmetica, arithmetic, hermetical, antithetical, paramedical, grammatical]
biosyntesized [biosynthesized, nonsynthesised, synthesised, amniocenteses, amniocentesis]
lisense [license, senilise, linenise, sensualise, sensise, licence, licensable]
paranoa [paranoia, paranoid, paranormal, paragon, panorama, Paringa, parental]
fotoelectronic [photoelectronic]
semi transparent [semitransparent, transparentise, non-transparent, transparency, semi-permanent, transpiration, superintendence]
synonymus [synonyms, synonymous, synonym's, synonym us, synonym-us, synonym, anonymous, synchronous, synoecious, anonymise, unanimous]
wordprocessing [word-processing]

View File

@ -0,0 +1,125 @@
admire
admittance
aggrandizement
Airmen
Albatross
amateur
angling
apparatus
Architecture
assessment
attempt's
awakening
backgrounder
Balance's
barometric
bashfulness
beautiful
belletristic
blatancy
bonbon
border
Bottom
bountifulness
breakpoints
bulkiness
businesslike
can't
cash
castle
Casual
cauliflower
celebrity
childish
chokecherry
choreographically
chronological
classification
clearheaded
coalesce
Coexistence
collaborative
coloured's
concentration
draconian
drainpipe
demonstrativeness
dependence
dependency
dream
duplication
epidemiological
equitable
Essence
Exemption
exonerate
fainthearted
falsification
ferromagnetic
flammable
fraternization
French
frontier
gadget
galleria
Gallery
gateaux
geocache
ginger
glace
glacier
globalization
hockey
holiday
housemate
intensifier
joystick
Language
leaseholder
non-breakable
northerly
o'clock
oeuvre
openhandedness
oscillation
outface
outlaw
overladen
package
palazzo
panama
Paragraphs
Parliament
particular
pasteurization
pathogen
perception
phenomena
philanthropically
physical
populations
repugnance
request
resplendence
retroactive
rigidity
schedule's
School
scintillation
sensibility
settlement
taxiway
bereft
Слова с ошибками []
acomplishment [accomplishment, accomplish, compliment]
anihilate [annihilate, annihilator, annihilation]
caprise [caprice, cap rise, cap-rise, apprise]
chambre [chamber, chambray]
etnographically [ethnographically, pornographically, photographically, typographically, topographically]
horsmanship [horsemanship, sportsmanship, swordsmanship, marksmanship, showmanship]
innundation [inundation, foundation, annunciation, insinuation, intimidation]
lemongras [lemongrass, lemonades]
omelete [omelette, telemeter]
retorical [rhetorical, oratorical, categorical, theoretical, reportorial]
shepishness [sheepishness, snappishness, waspishness, impishness, foppishness]

View File

@ -0,0 +1,122 @@
Abbreviation
Acceptability
acquirable
Addressee
afterthought
airworthiness
all-powerful
amateurishness
amorphousness
anthology
Auspiciousness
Bibliographer
Bilberry
birthday
bodyguard
broadleaved
brontosaurus
bumptiousness
Cabaret
Californian
calumny
cancellation
cantonal
capitalize
careful
carry-on
casino
clown
co-ordinate
cockleshell
decennial
deckchair
decryption
deep-freeze
Democracy
financial
fish-plate
Flamenco
housing
Hybrid
hydroelectricity
iceboat
ichthyology
idiomatic
ill-humoured
imperatrix
individuality
interocular
intrasectoral
ironwoods
Jolliness
Jurisprudent
knowledgable
kopeks
labour-intensive
laboratory
lake
language
larynx
latching
leakiness
License
licensed
licensee
life-threatening
linguistics
long-lived
machinable
mainsheet
Major
malleability
man-hour
Mango
ninety-five
nobody
non-blocking
non-judicial
nonconforming
north-Western
nutritiousness
quasi-synchronous
question
racoon [raccoon, racoon's, contra]
radish
Railway
Rarity
saucer
Save
Saying
supplely
tallish
target
Taxi
teach-in
technician
ultramodern
umbrae
uncertainness
unconstitutionality
washing
wasn't
waxen
weather
well-formed
what's-his-name
whereupon
Wi-Fi
Wikipedia
Слова с ошибками []
Abstractnes [Abstractness, Abstractedness, Abstracter, Abstraction, Abstracted]
advantageusness [advantageousness, advantageous]
arhythmical [rhythmical, arrhythmical, a rhythmical, arrhythmic, arrhythmia]
autosuggestibility [auto-suggestibility]
kaptor [captor]
coldshouldering [cold-shouldering]
humaneneses [humaneness, humanenesses, humannesses, humanness, humanises, humblenesses]
imaginativness [imaginativeness, imaginative, imaginableness, imitativeness]
knight-erantry [knight-errantry, straight-eight]
magasine [magazine, magnesia, imagine]
night-wachman [night-watchman, nightmarish]
qualifidly [qualifiedly, qualified, squalidly]

View File

@ -0,0 +1,218 @@
apple
banana
cat
dog
egg
fish
gold
house
ice
juice
kite
lion
mouse
night
orange
pencil
queen
rabbit
sun
tea
umbrella
vase
watch
xylophone
yellow
zebra
arrow
book
cake
car
day
elephant
flower
hat
island
jelly
king
lamp
moon
nose
owl
pink
quilt
radio
sunflower
tree
unicorn
violin
water
xylophone
yellow
zoo
apple juice [applesauce]
blue
calculator
desk
elephant
fire
goat
hat
ice cream [creamer]
jacket
key
lemon
map
notebook
owl
pear
quilt
rose
soccer
table
umbrella
vegetable
whale
xylophone
yellow
zebra
apple pie [pineapple]
beach
computer
drum
elephant
goat cheese [headcheese]
hat
ice skate [cheapskate]
juice box [jukebox]
kite festival [quite festival]
lemonade
mountain
notebook paper []
orange juice [orangeade]
pizza
queen bee [quin bee, queen bi, keen bee, ween bee]
rainbow
snow
turtle
umbrella hat [umbrella]
valley
Aberration
Absolution
Acquiesce
Adumbrate
Aesthete
Altruistic
Ambivalent
Anomalous
Antediluvian
Antipathy
Aphorism
Apocryphal
Apostasy
Apparition
Arduous
Assiduous
Audacious
Austere
Autonomy
Avaricious
Axiomatic
Baleful
Bellicose
Belligerent
Bereft
Bilious
Bombastic
Cacophony
Capricious
Cartography
Castigate
Clandestine
Coalesce
Cogent
Cognizant
Colloquy
Concomitant
Confabulate
Congenial
Conundrum
Copious
Corpulent
Coven
Credulous
Culpable
Dearth
Debilitate
Deleterious
Denigrate
Despondent
Diatribe
Dilapidated
Disparage
Dissemble
Dissonance
Duplicity
Ebullient
Egregious
Ephemeral
Equanimity
Esoteric
Euphemism
Evanescent
Exacerbate
Exhort
Expatriate
Extol
Facetious
Fatuous
Feckless
Felicitous
Feral
Fervent
Fetter
Flummox
Fractious
Garrulous
Hegemony
Iconoclast
Idiosyncrasy
Ignominious
Impecunious
Ineffable
Inexorable
Inscrutable
Insidious
Intrepid
Intransigent
Invective
Irascible
Juxtapose
Kowtow
Languid
Lassitude
Lurid
Malinger
Maudlin
Mawkish
Mendacious
Metaphysical
Antransigent [Intransigent, Intransigence, Transient, Intransitive, Transcendent]
Inwective [Infective, Invective, Ineffective, Instinctive, Inactive]
Iracible [Irascible, Acquirable]
Juxtopose [Juxtapose, Juxtaposition]
Kovtow [Kowtow, Kowloon]
Langued [Languid, Languished]
Lasitude [Lassitude, Latitude]
Larid [Arid, L arid, La rid, La-rid, Laird, Lard, Laid, Lurid]
Mallinger [Malinger, Salinger, Lingering, Lingerer, Germinal]
Haudlin [Maudlin, Handling]
Mavkish [Mawkish, Mavis]
Mendocious [Mendacious, Mendocino]
Mitaphysical [Metaphysical, Physicality, Physical]
timeline [time line, time-line, timberline]
rollout [roll out, roll-out, rollover]
workshopped [work shopped, work-shopped, works hopped, works-hopped, workshop]
deliverables [deliverable, deliverable s, deliverers, deliberative, desirable]

View File

@ -0,0 +1,114 @@
Acceptably
Achievement
administrate
all-day
amount
average
bilayer
blasé
boutique
breezy
byers
cabdriver
carefree
categorised
Chameleon
cheerful
chronology
cliché
cooling-off
courage
crudités
decorates
dooryard
débâcle
electromotive
equalled
Exotica
fellow-traveller
forests
full-timer
graded
habitué
haven't
hide-and-seek
home-building
interaxial
kingdom
largeness
long-distance
Majority
manoeuvre
Matrix
metier
mightn't
multidisciplinary
night-time
officio
old-style
organize
overaggressive
packing
parenthesis
pince-nez
Plaint
play-act
policy-making
Preheat
prohibit
puzzle
queue
quite
re-enact
reason
ready-made
renewal
resize
rooihout
scampi
schoolteacher
sea-green
shop-boy
sidebar
skyscraper
soundless
spelling
stakeout
synchronizing
take-off
Thereof
Trademark
transportable
treatment
tweeness
under-age
unmake
Variate
Visitant
volume
webmaster
well-prepared
window
yesteryear
first-aid
Hydrant
inconstant
network
northernmost
nowhere
souvenir
telecommunicate
Слова с ошибками []
afordable [fordable, affordable, a fordable, formidable, recordable, foreseeable, adorable, avoidable, avoidably]
anthropologie [anthropology, anthropologies]
bagage [baggage, bag age, bag-age, Babbage, garbage, bagged, bagel, bakgat, ribcage]
comparatif [comparative, comparator, compatriot, comparable, comparability, comparably]
flammeble [flammable, flamelike, lamentable, blameless, flamed, flammability, flamboyance]
indivizible [indivisible, individualize, indiscernible, divisible, invincible, indefeasible, inadvisability]
jetlag [jet-lag]
lettrebox [letterbox, treble, storybook, legislature]
panoramma [panorama, Panorama, panoramic, paranormal, Panamanian, pentagram, paramagnet]
posessor [possessor, possess, assessor, processor, professor, poses, posses]
selfdoubt [self-doubt]
abandonner [abandoner, abandon, bandoleer, Ndondondwane, Bannerman, abundance, abundant]

View File

@ -0,0 +1,208 @@
nosotros
vosotros
ellos
ellas
aquí
allí
ahora
antes
después
siempre
nunca
también
solamente
verdad
mentira
bien
mal
grande
pequeño
rápido
lento
nuevo
viejo
bueno
malo
feliz
triste
bonito
feo
caliente
frío
dulce
amargo
fuerte
débil
cerca
lejos
fácil
difícil
cierto
falso
caro
barato
limpio
sucio
fuerte
débil
alto
bajo
claro
oscuro
abierto
cerrado
joven
viejo
corto
largo
alegre
tranquilo
nervioso
amable
grosero
conocido
desconocido
cortés
rudo
agradable
desagradable
sabroso
insípido
difícil
fácil
cansado
descansado
moderno
antiguo
último
primero
posible
imposible
rápido
lento
sencillo
complicado
propio
ajeno
abierto
cerrado
amable
desagradable
seguro
inseguro
correcto
incorrecto
dulce
amargo
Anacoreta
Sobrentender
Embriaguez
Inquebrantable
Empedernido
Derramamiento
Despotricar
Escafandra
Aletargamiento
Estancamiento
Descarado
Exégesis [Génesis]
Contrariedad
Espeluznante
Conspiración
Impedimenta
Deglutir
Engreído
Enmascarado
Exterminio
Embelesar
Permutación [Permutan]
Desesperanza
Impenetrable
Enarbolamiento [Enarbola miento, Enarbola-miento, Enrollamiento, Arrollamiento, Encarcelamiento, Eslabonamiento]
Errabundo
Deslinde
Inefable
Soliviantar
Embriaguez
Perdurable
Opulencia
Trémulo
Desembolso
Empedernido
Anquilosar
Enigmático
Inquebrantable
Contrincante
Desmesurado
Vanagloriar
Exasperar
Desvanecer
Perpetuidad
Desbaratar
Ineficaz
Zozobra
Elucubración
Ineludible
Desgarramiento
Atestiguar
Encascarar [Encascara, Encascaran, Encascaras, Enmascarar, Encascar, Encascar ar, Encascar-ar, Encascabelar, Encascotar, Enmascaran, Enmascara]
Desembozar
Irreverente
Soslayar
Despiadado
Embaucar
Moflete
Endilgar
Desfalco
Embelesamiento
Desestimar
Enajenación
Desavenencia
Inexorable
Atolladero
Egrégoro [Negror]
Desafiar
Afable
Enervar
Belicoso
Enervar
Descacharrante
Entramado
Inigualable
Perplejidad
Descabellado
Diligencia
Enaltecimiento
Desvergonzado
Arrebato
Empatía [Empata, Empate]
Endiosar
Peripecia
Desidia
Subversión
Desfachatado
Desfalco
Desvirtuar
Errático
Desahuciar
Envilecimiento
Empecinado
Estolidez
Despropósito
Engatusar
Culminante
Sobrentender
Enseñorear
Desacato
segguro [seguro, seg guro, seg-guro, seguiros, segur]
insseguro [inseguro, insegura]
correcto
incarrecto [incorrecto, insurrecto]
dalce [salce, dale, alce, dance, calce, dalle, dulce, d alce, cendal, cebadal, celda]
amergo [amero, mergo, amargo, amelgo, a mergo, amorgone]
Anasoreta [Anacoreta, Masoreta, Trasfretana, Asotanas, Asotanara]
Sobrententter [Sobrestante, Soberanamente, Sobriamente, Soberbiamente]
Embreagues [Embregues, Embragues, Embriagues, Embriaguemos, Embragares, Embrague, Embriague]
Inquebranttable [Inquebrantable, Quebrantable, Infranqueable, Intransitable]
Empidernedo [Empedernido, Empedernecer, Empedernir]

View File

@ -0,0 +1,132 @@
Abantza
ñabar
abasto
abegikortasun
aberaskeria
aberetzar
abezedario
abialdi
Abiatzaile
abizari
Aboli
abonatu
absenta
absolutibo
accelerando
adabegitsu
adberbio
adiaka
adierazle
adierazkizun
adikuntza
adin
adinaro
adineratu
adin-txikitasun
administratzaile
adoleszentzia
adopzio
adostu
aerolabangailu
Aeroplano
afalordu
agente
agertezin
agiantza
agoran
arradatze
arrakasta
Batata
baterakuntza
baterakor
Bateri
batuar
baud-abiadura
batzuenganako
batzuengandik
batzuengan
batzuengatik
batzuen
baxera
berezi
berezikeria
beritzete
beroa
Beroate
beroatza
berorri
berrabiatu
berra
berresgarri
berripaper
chap
dabilzkidake
dabilzkie
dagitza
dagokik
dagozkieke
erdiondu
galdera
galtzada
garaitiar
garantia
Garaztaketa
garbitasun
gastronomiko
Gaurgero
gaurgoitik
legizkie
legokizue
legozkidake
lehenbizi
nindoakio
publikotasun
publizitate
subsidiario
substantibo
sugestio
superbalorazio
taidun
taldeburu
Talent
Teknografia
xantxa
xerbitor
xerokopia
zabaldura
Zabalkor
Zabaltza
zabilzkieken
zabilzkio
zaharkote
zeneritzeketen
zenerra
zenezagu
zengozkigute
zeniharduke
zenioke
zenioketez
zeniraute
zenizkien
zenizkiguke
Zintut
Zintuzkedan
isiltasun
Слова с ошибками []
abriсot [abrikot, abrigo]
absenzia [absentzia]
addikzio [adikzio, dikzio, adukzio, adizio]
administraziozerbizu [administrazio-zerbitzu, administrazio-zuzenbide, administraziopean]
bat-bates [bat-batez]
bermagari [bermagarri, bermagailuari, bermagailuri, armagaberi, bermaguneari]
cataluniar [kataluniar, catalunyar, kataluniera]
dakarza [dakartza, dakarna, dakarzu]
erdemin [erremin, erdimin, iminerdi]
garatienetarikoa [garatuenetarikoa, ugarienetarikoa, gogoratuenetarikoa, argienetarikoa, aberatsenetarikoa]
ishil [isil, istil]
nindezaguane [nindezaguena, nindezaguan, nindezaguanez, nindezaguanek, nindezaguanen, nindezaguanei, nindezaguana, nindezagunan, nindezagutean, nindezagutenan, nindezaguzue]
nintzainaken [nintzainanek, nintzainake, nintzainakeen, nintzainanen, nintzaiakeenen, nintzaiakeen, nintzakenanen, nintzaiekenan]
summa [suma, susma, sumoa]
technologiko [teknologikoko, teknologiko, terminologiko, etnologikoko]
charmant [charmat, xarmant]

View File

@ -0,0 +1,211 @@
Bonjour
Merci
Oui
Non
S'il
Excusez-moi
Pardon
Bien
Mal
Grosse
Petit
Beau
Moche
Fort
Faible
Chaud
Froid
Vite
Lent
Haut
Bas
Loin
Près
Heureux
Triste
Facile
Difficile
Simple
Compliqué
Bon
Mauvais
Nouveau
Vieux
Jeune
Âgé
Bienvenue
Amitié
Amour
Famille
Travail
Maison
Voiture
Manger
Boire
Courir
Marcher
Nager
Chanter
Dormir
Jouer
Parler
Écouter
Regarder
Lire
Écrire
Acheter
Vendre
Aller
Venir
Faire
Dire
Voir
Savoir
Apprendre
Aimer
Détester
Partir
Rester
Arriver
Revenir
Partager
Aider
Aimer
Ouvrir
Fermer
Manger
Boire
Avoir
Être
Pouvoir
Vouloir
Devoir
Parler
Écouter
Rire
Pleurer
Danse
Étudier
Travailler
Voyager
Vivre
Connaître
Reconnaître
Voyager
Exister
Choisir
Donner
Recevoir
Aimer
Oser
Phénoménologie
Électroencéphalographie
Parallélépipède
Anticonstitutionnellement
Transsubstantiation
Éclectisme
Anachronisme
Catéchuménat
Démagogie
Fructueux
Ineffable
Hypothèque
Propriété
Procrastination
Complaisance
Réminiscence
Éthique
Équinoxe
Exponentiel
Hétérogénéité
Imbroglio
Incorrigible
Maelström
Métaphysique
Protagoniste
Subliminal
Verrouillage
Volumétrique
Énigmatique
Époustouflant
Immatériel
Infini
Polyglotte
Recrudescence
Prophylactique
Symbiotique
Vestibulaire
Épistémologie
Faramineux
Géopolitique
Hypnotique
Inamovible
Intemporel
Labyrinthe
Pacifiste
Quémandeur
Soporifique
Ubuesque
Volumineux
Effervescence
Électrophorèse
Paradoxe
Prorata
Quadrupède
Sarcophage
Trigonométrie
Vaccinologie [Carcinologie, Actinologie, Vaccinogène, Accidentologie]
Xenophobe [Xénophobe, Technophobe]
Zéphyr
Génétique
Labyrintique [Labyrinthique]
Mégalo
Nostalgie
Omniprésent
Pangramme
Périlleux
Quinquennat
Rémunération
Scolopendre
Tautologique
Utopiste
Vexatoire
Wolof
Xanthine
Yacht
Zanzibar
Axiomatique
Chronométrer
Dilettante
Énervement
Facétieux
Générique
Harmonique
Illusoire
Juridique
Kabbaliste
Longetivité [Longévité]
Médiane
Néologisme
Oxygène
Patronymique
Quotidien
Rétorique [Rétorque, Rhétorique, Rotorique, Ré torique, Ré-torique, Météorique, Torique, Théorétique, Théorique]
Sémantique
Tautologie
Utopique
Vaccinologie [Carcinologie, Actinologie, Vaccinogène, Accidentologie]
Xénophobie
Yachting
Zoroastrisme
Voager [Viager, Voyager, Ouvrager]
Exisster [Exister]
Chaiser [Chaires, Chaise, Chaisier, Chaises, Chasser, Chaise r, Chamoiser, Tchadiser]
Doner [Toner, Zoner, Donner, Drone, Doser, Doter, Dorer, Douer, Doler, Doper, Dîner]
Resevoir [Redevoir, Recevoir, Revoir, Reversoir, Ivoire, Voire]
Aimmer [Aimer]
Osero [Oser, Osera, Oser o, Rosser, Roeser, Rose]
Phénoménollogie [Phénoménologie]
Électraencéphallographie []
Parallélépepède [Parallélépipède]

View File

@ -0,0 +1,120 @@
ola
tipo
Si
non
nonnr [nono]
comida
comidaa [comídaa, comidas, comida, comidan]
auga
augaa [áugaa, augas, auga, augaba, augada, augala, augara, augar]
casa
coche
cochee [coches, coche, chochee, cachee, checo]
un tren [oin tren]
bicicleta
escola
escolaa [escóraa, escoala, escolas, escola, escálaa, escolla, escolma, escolar, escolta]
niños
pai
paii [paio, pai, pii, aii, pali, pais]
nai
naii [nai, nii, aii, naif, nais, nazi]
irmá
irmán
cachorro
gato
gatoo [gato, atoo, gateo, gatos]
peixe
peixee [peidee, peixes, peixe, peitee]
aves
avess [aveas, avesa, aves, avesas, avesos, vesas, aveso, aveces, escave]
árbore
flor
herba
o sol [ou sol]
lúa
o ceo [ou ceo, o ceou]
chuvia
neve
vexa
inverno
primavera
outono
noite
noite
día
unha semana [semanalmente]
mes
ano
para ler [parable]
escribir
fala
ensinar
traballo
durmir
durmir
correr
vai
senta
estado
para escoitar [parasitario]
vexa
escoita
hai
beber
carne
furtas
verduras
queixo
pan
auga
zume
café
leite
aceite
ovo
sal
impacienta
azucre
un bocadillo [oin bocadillo]
cociña
sala de estar [sala dei estar]
dormitorio
baño
batela
sofá
lámpada
fiestra
a porta [aporta, portara, portador, porta]
piso
teito
parede
sofá
alfombra
baño
afundir
espello
toalla
cama
manta
almofada
reloxo de alarma [riloxo de alarma, ríloxo de alarma, reiloxo de alarma, reloxo dei alarma, relouxo de alarma, reloxou de alarma, relollo de alarma]
escritorio
cadeira
marabilloso
adverbio
obviamente
Dominante
residenciais
convidado
perigo
cuestión
deporte
mina
cordeiro
cabeza
tratar
avogado
intelixente
guapo

View File

@ -0,0 +1,215 @@
boliestan [bolestan, obijestan]
jyak [jak]
slaby [slabu, slab, slaba, slabe, slabi, slabo]
pameetan [pametan, pametna, napamet]
gllup [glup]
bezuspješhno [bezuspješno, bezuspješnih, bezuspješan, bezuspješna]
besimeni [besi meni, besi-meni, bezimeni, besanim]
bezuzban [bezuman, bezuba]
blagastanje [blagostanje, blaga stanje, blaga-stanje, blagostanja, blistanje, oblaganje]
bljeskovica [bljeskovima, bljeskovi, bljeskova, bljeskalica, bljeskavi]
jabuka
sunce
voda
kuća
ptica
kava
kruh
cvijet
knjiga
pas
mačka
grad
zelen
plav
crven
bijel
crn
velik
malen
brz
spor
sretan
tužan
vruć
hladan
nov
star
lijep
ružan
dobar
loš
zdrav
bolestan
jak
slab
pametan
glup
raditi
jesti
piti
spavati
čitati
pisati
govoriti
smijati se [smijati]
plakati
pjevati
igrati
plesati
učiti se [učiti]
kupovati
kuhati
telefonirati
gledati
slušati
hodati
trčati
letjeti
plivati
čitati
pisati
raditi
imati
biti
ići
doći
otići
dati
uzeti
reći
vidjeti
čuti
osjetiti
misliti
htjeti
moći
morati
rado
nerado
da
ne
molim
hvala
doviđenja
oprosti
zbogom
zdravo
čau [ča, ču, čađu, čaju, čamu, času, čađ, čaj, čak, čar, čas, ča u]
ej
da
baš
super
glupost
fantastično
jasno
tako
zapravo
možda
lako
teško
prozračnost
usplahirenost
neoblomivost [neslomivom]
prezir
proigranost [prostranost, programiranosti, razigranosti, pristranost]
uznemirenost
besprijekornost
besprizornost [besprizornom, besprizornoj, besprijekornost, besprizorni]
nepredvidivost
beznadnost
promašenost [promašenosti, promašen, osiromašenom, raspršenost]
protivljenje
neizreciv
bezizlaznost
neuspjelost [neuspjeloj, neuspješnost, neuspjelog, neuspjelom]
zbunjenost
neodlučnost
protivština
nepovratnost [nepovratnoj, nepovratnom, nepovratna, nepovratnima]
bezduhovitost [bez duhovitost, bez-duhovitost, duhovitostu, duhovitosti, duhovitosta, duhovitost]
ravnodušnost
prolaznost
neobaveznost [neobaveznosti, neobaveznom, neobaveznoj, neobavezna, neobavezni]
bezbrižnost
nepovratnost [nepovratnoj, nepovratnom, nepovratna, nepovratnima]
promašenost [promašenosti, promašen, osiromašenom, raspršenost]
neprepoznatljivost [neprepoznatljivosti, ne prepoznatljivost, ne-prepoznatljivost, prepoznatljivosti, prepoznatljivost, neprepoznatljiva, neraspoznatljivosti]
neukrotivost [neukrotivog, neukrotiv, neučtivost, neotuđivosti]
bezobzirnost
nevinost
nestalnost
nepostojanost
bezizlaznost
nepovratnost [nepovratnoj, nepovratnom, nepovratna, nepovratnima]
prolaznost
neodgovornost
bezbrižnost
nevolja
nezadovoljstvo
prolaznost
bezuspješno
bezimeni
bezuzdan [bez uzdan, bez-uzdan, bezdan, bezdušan, beznadan]
blagostanje
bljeskavica [bljeskalica, bljeskavima, bljeska vica, bljeska-vica, bljeskavi, bljeskalici, bljeskava, bljeskalicu]
boren [borne, obrne, bore, oboren, borbena]
carovnija [otrovnija, darovnica]
crpeža [crteža]
dostojanstvo
duhovitost
egzaltacija
gorkoća [gorkoga, gorkošću]
histerija
idila
ironija
izdaja
janjetina
kajanje
kavana
krhotina
ljepljivost
lukavstvo
magnutizam [zategnutima, zamahnutima, izdignutima, vagnutima]
melankolija
misticizam
naivnost
nelagoda
neraspoloženje
obmana
okrutnost
opojenost [opojnost, obojenost, opojenoj, popunjenost, podvojenost, opčinjenost]
prezir
propast
ravnodušnost
sjenka
skitnica
spletka
stid
sudbina
susret
sudbina
šapat
tišina
trepet
utopija
uzaludnost
veličanstvo
zaborav
zanesenost
zanos
zavjera
zbunjenost
zluradost [zluradosti, zlu radost, zlu-radost, zlurad]
zloslutnost [zloslutnoj, zloslutnom, zloslutnu, zloslutna]
žargon
žártva [žrtva]
šaptanje
čarobnost
dileme
hodočasće [hodočaste, hodočašće]
lebdjeti
iznimka
preobilje [preobilne, preoblikuje]
probuditi se [probuditi]
surov

View File

@ -0,0 +1,114 @@
Szorzótábla
Réges-régen
normálméret
nemeslelkűség
mindegyik
milliós
Mikroflóra
Mezőgazdaságigép
meséskönyv
mennyiség
Memória
kártya
kuráre
Kurzor
jégkorong
jellemesség
Javak
irányzás
iromány
Inkluzíve
hűtőedény
hőmérséklet
hír
hétszázas
hátrány
háromszáz
Hintó
generátor
gavallérság
explozíva
eső
esdeklés
epilógus
Energia
Előélet
előterjesztés
előnézet
elvonás
elszigetelés
ellátmány
Elevátor
egynémelykor
egyenlőség
eddzenek
dzsungel
ananász
akvárium
Szépül
Sztorizik
szobroz
szimbolizál
szemlélődik
sugdolózik
majmol
Macskáz
Létesít
Lokalizálódik
litografál
levelesedik
lepet
közömbösít
kételkedik
kivirágoz
kerekez
kedvez
járkál
jegyzőkönyvez
iskolázik
individualizál
csendesít
borsoz
billentet
bajmolódik
anyagozik
alkonyodik
Aktualizál
színes
szemelt
lassú
hatékony
hasznos
gyúlékony
gyári
abszurd
örökjog
öregkor
ömlő
Zászlaj [Zászlajú, Zászlaja, Zászlai, Zászlóalj]
Zseblámpa
regényirodalom
realitás
raktárhelyiség
pötty
pótlék
pótdíj
pályafutás
Promóció
Processzus
poloska
pernye
pediáter
parancsnoklás
Слова с ошибками []
sponzorálás [szponzorálás, szponzorál, zongorálás]
mihamarábiak [mihamarábbiak, mihamarabbiak, mihamarábbi, hamarábbiak, mihamarább]
idohatár [időhatár]
hypnotizmus [hipnotizmus, nepotizmus]
departement [département]
légiesul [légiesül, légiósul]
kutagat [kutatgat, kutazgat, kutasat, kutakat, kutadat, kutamat, kútagát, kútágat, kútágát, kutat]
költségtakkarékos [költségtakarékos, költségtakarékkos, költséghatékony]
redukzió [redukció, redukáló]
pilanatfelvétel [pillanatfelvétel, pialantfelvétel, adatfelvétel]

View File

@ -0,0 +1,121 @@
acang-acang
Adiksi
Adventisius
Advokat
afirmatif
agroindustry [agroindustri, nonindustri]
agrisilvikultur
akhir-akhir
akomodatif
aksi
aljabar
anggul
anotasi
antusiasme
apoteker
bahagia
bakat
bangkang
Bankir
Barikade
bebaru
belar
beleid
bencana
bentangur
beritawan
besuk
bilingualisme
Cecak
Celempong
cencawan
cengkar
ceremai
cermin
cudang
Dampal
dampan
dansa
datung
debitur
defensi
defisit
demper
dendang
Derivasi
Desember
deskripsi
diskotek
diskusi
distansi
dragon
dramatisasi
Eksamen
Eksistensi
eksperimen
ekstensifikasi
ekuitas
elektron
gelut
Geofisikawan
Gerbang
gerempang
influenza
Informasi
Inisiator
insekta
institusional
instruksional
jelajah
Kamrad
Kapilaritas
kapster
kardiovaskular
karismatik
keranjingan
komunal
Limitatif
Linguistik
lintang
masabodoh [masa bodoh, masa-bodoh, mastodon]
matematikus
medisinal
Melankolia
Memorabilia
nasional
nasionisme
Panen
pangkek
peranti
perian
persekusi
perunjung
regenerasi
reglementer
robotika
runjang
Sabtu
Simbang
simpati
tebing
topi
Unggal
unsuri
urbanisasi
variabel
wahana
warganegara [warga negara, warga-negara, negarawan, antarnegara, mancanegara, waranggana]
Слова с ошибками []
Abonement [Abonemen, Bombardemen]
Abcente [Absente, Centet]
ambivalan [ambivalen, ambilan, ambalan]
bakteriostatic [bakteriostatik, bakteriolisis]
cekaw [cekat, cekak, cekau, cekam, cekal, cekah, kacek]
darmavisata [darmawisata, darmatirta, mandataris]
declarasi [deklarasi, deflagrasi]
duplex [dupleks]
ecozona [ekozona, eco zona, eco-zona]
gempur-mengempur [gempur-menggempur, gempul-gempul]
jejengok [jejengkok, jengkeng]
transitive [transitif, transvetisme, transit, transisi]

View File

@ -0,0 +1,200 @@
Ciao
Ciaoo [Ciao, Ciano, Ciao o, Ciocia]
Buongiorno
Buonasera
Buonassera [Buonasera, Buon assera, Buon-assera, Buonalbergo]
Grazie
Prego
Arrivederci
Buonanotte
Scusa
Per favore [Favorevole]
Amore
Amico
Famiglia
Casa
Città
Strada
Montagna
Montaga [Montagna, Montata, Montana, Montala, Montava, Montaggi, Montaguto, Montano, Montato]
Mare
Sole
Luna
Stelle
Giorno
Notte
Colazione
Clazione [Colazione, Coazione, Cl azione, Cl-azione, Clonazione, Collazione, Clorazione, Chelazione]
Pranzo
Cena
Acqua
Vino
Caffè
Pane
Formaggio
Pasta
Pizza
Gelato
Dolce
Salato
Frutta
Verdura
Carne
Pesce
Pollo
Uovo
Sale
Pepe
Olio
Burro
Zucchero
Latte
Yogurt
Insalata
Zuppa
Bistecca
Prosciutto
Parmigiano
Biscotti
Cioccolato
Spagggrhetti [Spaghetti, Spaghetteria]
Spaghetti
Lasagne
Risotto
Gnocchi
Penne
Ravioli
Cannelloni
Pesto
Caprese
Limoncello
Espresso
Cappuccino
Tiramisù
Panna cotta [Panbiscotto]
Cannoli
Panettone
Brioche
Focaccia
Foacdccia [Focaccia]
Crostini
Arancini
Antipasto
Primo piatto [Rimpiattato, Primariato, Rimpiatto, Rimpatriato]
Secondo piatto [Attosecondo]
Contorno
Pane tostato [Tostapane]
Marmellata
Accoglienza
Affascinante
Aggressività
Alleviare
Appassionato
Armonioso
Autonomia
Autovfnomia [Autonomia, Autotomia]
Barbarie
Beneficiare
Bizzarro
Burocrazia
Cambiamento
Capriccioso
Cautela
Commemorare
Comportamento
Conseguenza
Controverso
Coraggioso
Debolezza
Decisivo
Delizioso
Desiderare
Destrezza
Determinato
Determin [Determina, Determini, Determino, Determinò, Termine]
Difficoltà
Disponibilità
Divertimento
Eccentrico
Efficienza
Elettrizzante
Emergere
Empatia
Energia
Equilibrio
Esperienza
Fantastico
Fenomenale
Generosità
Gratitudine
Immaginazione
Impressionante
Impressiante [Impressi ante, Impressi-ante, Impressionante, Impressionate, Imprestante, Impressioniste]
Indipendenza
Ingenuità
Innovazione
Intelligenza
Intensità
Intrigante
Ispirazione
Instabilità
Irresistibile
Leggenda
Libertà
Luminoso
Magistrale
Malinconia
Meraviglioso
Metamorfosi
Miracolo
Misterioso
Nostalgia
Opportunità
Originalità
Passione
Pericoloso
Prestigioso
Prodigioso
Prospettiva
Raffinato
Rafinato [Raffinato, Rapinato, Affinato, Trainato, Raffrenato, Raffilato]
Ricchezza
Rispettoso
Sensibilità
Sorprendente
Spontaneità
Spontaneita [Spontaneità, Spontaneista]
Stravagante
Suggestivo
Surreale
Tenerezza
Trasformazione
Unicità
Vibrante
Vittoria
Volontà
Amicizia
Avventura
Bellezza
Calma
Danza
Eleganza
Felicità
Gioia
Incanto
Magia
Natura
Odore
Passatempo
Quotidiano
Relax
Serenità
Tesoro
Umorismo
Vacanza
Zelo
Avventuriero
Speranza
Risate
Armonia
Incanto

View File

@ -0,0 +1,209 @@
сөз
адам
қала
тау
ауа
су
аспан
жер
бала
ата
ана
тамақ
кітап
ұстаз
оқу
тұтыну
тыныш
тұз
ауру
денсаулық
топ
маусым
төс
көз
жүрек
сарғыш
көп
аз
ертең
түн
түс
жас
қара
ақ
көк
қызыл
шай
салт
ыстық
суық
қазақ
жеті
он
жүз
мың
бір
екі
үш
төрт
бес
алты
жеті
сегіз
тоғыз
он
бақша
бұлақ
қиыр
досым
ақша
патша
таң
кеш
тауар
күн
апат
риза
ауырсыну
орман
жаңбыр
бауыр
жел
тұман
үй
бұлақ
көше
айнала
шайыр
тағам
сусын
топ
бас
әрекет
тіл
кеме
сиыр
қой
ешкі
шөп
ит
тұқым
қарындаш
апа
ана
әке
дала
тарлау
дәуір
таңдай
жыл
басқарушылар
басқарушшылар [басқарушылар, басқарушы, басқармасылар, басқаруғалар, бақылаушыларлар]
жауапкер
ерекшеліктерімендерге
тұмылдырықтатқыздан
білімділігінге
білімдарды
алалықсыздар
айырмашылықтарын
тұрақтандырып
сылтауратқандарыңызды
қолдар
байланысқадан
жетілдірілген
зарарсыздандырады
ескеріп
ескеріпп [ескеріп, ескеріпі, ескеріле]
міндеттемелеріндерге
кезеңдердің
себепсіздік
біреудейлер
беделілерің
кездестіріңіз
шектердің
көңіл
көңл [көң, көл, көңіл, көңі]
мол
алайда
мәселе
мәселеу [мәселе, мәселең, мәселен, мәселес, мәпелеу, мәуелеу, мәселем, мә селеу, селеу]
сендің
келер
келерр [келер, керлер, келері, кереле, еркеле, кермеле, келекеле]
кәне
көпір
күндіз
сана
белгілер
дайын
ез
қайшы
саф
рең
шақ
үміткер
бақыт
бақытт [бақыт, бақытта, бақытты, бақырт, бақыты]
республика
консервациялау
мемлекеттік
тағатсыздан
адамда
бәрі
бең
беңр [бең, бер]
жасағанда
жасағоанда [жасағанда, жасалғанда, жасасқанда, жасаманда, жасақанда]
жабайылық
заманда
көшірдік
мерейі
Мерейій [Мерейі, Мерейің, Мерейім, Мерейлі, Мерей, Мейір]
мөлшерсіздікк [мөлшерсіздік, өлшемсіздік, мөлшерсіз, өлшеусіздік]
мөлшерсіздік
пенді
тылда
мәртебесімен
аппаратпен
тегінді
кездеме
ересектік
көңілсіздік
тәуекелсіздік
қанағатсыздық
ғаділетсіздік
сайдақы
басым
тәжікеден
тұрғын
қонақ
қауіпсіздік
қадірсіздік
білгішсінбейсіңдер
талқандас
кешікті
қоздырғышы
бас
емдейсіңдер
құқылы
тақылет
әдемі
көткеншектейсіңдер
әжет
қайтар
белсену
түсінбеймін
жағымсыздық
сыздар
мәртебесі
тұрғыны
мезгіл
әлбетте
барысын
оқылған
безге
жаса
аламаңдайсыңдар
кереметті
епетейсіздік

View File

@ -0,0 +1,157 @@
안녕하세요
감사합니다
사랑해요
미안합니다
음식
친구
가방
학교
컴퓨터
바다
날씨
노래
치킨
반찬
숙제
가족
아이
게임
영화
생일
시간
동물
여행
쇼핑
추천
대화
전화
사진
운동
병원
음료수
능력
주말
전자기기
고양이
강아지
바나나
가을
겨울
여름
신발
지하철
택시
버스
비행기
샴푸
브러시
삼계탕
국수
불고기
된장
김치
먹다
마시다
보다
듣다
놀다
하다
가다
오다
서다
늦다
일어나다
자다
빨갛다
파랗다
노랗다
녹색
보라색
맛있다
시원하다
덥다
추운
기분
슬프다
즐겁다
정신이
바쁘다
참새
나비
병아리
물고기
향신료
시장
기차
공원
해변
지갑
병원
대학
교통
공항
천재
연구
일본
중국
사업
지식
성격
자금
기술
정부
전략
협력
혁신
경제
철학
신체
영감
현상
역사
태양
설명
사회
환경
자연
현실
존경
정확
장애
낙관
발전
절망
일상
소멸
도전
반복
포기
파괴
혁혹 [현혹, 혈족]
소외 [쇠오, 소아, 시외, 소오, 소에, 소의, 소와, 소요, 소유, 소위, 소야, 소되, 소뇌, 소 외, 소외감]
식민지
혐오
출산
행복
불평
판매
위험
안녕하ㅎ요 [안녕하다]
감사합ㅅ다 [감사하다, 감사하여가다, 감사해가다]
사랑ㄱ해요 [사랑해요, 사랑해내요]
미안ㅎ합니다 [미안합니다, 미안한체합니다, 미안할만합니다, 미안해갑니다, 미안하여갑니다]
친ㅔ구 [친구]
가ㅎ방 [가방, 감방]

View File

@ -0,0 +1,118 @@
Aarbecht
Aarbechtszäitorganisatioun
Aartgenoss
Abenteuer
abrëll [Abrëll, brëll]
absence [Absence]
Abusives
Abzebillercher
Acquéreur
Adjointeë
Affischéiertes
Airbussen
Alldeegleches
Angschtzoustä
Basketballspiller
Baufirme
bauren [Bauren, bauen, brauen]
bekanntes
Beleg
Berodung
Bewältegung
Datentransfer
Dateschutz
Decisives
Donneschden
Drangsaléiertes
Dränk
Giischtgen
Grondlag
grondreegel [Grondreegel, grondleeënd]
Géies
Handelsdag
hausaufgab [Hausaufgab, ausbaufäheg]
hierschtdag [Hierschtdag, hierarchescht]
Häerzi
Industriell
Infrastrukturelles
Interessi
Internetfore
Intervall
Kamell
Kantoner
Karamell
Klenges
Nopeschhaus
Motors
Muer
Muerenter
Musek
Nettoverméige
niess [miess, Niess, iess, giess, Siess, Fiess]
Protektioun
Prouf
Provisioun
Prozessor
Präis
Präsens
Sanitäres
Schauspiller
Schema
Taxatioun
Telefonsgespréich
termingrë [Termingrë, verminnte]
terrass [Terrass, zerrass]
Textdatei
Textsprooch
Titulaire
Titel
erausféieren
erausjoe
gëeicht
onglécklecherweis
unzesammelen
unzespille
Approvisionnement
Сложные слова []
Aktiegesellschaft
Aktivitéitsdéclaratioun
Alarmstëmmung
Allgemengverständleches
Bankenoperatioun
Bensinsreserven
Besteierungsofkommes
Diskriminéierungsmoossnam
Dokumentatiounsaarbecht
Haaptrecommandatioun
Héchstgeschwindegkeet
Héichproblematesches
Hëllefsdéngscht
Integratiounsméisseges
Iwwersetzungsprogramm
Kapitaliséierungsdimensioun
Museksinstrument
Publicitéitsmarché
Transportproblem
Слова с ошибками []
Abonnnement [Abonnement, Joresabonnement, Abonnenti, Abonnent, Agebonnent]
Accomodéiertes [Accommodéiertes, Accommodéiert, Accordéiertes, Accommodéiers]
Agrarcenter [Agrarzenter, Agrozenter]
Begrennung [Begrënnung, Begrenzung, Benennung, Verbrennung, Begrenzen, Trennung]
Berodunszentren [Berodungszentren, Berodungszentre, Berodungszentr, Berodungszenter]
Deeluung [Deelung, Andeelung, Opdeelung, Verdeelung, Zelldeelung]
Dialogue [Dialoge, Dialog]
Dictaten [Diktaten, Dichten]
Inspektor
Iwereileges [Iwwereileges, Iwwereilegtes, Iwwereileg, Iwwerfälleges]
Pedagogik
Televisionschaîn [Televisiounschaîn, Televisiounsgeschäft]
Bechäftegungsméiglechkeet [Beschäftegungsméiglechkeet]
Gläicheetspolitik [Gläichheetspolitik, Sécherheetspolitik, Gesondheetspolitik, Geschäftspolitik, Dechetspolitik]
Musekheichschoul [Musekhéichschoul, Museksschoul]
Satelliten [Satellitten, Satellitte, Satellit]
Addressbichelchen [Adressbichelchen, Reklammbichelchen]
Aarbechtsfield [Aarbechtsfeld, Aarbechtsgefier, Aarbechtsblieder, Aarbechtsatelier, Aarbechtsalldag]

View File

@ -0,0 +1,127 @@
Abstraktus
šachmatai
žadintoja
agurkas
Aikštė
Akinukai
akmuo
šakoti
aktualinti
aktorius
šalinis
šaltinis
bernystė
beskuo
būgnelis
Bilietas
bilingvizmas
daržavietė
Darbadienis
Darbas
darbuotoja
dargi
daržinė
daugintoja
Daugiaveiksmis
delnė
įdelnis
detalizuoti
šerdelė
erdvėti
šeriškas
šeštadienis
etiketas
Evoliucija
fabrikantė
Fantastika
Fenomenas
fikusas
gaudinėti
gausėja
gūbrinti
geležis
geležtė
gelsvis
geranoris
Gertys
gerviukas
giesmininkė
Gikas
Goža
griaustinis
grįžinys
gėrioja
griozdas
grizijo
gryčia
grožėja
grįžti
grupė
gąstauti
Jaukas
jodinėjo
jodyti
keturnagis
Kiaušina
Kiaurymė
kiausta
kietakaktis
ūkiškas
kilimėlis
kilometrinis
ūkininkaitė
ūkinis
krykti
lapuotis
laukas
laupti
laužtė
Maudulys
Maumedis
mažutėlis
mazgotuvė
mechanikė
medeinė
medikamentinis
meduolinis
Nūdien
nebrendėlė
Negu
neiginys
parudenys
pasakotojas
pasausė
pasieninis
paskyriui
paslapčiom
Pasodas
Pat
Pataikūniškas
patarška
patentinis
proskyna
protekiniais
provizoriškas
rėkčioti
rūmas
rodyklinis
Romanistas
Skylmatis
Skyriklis
skolininkas
skraidžioja
skruzdėda
skėtrus
Слова с ошибками []
Abbreviatūra [Abreviatūra, Klaviatūra]
alpinismas [alpinsimas, alpinimas, alpinistas, alpinizmas, alpinistinis, alpinistini, alpinamas, alpinariumas]
amortizacia [amortizacija, amortizacini, amortizavo, amortizuoti]
daugiamžis [daugiaamžis, daugiaamži, daugiamatis, daugiametis, daugiažiedis]
deziderativinis [dezideratyvinis, dezideratyvini, prezidentinis, rezidentinis]
generazija [generacija, energija]
keturiasdešimtūkstantas [keturiasdešimttūkstantas, keturiasdešimttūkstanta, aštuoniasdešimttūkstantas, šešiasdešimttūkstantas, aštuoniasdešimttūkstanta]
krivuluoja [krivuliuoja, kreivuliuoja, kultivuoja]
Šnaukstai [Šnaukštai, Niaukstai, Šniauktai, Šniaukštai, Auksintai]
pazintinis [pažintinis, parazitinis, pantinis, patentinis, panteistinis]
progresa [progresai, progresas, progreso, progrese, progresu, progresą, progresų, progresavo, progresija]

View File

@ -0,0 +1,205 @@
Sveiks
Sveikks [Sveiks, Sveikas, Sveikās, Sveikts, Sveikus, Sveikos, Sveikt, Saveiks, Ieveiks, Veiks]
Labrīt
Lbrīt [Larīt, Lorīt, Labrīt]
Paldies
Paldiess [Paldies, Paliess, Palaidies]
Lūdzu
Luzu [Lizu, Ludzu, Auzu, Zuzu, Guzu, Lauzu, Lupu, Lubu, Lugu, Lūzu, Luču]
Atvainojiet
Atvainvfojiet [Atvaimanājiet]
Prieks
Perieks [Peries, Prieks, Persiks]
Draugs
Dravfugs [Draugs]
Ģimene
Gimene [Ķimene, Ģimene]
Māja
Maja [Maija, Paja, Raja, Laja, Maža, Maka, Mija, Mana, Masa, Māja, Mata, Maša, Maza, Mala]
Pilsēta
Pilseta [Pilsēta, Pil seta, Pil-seta, Piebilsta]
Ceļš
Ceļšs [Ceļš, Ceļošs, Ceļas, Ceļus, Ceļos]
Kalns
Jūra
Sauls [Auls, Kauls, Rauls, Pauls, Salus, Sauks, Sals, Saules, Sakuls, Saulēs, Saguls, Sulas, Salsu, Sauli, Sauss]
Mēness
Zvaigznes
Diena
Nakts
Brokastis
Pusdienas
Vakariņas
Vīns
Kafija
Maize
Siers
Makaroni
Pica
Saldējums
Deserts
Sāļš
Augļi
Dārzeņi
Gaļa
Zivis
Vistas
Ola
Sāls
Pipari
Eļļa
Sviests
Cukurs
Piens
Jogurts
Salāti
Zupa
Salds
Šokolāde
Spageti
Rīsi
Kakao
Biezpiens
Kūka
Tēja
Karalis
Zelts
Ezis
Tulpe
Lācis
Kaķis
Suns
Putns
Vārna
Zaķis
Pele
Ābols
Aita
Zirgs
Lauva
Pūķis
Lasis
Vilks
Vējš
Uguns
Ūdens
Zeme
Debesis
Saule
Rūpniecība
Aizkustinošs
Izdzīvošana
Nepieciešamība
Atbildība
Lieliski
Apmierināts
Neparasts
Izglītība
Sarežģīts
Atsevišķs
Pamatots
Organizācija
Sadarbība
Efektīvs
Daudzveidīgs
Novērtēt
Pārsteidzošs
Inovatīvs
Vērtība
Aizraujošs
Nopietns
Komunikācija
Māksla
Dzīvība
Ekskluzīvs
Tehnoloģijas
Rezultāts
Atbalsts
Nodrošinātība
Pārbaudīt
Radošs
Sociāls
Izteiksmīgs
Brīvība
Pieredze
Ietekme
Pārmaiņas
Drosmīgs
Racionāls
Empātija
Izpratne
Risinājums
Iespējas
Atklāts
Vadošais
Eksperimentāls
Neatkarība
Tīrība
Samierināšanās
Motivācija
Harmonija
Dinamisks
Iedvesma
Izglītojošs
Komplicēts
Pieejamība
Sadarbība
Tūlītējs
Saprotams
Neizsakāms
Lieliskums
Inovācijas
Aizrautība
Pārdomas
Sapratne
Rezultatīvs
Iespējams
Pārbaude
Sociālais
Izteiksme
Brīvība
Pieredzējis
Ietekmīgs
Pārmaiņu
Racionāla
Izpratni
Risinājumi
Iespējams
Atklāta
Vadošā
Eksperimentāla
Neatkarība
Tīra
Motivējošs
Harmonisks
Dinamika
Iedvesmojošs
Spēks
Mīlestība
Pasaule
Daba
Skaistums
Miers
Sapnis
Prieks
Rītausma
Brīnums
Izcils
Saikne
Dzirksts
Pārmaiņas
Atbalsts
Izcilība
Satriecošs
Dzīvīgums
Pārveidošana
Uzdrīkstēšanās
Uzticamība
Ieguldījums
Vērtība
Līdzsvars
Saskaņa
Izsmalcinātība
Pateicība
Atzinība
Pārsteigums

View File

@ -0,0 +1,103 @@
Баатар
Багаа
Базар
Барра
Бат-Очир
Баттуул
Батхэсэн
Баярмаа
Билгэх
Бор
Бөөнцагаан
Бүрэнхайрхан
Бямбагар
Бэх
Гарам
Гантиг
Гурвантэс
Гүр
Гэрэлтуяа
Давст
Дангаа
Дансран
Дарь-Эх
Дөргөн
Дундбүрд
Дэмүүл
Дэлгэрцэцэг
Жавзан
Жарантай
Заглул
Зүүнхөвөө
Кир
Корона
Лүн
Лха
Лхаваан
Майхан
Манлай
Мөндөөхөө
Мөнхөт
Мөрөн
Мөнххаан
Мөст
Мэгэд
Мухар
Найдалмаа
Найтингейл
Налайх
Нарантуул
Намтай
Насантогтох
Номин
Нямсамбуу
Нэүдэй
Орог
Очир
Өнөржаргал
Өөдөс
Өргөн
Паган
Пас
Пүрэвдорж
Пүрэвхүү
Сайнаа
Сайхандулаан
Сундуй
Сэлх
Сүүж
Сээр
Тайван
Тарав
Тогтуун
Төрболд
Төхөм
Төмөр
Түргэн
Түшиг
Түгтөмөр
Түшиг
Удвал
Улиастай
Улаандэл
гүедэцгээчих
дэвхэрлүүлсхийчих
дэвхэлцгээчих
дэвшигдүүлгэчих
дэвшилцчих
дэвээ
дэггүйчүүд
наламгардуулалц
налбаруулзна
Слова с ошибками []
Батарчулуун [Баатарчулуун, Батар чулуун, Батарч улуун]
Баруунхарааа [Баруунхарааг, Баруунхараа, Баруунхараагаа, Баруунхараад]
Даважаргал [Даваажаргал]
Дөрволжин [Дөрвөлжин]
Мягмараран [Мягмараар, Мягмарнаран]
Оюунтулхуур [Унтуурхуул]
оторчилсхилгэ [оторчилсхийлгэ, оторчилсхийчих, оторчилсхий, отогчилсхийлгэ, хорчилсхийлгэ]
Асрамжлулгацгаачих [Асрамжлуулгацгаачих]
гүентүүлгэцгэээ [гүентүүлгэцгээе, гүентүүлгэцгээ, гүентүүлгэцгээгээ, гүентүүлгэцгээж, гүентүүлгэцгээн, гүентүүлгэцгээнэ, гүентүүлгэцгээв, гүентүүлгэцгээг, гүентүүлгэцгээх, гүентүүлгэцгээм]
наладаадуулга [налдаадуулга, наадалдуулгаа, наадалдуулга, налдаадуулцгаа, наадамдуулгаа]

View File

@ -0,0 +1,113 @@
Bahamasøyene
Festarrangement
Festarrangemang [Festarrangement, Festarrangør, Fellesarrangement, Storarrangementa]
Festival
festligheta
festnummer
forhandlernett
forgylle
fotballstyre
Fotgå
fotoamatørene
Fotogalleri
fotokopiere
generalkostnadene
generaltabbe
generøs
Generell
genmodifisertst
handlingsresymeet
hardhet
Harmfull
hastighetsregulering
havbanke
havforskningsundersøkelsene
informasjonsutveksling
Infrarødest
kaffeautomat
kaldslig
kalenderåra
kjekk
kjendisstoffa
kjærlighetslyrikk
kjøkken
Kontantautomat
kontantlån
kontrahere
kontraheringsplikt
Låskasse
læregutt
læreprosess
Museums
museumssamling
musikkorps
myggstikka
myndighetsaldere
omløpstider
omregn
områdeplan
omriss
omsetningsgjeld
omsjaltning
omsetningsvolumer
omslutning
omslyngning
omsonst
omstendeligheta
Omstart
Omstreifende
Omsyn
omtåketheta
oppdagelse
oppbygning
oppebære
oppfølgingsapparat
oppgjørsbank
oppgjørsblankett
opphøringene
partisipere
randverdi
rapportskriver
rasjonalisering
Rate
selsak
selskapsinntekt
selskapsoverskudd
selvbetjeningene
snabbingene
Snadderene
Sytti
søkekriterium
søkemulighetene
søkeargumenter
søkingen
søkne
sølvlaga
sørlandsk
søtningene
tabellrad
Tabellkolonne
Takhalm
taksene
takseringssystema
tal
trolsk
trosinnholdene
utfoldelsesmuligheta
Utformingsmetode
Utgift
vekstfaktor
vekstforhold
Слова с ошибками []
Arbeidstagerorganisasion [Arbeidstagerorganisasjon, Arbeidstakerorganisasjon, Arbeidsgiverorganisasjon, Sosialarbeiderorganisasjon, Arbeiderorganisasjon]
festsprel [festsprell, festsprek, festsprelt, festspell, feltprest, fengselsprest]
forhandlingsdirektor [forhandlingsdirektør, forhandlingssekretær, forhandlingstekniskere, forhandlingstaktiskere, forhandlingskontor]
handlingforløpa [handlingsforløpa, handling forløpa, handling-forløpa, handlingsforløp, lønnsforhandlinga, lønnsforhandling, forhandlingspart]
kjempeflinktt [kjempeflinkt, kjempeflinkest, kjempeflink, kjempeflott, kjempefint]
lanetilbud [lånetilbud, langetilbud, landetilbud, linetilbud, laketilbud, langtilbud, lagetilbud, landtilbud, danetilbud, lunetilbud, vanetilbud, fanetilbud, banetilbud, hanetilbud, kantinetilbud]
omraming [omramming, omringing, omringning, ramming, omring]
omsvøpssfull [omsvøpsfull, omsvøpslaus]
raportmateriale [rapportmateriale, kartmaterialer, kartmateriale, programmateriale, skrapmateriale]
serstilt [særstilt, ser stilt, ser-stilt, seerstilt, tverrstilt, storstilt, lederstil, stiliser]
taksamst [takksamst, takksamt, takksam, samletakst, samstav]

View File

@ -0,0 +1,115 @@
Advertentie
Advocate
affirmatie
afgevaardigd
afneemster
allerbekendst
alternatieveling
annulering
anticycloon
Backtrackroute [Jacktrackroute, Backtrackrouten, Baktrackroute, Backtrackroute-, Backtrack-route, Back-trackroute, Backtrackroutes]
Bearbeiden
becijfer
bediening
bedrag
beduiden
beïnvloeding
benadeling
bepaaldelijk
Catalogiseer
Catering
cellulair
classificator
collaboreren
collectiviteit
comfortabel
complimenteus
contractant
correctionaliseren
daaraanvolgend
dagelijks
deelgenoot
degelijkheid
demarqueren
Denotative [Denotatie, Denominatieve]
deposant
dergelijken
detail
deugen
diakritisch
Directioneel
dusgenaamd
eendrachtigheid
Eenzaamheid
eersteklascoupé
Eigenschap
felicitatietelegram
centerkanaal [centerkabaal, enterkanaal, centerkanaal-, center-kanaal, callcenter]
Chargeer
filiaal
klare
Klassikaal
kleinhandel
evolutie
exemplaar
exequiën
familiaal
fauteuil
luister
magistratelijk
perelaar
Permitteren
Perseveratie
persoonlijk
pictogram
pixel
sloten
sluimer
sneltoets
Soldij
Solliciteren
zegepraal
zelfbeeld
zevendaags
aangeslotene
meermaals
expedieert
jaargetijden
kaderleden
Kapitelen
Сложные слова []
avontuurlijkheid
bedrijfsmaatschappelijk
begrotingstechnisch
belangstellingssfeer
concurrentievoordeel
conferentieganger
democratisch-liberaal
discontoverhoging
doctoraatsverhandeling
dubbeldeksbus
economisch-financieel
energiezuinig
erkentelijkheid
evenwichtigheid
klimaatsverandering
koffiezetmachine
koopmansgebruik
maatschapsovereenkomst
personeelsconsulent
sociaalwetenschappelijk
zelfverzekerdheid
fondsenwervende
Слова с ошибками []
afficher [affiche, afficheer, affiche-, affiches]
algorithme [algoritme, algoritmiek]
beeindiging [beëindiging]
client [cliënt]
consnteren [consenteren, contesteren, constateren, consulteren, confronteren]
deactivieren [deactiveren, deactiveerde, reactiveren, deactiveert, geactiveerden]
deblockering [deblokkering]
electrisch [elektrisch]
certificat [certificaat, certificatie, certificeert, certificeer, certificeren]
sovereiniteit [soevereiniteit, suzereiniteit, sereniteit, universiteit]

View File

@ -0,0 +1,116 @@
Ankeret
Anleggsbedrift
Annandag
annonseavis
annuell
ansats
ansvarsmedviten
Antibiotikai
apal
apoteki
apparattavlor
appetitt
Aprikos
arbeidsdokument
arbeidsmarknad
barndom
bastematte
bautingi
Bedriftsleiar
befolkningi
begynnarkurs
Beheld
belastningi
beredskapsnivå
beredskapsperiode
berglandskapi
berrfrost
beskjedi
beskrivingi
betalingsoppdrag
betalingsplikt
bevismateriale
bildeband
bildebruki
bildespråki
bildeteksti
bilingval
billettlukone
binær
bione
bjørkegreini
bjørnebæri
blenge
blokkeringi
blomsterbordi
blyerts
bogen
bokstavrekningi
bokstavteikni
Borddisk
effektevaluering
elgkalv
Elone
emballer
faktainformasjon
familiebedrifti
familieterapeut
fastbuande
Februar
feili
fisketom
hengelåsi
istandsetjingi
Item
jaguar
jamlig
janen
jarnbanestasjon
kjende
kjentfolki
kjæleri
kjøledisk
kjørety
midli
Mideftnar
midtstrek
multiplikasjonstabell
museumsdirektør
onsdag
operasjon
operasjonskode
opinionsskapingi
opningi
Personalkonsulent
Personligdom
persontryggleik
petroleumspris
redningsaksjon
reduksjon
refusnik
seinst
sekretær
seljande
sendeferd
Standpunkt
støyisolering
støytvis
terminoppgåve
tidløysone
tidsfølgjone
Tilbakebetalingstid
uprofesjonell
upåklageleg
Слова с ошибками []
Anlegsarbeid [Anleggsarbeid, Tvangsarbeid, Grunnlagsarbeid, Føregangsarbeid, Bergingsarbeid]
anonse [annonse, nonsens, anse]
ansversproblematikk [ansvarsproblematikk, vurderingsproblematikk, ventelisteproblematikk, valdsproblematikk, drivhusproblematikk]
barneforteling [barneforteljing, barnefordeling, barneforsking, barnefarforelegg, barnebefolkning, barnebortføring]
besoksliste [besøksliste, sortsliste]
bilophoggingi [bilopphoggingi, bilopphogging, opphogging]
effektivitetskontrol [effektivitetskontroll, effektivitetsforskjell, effektivitetsproblem, effektivitetsnøytral, effektivitetsforbetring]
fakturaerklering [fakturaerklæring, faktureringsliste, overfakturering]
miljøbyrad [miljøbyråd, miljøby rad, miljøby-rad, miljøbragd]
selskapskat [selskap skat, selskap-skat, selskaps kat, selskaps-kat, selskapsskatt, selskapskapital, selskapsrett, selskapstype]
cement [sement, dement, centime, cent]

View File

@ -0,0 +1,108 @@
Ajustaira
alaguiar
alausièr
alberguèri
alcaloïdic
alègrament
alenament
algorisme
Alimentacion
allergologia
alpèstra
amaisament
amorteirar
analista
analogic
atucament
Audicion
auquièr
auscultacion
auscultar
ausèri
autenticament
brilhant
brumós
Burgada
cabelièira
cadeçar
Caducèu
çaicontra
calcièrs
Calmar
camarilha
cambièra
canalhariá
casse
cedar
cendrós
cèrca
cèrtes
cestòdes
chantièr
chartrós
Chassís
dimensionar
diptèrs
dirèctament
discrecionària
discriminar
Distraire
dòler
Enòrme
enqueriái
espicifòrme
esquelèt
Esquèrra
estetic
innocéncia
innocentàs
Maniquèu
mantelejar
Nauchièr
natièr
oxigèn
pacanariá
pagés
pagesiá
Primièirament
requereguèri
requisitòria
saumelèri
S'autodeterminar
sautarèl
scientament
scientologia
secador
secretèri
sècta
sectorial
s'efarcimar
s'endeven
s'engarrar
sentimental
s'entrepausar
shampó
sextant
sòli
Solidament
soquèla [soquèla, roquèla]
subrejornada
suedés
utilitària
Utilizaire
vacàs
vaisselèri
valiái
validament
Слова с ошибками []
albatros [albatròs]
amistanza [amistança, amistat, animista]
brunonièr [brunhonièr, prunhonièr]
carpentier [carpentièr]
centrifugation [centrifugacion, centrifugadoira, centrifugador, centrifugar, centrifuga]
estelhad [estelhas, estelha, estelhada, estelhar, estelhan, estelhat, estelham, estrelhada, estervelhada, estenalhada, estendalha]
primaria [primariá, primària, primarai, primaris, primari, primariam, primacia, primarga]
s'embractar [s'embracetar, s'embraceta, s'embodracar, s'embarrassar, embracetar]
sosembrançament [sosembrancament, embraçament, asombrament]
vascularisacion [vascularizacion, secularizacion, cardiovascular]

View File

@ -0,0 +1,225 @@
dom
pies
kot
auto
drzewo
książka
szkoła
przyjaciel
mama
tata
dziecko
jabłko
czekolada
kawa
herbata
telefon
telewizor
komputer
muzyka
sport
zdrowie
piękno
praca
miłość
szczęście
czas
pieniądze
język
kraj
miasto
zima
lato
jesień
wiosna
morze
góry
jezioro
rzeka
park
zwierzę
ptak
ryba
drewno
złoto
srebro
metal
szkło
buty
sukienka
spodnie
koszula
czapka
płaszcz
ręka
noga
oko
ucho
nos
usta
ząb
głowa
serce
mózg
król
królowa
książę
księżniczka
chłopak
dziewczyna
mężczyzna
kobieta
staruszek
staruszka
lekarz
pielęgniarka
nauczyciel
uczennica
student
studentka
kucharz
kelner
wojna
pokój
mapa
flaga
śmiech
płacz
sen
marzenie
praca
nauka
sztuka
teatr
kino
muzeum
kaplica
kościół
zamek
most
droga
Сложные слова на польском языке []
1. konstantynopolitańczykowianeczka [nicejsko-konstantynopolitańskiego]
2. niezadogłębienieńskujący []
3. antykontraatakujący [finansująco-kontraktujący]
4. supersamoobsługiwalnymi [kancelaryjno-archiwalnymi]
5. rozpierduchlanoculka [nieporozpierdzielanie]
6. nieodezwawiałobyś [nieodprzedmiotawiany]
7. przystawieniowy [przedstawieniowy, nieprzystawienie, niepoprzystawianie, nieprzystawianie]
8. nieprzeżyciowakościami [nieprzewartościowywaniami, nieprzewartościowaniami]
9. nieprzekazywających [nieprzekrzywiających, nieprzejednywających, nieprzywdziewających, nieprzepoczwarzających]
10. przeciwzakwaszeniowych [zatokowo-przedsionkowych]
11. nieszczęściodrapańskiego [ogrodniczo-pszczelarskiego]
12. społeczno-wychowawczyniami [socjalizacyjno-wychowawczymi]
13. seledynowo-fioletowymi [mięśniowo-szkieletowymi]
14. przeciwdeszczową [przeciwdeszczową, przeciwdeszczowy]
15. mikroelektroniczno-kwalitacyjną [reumatologiczno-rehabilitacyjną]
16. nieokreślonościowo-losowo-obiektywnie []
17. zagubieniecioburakowatej []
18. antyneuroleptyzanckim []
19. nieupubliczniającymi [nieuwieloznaczniającymi]
20. splądrowałbyś [wyeksplorowałbyś]
21. konserwowano-spożywczymi [konserwiarsko-zamrażalniczymi]
22. ożelośćiowo-miłosnej []
23. nieprzyzwoitolicjią [nieprzypieczętowującą]
24. nieodporowościę [nieodpoliturowanie]
25. rzeszołkofiołkowatymi []
26. niezakapiactwuja [niezakatrupiająca]
27. nieoszczędniewczelnianków [oszczędnościowo-rozliczeniowa]
28. przekształconowaczkołępów []
29. rozwińczywianiu [nieporozwiązywaniu]
30. nieprzeskakiwalnościami [nieprzewartościowywaniami]
31. modernizująco-rewolucyjnego [reumatologiczno-rehabilitacyjnego]
32. nadzwyczajnieuzdolnionymi []
33. przemocno-wsparciański [warciańsko-odrzańskiemu]
34. przepyszno-peltzerowskiego [faszystowsko-hitlerowskiego]
35. kwestionowano-wzmocnieniami []
36. nieodczynieństwującą [nieodrzeczywistniającą]
37. niezasłużonowypasionego []
38. likwidującego/zarządzającego [odchudzająco-oczyszczającego]
39. szeszcześtoplutowanych [nieprzeinstrumentowanych]
40. niewpadkowościowi [wielonarodowościowi]
41. antynazizhownemu [niebizantynizowanemu]
42. nieuchronnieprzekroczeniowym [oszczędnościowo-rozliczeniowym]
43. niezatrawialnieprzyjemnego []
44. kardiopulmonologiczno-angiologów [endokrynologiczno-ginekologicznemu]
45. gorączkowointensywnościowego [wydolnościowo-sprawnościowego]
46. antykonstytucyjnorozpadowego [konstytucyjno-monarchicznego]
47. nieobawiamysię/źródleni []
48. prerewolucyjnolphillipsowi []
49. szóstkaniewygranych [niewykrystalizowywanych]
50. nieupadkokogeneracyjnymi [korekcyjno-kompensacyjnymi]
51. społeczno-humanitarnarządzaniami []
52. nieodziewowiędzy [nieumiędzynarodowienie]
53. przemocnochamować []
54. społecznosensacyjnosądowym [kompensacyjno-wyrównawczymi]
55. przerażającorzymskiego [kobylińsko-borzymskiego]
56. nieprzemontowanych/zamuzowych []
57. referendumkonstytucyjno-reformujące []
58. niezniesłowiałszymi [niezesłowiańszczonymi]
59. niebohaterystycznymi [charakterystyczniejszymi]
60. produktodenarodowomenopauzalem []
61. odrywającopierdolca [niedopierdzielająca]
62. niegotowożywione [żywieniowo-noclegowi]
63. niepostronnynarodzonemu [kilkudziesięciostronicowemu]
64. przedniaautochtonicznym [urbanistyczno-architektonicznym]
65. nadciągniono-wchodzących []
66. promocjostworczym [czteromocarstwowym]
67. niezapowiadającychkoalicji []
68. bezgłupinczłapie []
69. wyomjaził []
70. wagotonizacyjno-radiofonizowanego []
71. gospodarczo-zasadotwórczej [organizacyjno-gospodarczej]
72. skrupulatno-rzeźniczobardziej []
73. samokiedy-konstytucyjnej [konstytucyjno-monarchicznej]
74. niedomętnością [nieumiejętnością]
75. nieoszustamiwykorzystana []
76. przeprowadzonoświeckie [nieprzeprojektowywanie]
77. nieuniknionaobowiązkowo-plastycznej []
78. poduszkowo-nicościowych [porządkowo-czystościowych]
79. niepowodzeńbutmizeryjewego []
80. skojarzeniowocolorowymi [wypoczynkowo-szkoleniowymi]
81. przytułkamiwciągarkowych []
82. wchodziłoprzeciwniepowszechny []
83. karaublicznociągana [publiczno-prywatnego]
84. przedpolitycznilubelskim [hemolityczno-mocznicowemu]
85. niezapowiedziano-date-expanded []
86. licznościłodziennej [termiczno-wilgotnościowej]
87. niezawinieniomatołek []
88. pakujączwobilardowego []
89. rewersdopisek []
90. przeprosinoworadosną [nieprzeprojektowywaną]
91. nieakceptacyjnoprospekcyjnymi [adaptacyjno-rehabilitacyjnymi]
92. jedniżużytym [nienadużytymi]
93. ainikopciksemilitechnikowany []
94. motszynopiszącym [niewspółtowarzyszącym]
95. nieprzerejestrowanasezonowanie []
96. słupotartackimoblikiem []
97. nieodbieraniemniedostępności []
98. dorozwinięcówkobiet []
99. szybopojabytesłowickiego []
100. przystępnoracjmujacych []
Слова с ошибками []
jedniiżużytym [nienadużytymi]
wiomjaził [jaziowy]
niezzniesłoowiałszymi [niezesłowiańszczonymi, niezesłowiańszczanymi, niezesłowiańszczającymi, najniesłowniejszymi]
superrsammoobsługiwalnymi [muzealno-archiwalnymi]
przemoocnochamować [przeprogramować]
staruszzka [staruszka, staruszeczka, staruszek, staroruska, starszaka]
tiatr [tiar, titr, tatr, teatr, wiatr, otiatra, otiatria, tristia]
woina [wpina, wona, wina, wozina, dwoina, wolina, wonna, wcina, toina, wodna, doina, wolna, wojna, wgina, woźna]
teleffon [telefon, telef fon, telef-fon, telefoto]
zołoto [złoto, gołoto, hołoto, Gołoto, Hołoto, zołotnik]

View File

@ -0,0 +1,108 @@
que
eu
não
de
você
para
ele
se
é
um
sim
por
isso
em
uma
uuma [u uma, uma, usma, suma, numa, ruma, duma, puma, fuma, juma]
está
como
com
bem
na
me
mas
do
era
quando
então
tudo
tydo [tudo, tido, todo]
aqui
disse
estava
esâtava [estava, tavares]
fazer
vai
sobre
vamos
homem
hollmem [homem-gol]
bom
ok [o k, o, k, oó, os, oi, oc, ou, om, oh]
agora
coisa
coissa [coisca, coiça, coisas, coisa, cossa, comissa, cisosa, cissoa, cossai]
quero
foi
meu
seu
eles
as
posso
pocso [posso, poco, poso, psoco, poiso, pouso, pocho]
estou
mais
mim
certo
dizer
dizdizerr [dizer]
os
no
sei
ela
vocês
sua
todos
sabe
minha
alguma
algyyma [amalgama]
casa
muito
oh
quallquer [qualquer, alquerque, malquerer, alqueria, alquermes]
qualquer
da
estamos
até
onde
onede [enode, onde, monede, neode, onere, olede, nedendo]
ao
tenho
nós
tem
tinha
tiinha [tinão ha, tiazinha, toinha, tinha, tirinha, tidinha, tipinha, tianha, tainha]
quê
ir
ou
pode
quer
vou
seus
dia
estão
nos
cabeça
quem
anos
depois
sou
vez
fez
irmão
câmera
câmeara [cameara, cameará, câmera, câmara, acâmera, comeara]

View File

@ -0,0 +1,135 @@
pan [pana, pane, pano, pen, par, pai, pau, paz, San, Van, Dan, pança]
manteiga
menteiga [manteiga, antigamente]
queijo
salchichón [salsicha]
saуlchichón []
óleo
pimenta
pimmenta [pimenta, pigmenta, pimenteira, pavimenta, implementa, impiamente]
sal
baga
mel
geléia [geleia]
cogumelo
cebola
cóbola [cebola]
banana
cenoura
pêra [pera, para, pira, pura]
beterraba
frutas
melão
melancia
bolo
chocolate
carne
batatas
salada
salóda [salda, salada, salsada]
tomate
pepino
pipino [pepino, pi pino, pi-pino, pipi no, pipi-no, filipino, pino]
col [cola, cole, colo, coa, cal, coe, cor, rol, sol, coo, com]
mingau [mingua, mingai, minga, mingar, mingas, mingou, mingam]
sopa
sanduíche
refrigerante
refrigarante [refrigerante, refrigerar, intrigante]
água
café
chá
leite
suco
scuco [suco, cuco, cucos]
maçã
uvas
laranja
abacaxi
adacaxi [abacaxi, cacada]
damasco
demasco [damasco, demarco, remasco, de masco, de-masco, descasco]
açucar [açúcar, açucara, açucare, açucaro, açudar]
arroz
macarrão
res [rés, ser, ares, reis, ires, ores, dres, rei, ris, ses, rãs, rês]
porco
frango
costeleta
cãsteleta [costeleta, chapeleta]
limão
ervilha
pão
peixe
caramelo
sorvete
nogueira
ovo
pêssego
xícara
xíícara [xícara, caraíba]
vidro
prato
colher
garfo
faca
pires
garrafa
guardanapo
café da manhã [ssafé da manhã]
almoço
jantar
avião
carro
bonde
ônibus [ónibus]
trem
bicicleta
janeiro
fevereiro
fevíreiro [fevereiro, ferreiro]
março
abril
maio
junho
julho
agosto
setembro
setembra [setembro, seteara]
outubro
novembro
dezembro
desembro [desmembro, dezembro, deslumbro, setembro, desdobro]
caneta
livro
xadrez
telefone
relógio
pente
televisão
ferro
sabão
rádio
bolsa
cartão
mala
presente
câmera [câmara, comera]
computador
camputador [computador, captador]
filme
flor
vaso
quadro
lenço
bola
balão
brinquedo
brinqueedo [brinquedo, branqueado]
conta
sobre
papel
pepel [papel, repele, pele]
jornal
letra
bilhete

View File

@ -0,0 +1,210 @@
casă
copil
carte
masă
școală
lumină
apă
munte
soare
lună
pâine
fruct
floare
stradă
mașină
aer
timp
zi
noapte
nor
vânt
ochi
gură
nas
mână
picior
inimă
sânge
cap
ureche
voce
melodie
culoare
formă
linie
cerc
dreptunghi
cercetare
știință
limbă
frază
literă
cifră
număr
sunet
zgomot
telefon
internet
computer
program
ecran
tastatură
mouse
joc
sport
muzică
artă
film
televizor
radio
planetă
stea
univers
galaxie
atom
moleculă
substanță
energie
lumină
căldură
frig
aparat
instrument
mașinărie
unelte
hrană
băutură
haine
pantofi
păr
piele
ochelari
ceas
bijuterie
pământ
apă
aer
foc
metal
lemn
piatră
hârtie
cerneală
pix
carte
cadru
tablou
sculptură
model
formă
anticonstituționalitate [anti constituționalitate, anti-constituționalitate, anticonstituționali tate, anticonstituționali-tate, anticonstituționale, neconstituționalitate, anticonstituțională, constituționalitate]
dezvoltare
inexpugnabil
nefast
concomitent
antiseptic
recalcitrant
perseverență
extravagant
inexorabil
colosal
plauzibil
efervescent
perspicacitate
superfluu [superfluă, superfulger]
subversiv
incoruptibil
inefabil
hiperbolic
indefectibil [indestructibil, indefinibil]
peremptoriu
ambivalent
paradoxal
heterogen [eterogen, heterogonie]
indiferent
periferic
subliminal
ultraviolet
indeferent [indiferent, interferent, deferent, inaderent, independent]
conglomerație
circumstanțial
contraproducător [contra producător, contra-producător, contraproductivă, contraproductiv, neproducător]
conglomerat
insurmontabil
intransigent
insidios
inerent
consternant
ambiguitate
inerție
inconsolabil
oniric
remarcabil
repudiat
subiectiv
periculos
infatigabil
abnegare
exuberant
facet [face, falet, facem]
represiune
implacabil
indiferent
infatigabil
insolit
intempestiv
incandescent
letargic
magistral
magnanim [magnaliu]
nefast
oblivial [bolivian]
oportun
periculos
plutitor
propice
reprobabil
risipitor
robust
salutar
simetric
solicitant
stringent
sufocant
superficial
tranzitoriu
tributar
trivial
umilitor
unic
vehement
vernal
vicios
victorios
vindicativ
virtuos
vizibil
volatil
vorace
vulnerabil
xenofob
xerofil
yonder [pondere]
yang
yodel [model]
zonal
zodiac
zoon [ozon, zono, zoom, zoo, zon, zobon, zovon, zvon, zoo n]
zoomorf
zurbagiu
Caaă [Casă, Cară, Cată, Cală, Cană, Cauă, Camă, Capă, Cadă, Cață, Cază, Cavă, Cașă]
Soaare [Soare, Sotare, Solare, Sonare, Somare, Soțioare]
Cartr [Carte, Cart, Carter, Carta, Carto, Cartu, Cartă]
Appă [Papă, Apă, Arpă, Aptă]
Coopil [Copil, Copilo, Copiilor]
Frumoss [Frumos, Frumos s, Frumoasă]
Feriсire [Fericire, Rereferire, Ferire]
Prietenn [Prieten, Prieteni, Prietena, Prietene, Prieteno, Prietenu, Prietenă, Prieten n, Prietinie, Prietin, Pretenție]
Muziică [Muzică, Muzic, Muică]
Exeplu [Exemplu]

View File

@ -0,0 +1,197 @@
должен
доллжен [должен, доложен]
наш
думаю
думмаю [думаю]
свою
сам
всем
ни
нас
пока
этом
этой
ваша
всеми
возьми
моей
сама
вся
день
само
всей
бывает
себе
пойду
куда
ими
твоей
всю
своего
твой
пусть
ним
про
точно
иметь
которые
тогда
сюда
наше
самой
взять
наверное
домой
совсем
те
тобой
наверно
что-то
будто
твои
пути
дома
такие
тех
такое
его
самой
вашей
наверное
мои
например
типа
значит
люблю
минут
пор
случае
искусство
лучше
того
такому
ждать
видеть
мною
ждал
имя
важно
чего-то
самому
обычно
представляет
мечтать
стало
помните
взять
моих
самим
своим
вообще
самими
здесь
обратно
сразу
таким
ежели
наоборот
куда
таков
мечтает
значит
покажи
такими
кстати
почти
всякий
научит
вдоль
тогдашний
толком
занимает
Аквапланирование
Барокамера
Библиографирование
Биосинтез
Взаимодействующий
Вибраторный
Виртуальность
Вооруженность
Господствующий
Десантно-штурмовой
Диагностировать
Дипломатический
Дисгармония
Дискриминационный
Достопримечательный
Жизнеустройство
Интернациональный
Инфицированный
Кальцинировать
Ключичный
Коннотация
Лиловатый
Люминесцентный
Метрополитен
Многоплановый
Модернизировать
Наивысший
Наименее
Неопределенный
Нераскрытый
Неоднократный
Неохотно
Непостижимый
Неусыпный
Обезьяноподобный
Обзавестись
Оптический
Оптимизировать
Осуществиться
Очистительный
Парафинировать
Переключатель
Пограничный
Подготовительный
Подрядчик
Полиморфный
Почитать
Преисполниться
Преподаватель
Преследователь
Прирожденный
Проектирование
Профанация
Разграничительный
Распоряжающийся
Реконструктивный
Революционный
Рентгенологический
Рискованный
Роскошествовать
Самоунижение
Сверхъестественный
Светочувствительный
Семантика
Сингулярность
Совершенствовать
Соединительный
Сосуществование
Спорообразующий
Стационарный
Столовая
Сторицей
Сцепной
Трансформирующий
Триумвират
Укротитель
Универсальный
Федеративный
Хронометраж
Целостность
Криумвират [Триумвират]
Укратитель [Укротитель]
Универссальный [Универсальный]
Фидиративный []
Хранометраж [Хронометраж]
Целосность [Целостность]

View File

@ -0,0 +1,205 @@
hiša [šiša, Riša, Miša, hi ša, hi-ša]
pes
mačka
avto [atto, asto, auto, zavito]
drevo
knjiga [kvadriga]
šola [šila, šoka, šla, švola, škola, šosa, vola, šora, rola, kola, mola, dola, šopa, pola, hola]
prijatelj [prijatej, prijate, prijatie]
mama
oče [očne, otče, toče, očke, koče, moče, očeš, oči, one, ose, oke, oje, obe, očí, očú]
otrok
jabolko [jablko]
čokolada [čokoláda]
kava
čaj
telefon [telefón, telefot]
televizija [televízia]
računalnik [račianski]
glasba [glasnosť]
šport
zdravje [zdravej, zdravie, zdravte, zdravme, zdrav je, zdrav-je]
lepota [pelota, slepota, lopota, lehota, klepotať, epoleta, poleptať]
delo
ljubezen [lezeniu]
sreča [srnča, skeča, smeča]
čas
denar [denár, nedar]
jezik [veziko]
država [držiava, držala, dŕžava, dĺžava]
mesto
zima
poletje [polejte, poleje, poletuje, polje]
jesen [jeseň, jesne, nesej, jeden, jesene, jeseni, jesení]
pomlad [omlad, poklad, p omlad, pomlka]
morje [morke, more, moje, morte, morme, mor je, mor-je, morčej]
gore [hore, gofre, nore, kore, more, zore, bore, šore, Nore, Tore, Lore, Zore, gágore]
jezero [jazero, je zero, je-zero, zero]
reka [areka, rieka, rekta, repka, rezka, raka, roka, rekt, seka, reva, veka, deka, repa, reku, ruka]
park
žival [žuval, živa, živel, živil, rival, ži val, ži-val, živ al, živ-al, živa l, žičieval]
ptica [pica, pätica, psica, štica]
riba [rabi, roba, ria, iba, raba, ribi, ryba, rúba, róba, Tiba, r iba, babri]
les
zlato
srebro [rebro, s rebro, striebro]
kovina [okovina, krovina, ovinka, konina, novina, korina, rovina, kozina, košina, kofina, rakovina, kávovina]
steklo [šteklo, seklo, stekalo, stieklo, stenklo, streklo, stoklo, steblo, stĺklo]
čevlji [nevlhči]
obleka
hlače [hláče, tlače, hlase, hlave, hlade, plače]
srajca [rajca, krajca, s rajca]
kapa
plašč [plaš, plač, plaší, plaš č]
roka
noga [noha, nota, nosa, nova, nora, loga, koga, doga, joga, noža, noša, noxa, Toga, neogab]
oko
uho [ujo, ho, tuho, uhor, uhol, uhlo, ucho, uhoľ, uňho, hou, oho, uto, uhm, cho, uhú]
nos
ustnice [ustrice, kapustnice]
zob
glava [hlava, Ilava, Slava]
srce [drce, srnce, srdce, srne, srde, síce, súce]
možgani [moganie]
kralj [kraj, kraal]
kraljica [kraslica]
princ
princesa
fant
dekle [deke, dele, pekle, de kle, de-kle, debakle]
moški [košmi, kamoši]
ženska [ženská, ženiska, žensky, ženskí, ženský, ženskú, ženské]
starec
starka [starká, straka, statka, starla, stara, ostarka, staríka, starca, starkí, starký, starkú, starké]
zdravnik [zdrav nik, zdrav-nik, zdravenia]
medicinska sestra [medicínska sestra]
učitelj [učitelík]
učenka [učeníka, učenia, učenca, utečenka]
študent
študentka
kuhar [kurare]
natakar [katakana, katarakta, katarakt]
vojna
mir [mri, mor, mi, mira, mire, mier, emir, miri, miru, mar, air, mer, min, sir, mil]
zemljevid [zemediel]
zastava [zástava, zastáva, zastav, zastavia, zastaval, zastavaj, zastavať, zostava, zastala, zastaví]
smeh [sneh, smej, sme, steh, smer, smel, smeč, smeť, sme h]
jok [koj, kok, joj, jol, ojok, jak, jot, tok, sok, vok, rok, lok, mok, dok, job]
spanje [spanie]
sanje [sane, saje, sanuje, banje]
delo
učenje [učenej, učene, učenie]
umetnost [etnosti]
gledališče [nepojedali]
kino
muzej [mušej, muzeálnej]
kapela
cerkev
grad [grád, gard, hrad, graf, rad, grand, gram, gray, úrad, Arad]
most
cesta
Сложные слова []
1. Neparlamentarna [parlamentarizmus]
2. Samozadosten [rozradostene]
3. Nepristranski [protistranícki]
4. Pretirano [pretrénovanosti]
5. Nepredušno [nepriedušnosť]
6. Nesreča []
7. Razpršeno [zhoršenou]
8. Nesprejemljiv [nesprejazdňujeme]
9. Prekomeren [rekompenzovať]
10. Prostovoljstvo [sprostredkovateľstvo]
11. Izolirati []
12. Trmast []
13. Brezpogojno []
14. Neodvisnost [neodôvodnenosti]
15. Skupnost [ústupnosti]
16. Neizvedljiv []
17. Nelegitimen [nelegitimizuje]
18. Nevzdržen []
19. Preobremenjenost []
20. Ogrevalni sistem []
21. Preoblikovati [aplikovateľnosti]
22. Nezaslišano [nezasluhujúci]
23. Neugoden []
24. Prezasedenost [prezamestnanosť]
25. Nesreča []
26. Neupravičeno [nenapraviteľnosť]
27. Mednaroden [mŕtvonarodeným]
28. Kompatibilnost [najkompatibilnejšom]
29. Neuspeh [neusporte]
30. Neobvladljiv []
31. Neskončen [neskončenej]
32. Neprimeren [neprimeranie]
33. Amortizacija [amortizovaných]
34. Koncentracija [dekoncentrácia]
35. Cirkulacija [recirkulácia]
36. Obremenitev [odbremenenie]
37. Gromozanski []
38. Simbol []
39. Vinjeta []
40. Digitalizacija [digitalizovaný]
41. Funkcionalnost [funkcionalistické]
42. Rentabilnost [nerentabilnosti]
43. Ekshibicionizem [exhibicionizmus]
44. Frustracija [frustrujúci]
45. Neprilagodljiv []
46. Severnoameriški []
47. Ekskluzivnost []
48. Preverjanje [preverovanej]
49. Celoživljenjsko []
50. Privlačnost [neprivlastňovala]
51. Periferija [periferický]
52. Sokrivda [dokrivkať]
53. Kompromis [kompromisník]
54. Strpnost [ostrovtipnosť]
55. Racionalizacija [zracionalizovania]
56. Birokracija [gerontokracia]
57. Odraslost [odrastenými]
58. Stabilnost [nestabilnosti]
59. Nepredvidljivost [najnepredstaviteľnejšou]
60. Razkošje []
61. Smrtnost [úmrtnostným]
62. Obveščenost [presvedčenosti]
63. Produktivnost [neproduktívnosti]
64. Neugodje []
65. Zapletenost [zakrpatenosti]
66. Hegemonija []
67. Umetnost [menostatikum]
68. Tranzicija [tranzitivita]
69. Individualnost [individualisticky]
70. Kontaminacija [kontaminantmi]
71. Inkubacija []
72. Prikrito [prikrátko]
73. Etnični [Letničie]
74. Sovražnost [samovražednosť]
75. Atraktivnost [abstraktnosti]
76. Nestrpnost [nepriestupnosti]
77. Divergenca [divergencia]
78. Digitalna pismenost []
79. Stabilizacija [autostabilizácia]
80. Raznolikost []
Слова с ошибками []
Kontamenacija [Kontaminácia]
Grommozanski [Grobianski]
Neobvladlliv [Neobkradli]
Neparlametarna [Neparlamentný, Parlamentárnej, Parlamentne]
Nevrzdržen [Združene, Zdražene]
voina [vonia, vina, vojna, voľna, voština]
muzei [muzeálni]
ryba
serebro [se rebro, se-rebro, rebro]
televiziia [televízia]

View File

@ -0,0 +1,210 @@
Hiša
Sonce
Miza
Stol
Ptica
Trava
Drevo
Noč
Luna
Morje
Gora
Cvet
Riba
Rdeča
Modra
Zelena
Rumena
Bela
Črna
Kamen
Pes
Mačka
Roka
Noga
Glava
Oči
Uho
Nos
Usta
Jabolko
Hruška
Sliva
Jagoda
Malina
Lubenica
Kruh
Mleko
Sir
Mesnica
Sadje
Zelenjava
Voda
Zrak
Ogenj
Sneg
Dež
Oblak
Veter
Zima
Poletje
Jesen
Pomlad
Zajec
Lisica
Volk
Medved
Lev
Tigrica
Slon
Konj
Krava
Ovca
Piščanec
Jajce
Mleko
Kava
Čaj
Sok
Vino
Pivo
Hrana
Pecivo
Testo
Marmelada
Kruh
Sir
Olje
Sol
Poper
Sladkor
Kava
Čaj
Vino
Pivo
Šola
Učitelj
Učenec
Knjiga
Pisarna
Računalnik
Telefon
Glasba
Slika
Film
Gledališče
Mesto
Vas
Trg
Cesta
Reka
Avtomatizacija
Razvoj
Komunikacija
Kompjuter [Juterškov]
Programiranje
Elektronski
Inženiring
Elektrifikacija
Kombinacija
Sistem
Informacija
Univerza
Biblioteka
Univerzitetni
Laboratorij
Raziskava
Razvojna
Inovacija
Intelektualni
Integriteta
Izobraževanje
Izvajanje
Preverjanje
Tehnologija
Implementacija
Program
Sodelovanje
Proizvodnja
Industrija
Organizacija
Administracija
Proaktivnost [Retroaktivnost, Produktivnosti, Produktivnost, Provokativnost]
Kreativnost
Projektni
Razumevanje
Kvaliteta
Upravljanje
Ocenjevanje
Statistika
Kompetentnost
Konsolidacija
Realizacija
Kapaciteta
Distribucija
Kompatibilnost
Konceptualizacija [Konceptualizem]
Povezava
Posodobitev
Fleksibilnost
Ekonomija
Organiziranje
Konkurenca
Stabilnost
Ekologija
Osebnost
Zavzetost
Entuziazem [Entuziast]
Motivacija
Avtorizacija
Kreacija
Akumulacija
Monotonija
Diferenciacija
Transformacija
Koncentracija
Inovativnost
Aktivnost
Vzpostavljanje
Reorganizacija
Kategorizacija
Partikularnost
Homogenost
Izjemenost [Izjemnost, Izjemen ost, Izjemen-ost, Zmenjenosti, Izrojenost, Izmišljenost, Izrinjenost]
Generalizacija
Hierarhija
Koordinacija
Inspiracija
Evaluacija
Ustvarjalnost
Oblikovanje
Kompatibilnost
Konkretizacija
Proaktivnost [Retroaktivnost, Produktivnosti, Produktivnost, Provokativnost]
Identifikacija
Kapaciteta
Intervencija
Konsolidacija
Realizacija
Eksplozivnost
Abstrakcija
Individualnost
Integracija
Segmentacija [Sedimentacija, Sedimentacij, Argumentacija, Alimentacija]
Asimilacija
Artikulacija [Artikuliranja, Artikulirala, Cirkulacija, Kalkulacija]
Kolaboracija
Asociacija
Stabilizacija
Kooperacija
Transformacija
Hšza [Hrza]
Kmojnikacija [Komunikacija]
Progrramiranjee [Programiranje, Reprogramiranj, Programiranega, Programiranj]
Elektornkski [Elektorski, Elektorkin, Elektronski, Elektorki]
Inženeirrng [Inženiring]
Izzobraževanjee [Izobraževanje, Izobraževanj, Izobraževanega, Izobraževane]
Infomracija [Informacija, Informacij, Rafinacijam]
Razvoojnaa [Razvojen]
Proizvdonja [Proizvodnja, Proizvajanja, Proizvajanj, Proizvaja]
Akitvnostt [Aktivnost]

View File

@ -0,0 +1,227 @@
кућа
пас
мачка
аутомобил
дрво
књига
школа
пријатељ
мама
тата
дете
јабука
чоколада
кафа
чај
телефон
телевизија
рачунар
музика
спорт
здравље
лепота
посао
љубав
срећа
време
новац
језик
земља
град
зима
лето
јесен
пролеће
море
планине
језеро
река
парк
животиња
птица
риба
дрво
злато
сребро
метал
стакло
ципеле
одећа
панталоне
кошуља
капа
капут
рука
нога
око
уво
нос
усне
зуб
глава
срце
мозак
краљ
краљица
принц
принцеза
дечак
девојчица
мушкарац
жена
старац
старица
доктор
медицинска сестра [војномедицинска]
наставник
ученик
студент
студенткиња
кувар
конобар
рат
мир
мапа
застава
смех
плач
сан
сањарење
посао
учење
уметност
позориште
биоскоп
музеј
црква
дворац
мост
улица
пут
Сложные слова [Словенства]
Конечно! Вот сто сложных слов на сербском языке на кириллице: []
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. Магнетичан [магнетично]
41. Оперативан [оперативан]
42. Десант [десантне]
43. Хиерархија [хијерархија]
44. Феминистички [феминистичког]
45. Сегментација [сегментацијом]
46. Колоритан [колорисан]
47. Деградација [деградација]
48. Диверзификација [диверсификацију]
49. Казуистички [карикатуристички]
50. Реципрочан [реципрочан]
51. Манипулативан [манипулативна]
52. Екстензиван [екстензивна]
53. Колективни [колективни]
54. Каузалитет [локалитету]
55. Синхронизација [синхронизација]
56. Кампања [кампањама]
57. Товарни [товарника]
58. Хируршки [хируршких]
59. Шампионат [шампионати]
60. Геостационаран [револуционарност]
61. Опустошан [опустошености]
62. Клема []
63. Стационарни [стационарна]
64. Секуларни [секуларних]
65. Исегментација [сегментацијом]
66. Дебелина [дебелића]
67. Прецизан [непрецизан]
68. Рафиниран [рафинирани]
69. Психолошки [психолошких, психолошки]
70. Турбулентан [корпулентан]
71. Интегритет [интегритет]
72. Идеолошки [идеолошких]
73. Манифестација [манифестација]
74. Имплицитан [имплицитан]
75. Хомогеност [хомогеност]
76. Изолација [хидроизолација]
77. Хетерогеност []
78. Спекулативан [спекулативна]
79. Вагу [превагу]
80. Математички [математичким, математички]
81. Гематолошки [стоматолошки]
82. Психијатријски [психијатријске]
83. Блокада [блокадама]
84. Заплена [заплетена]
85. Монопол [монополом]
86. Дисидент [дисидентски]
87. Екстрадиција [екстрадиција]
88. Ревизија [ревизијама]
89. Ваидан []
90. Колонизација [колонизација]
91. Мотивација [мотивација]
92. Просек [просектор]
93. Ресурс [ресурсу]
94. Хуманизам [хуманизам]
95. Дравски [Подравских]
96. Коалиција [коалиција]
97. Картеля [картелима]
98. Резолуција [резолуција]
99. Менталитет [менталитет]
100. Епидемиологија [дијалектологија]
С ошибками []
Колонизакаија [Колонизација, Колонизацији, Колонијализам, Колонијализма]
Епидемиогија [Епидемија, Епидемијом, Демагогија]
Казуистикаки [Казуистика, Казуистике, Статистика]
Хуманкзам [Хуманизам, Хуманизма]
Манитулативан [Манипулативна, Ултимативан, Ултимативни]
сањваење [сањање]
утење [хтење, утање, стење, умење, утеше, утече, учење, утехе, утеже, уђење, утезање]
автомобил [аутомобил, обилатом]
мекицинска сестра [војномедицинска]
стукло [стукли, тукло, стукла, стакло, стекло, свукло]

View File

@ -0,0 +1,173 @@
ananas
anarhistički
antidepresiv [depresivan, depresivna, represivan, depresivne]
Anđeo
avion
banana
banka
belina
bespomoćnost
bibliotekar
bibliaoteikar [bibliotekarka, bibliotekar, biblioteka]
brod
citat
crkva
cvet
cveće
demokratija
demackratija [demokratija, demokratizacija, demokratiji, demokratije]
demokratizacija
Dobrota
dom
Dragi
ekran
eksperimentalni
eksplozija
epidemiologija [epistemologija, ideologija]
farmakologija
filantropija
flaša
frizura
fudbal [fudbal, fudbala, fudbalu]
garaža
generalitet
geografski
globalizam
gnezdo
grad
građanstvo
grlo
hamburger
Harmonija
himalaji [Himalaji, malajski]
hiperbola
hipotermija [hidroterapija]
hleb
Hrabrost
hrana [hrana]
Hvala
igra
igračka
individualnost
infrastruktura
internet
inmternet [internet, interne]
jabuka
jahač
jastuk
jednakost
jubilej
jurisprudencija
kafa
krevet
kriminalisticki [kriminalistički, kriminalistika, kriminalistička, kriminalistiku, kriminalističke]
kriminalistika
kuća
kvantitativni
lampa
latiaratura [mlatarati, rasturati, maturirala, landarati]
Lepota
lingvistika
literatura
ljubav
Ljubavi
ljubavnica
Ljubazan
Ljubim
lubenica
majica
majka
mašina
mikroorganizama
mikroskopija [mikroskop ija, mikroskop-ija, mikroskopi ja, mikroskopi-ja, mikroskopi, mikroskopska, mikroskopa, mikroskopski]
Milost
Mir
Mirno
nacionalizam
nedopustiv
neurologija
novčanik
noć
nož
oktobar
okultizam
optimističan [optimistička, optimistički, optimističke, optimističku]
optimističnost [optimistički, optimističke, optimistička, optimističku]
ormar
Osoba
oči
pas
peškir
planina [planina, planinar, planinac, planinčina, planini, planinčini, planin]
poniženje
Porodica
Prijatelj
psihologija
psihoterapija
Radost
računar
reka
rekonvalescencija
reumatologija [dermatologija, hematologija, stomatologija]
revolucija
sendvič
Slatko
Sloboda
Slobodan
Snaga
socijalizacija [socijalizam, specijalizacija, specijalizacijom, socijalizma]
socijalizam
Spreman
Sreća
Srećan
Srećno
sunce
superiornost
Svetlost
tata
tehnologija
telefon
telekomunikacije
top
tradicionalni
ulica
univerzalnost
univerzitet
univirzdalnost [univerzalnost]
Usmena
Znanje
usta
Vedar
vegetarijanstvo
velikodušnost
voda
voz
Zabava
zavisnost
Zdravlje
zemlja
Zima
zjmlja [zemlja]
zločinački
zoološki
Zvezda
ćilim
čarapa
čarobnjak
časopis
čizme
đak
đevrek
đumbir
šešir
šišmiš
škola
šljiva
šuma
žaba
ženskara
žirafa
život
životinjski
žurka

View File

@ -0,0 +1,210 @@
Hus
Sol
Mjölk
Vatten
Fisk
Stol
Grön
Blomma
Träd
Katt
Hund
Bok
Cykel
Kaffe
Frukt
Kött
Fönster
Dörr
Säng
Lampa
Bord
Hår
Ögon
Hand
Fötter
Näsa
Mun
Öra
Huvud
Arm
Ben
Kläder
Hatt
Skor
Väska
Papper
Penna
Skrivbord
Telefon
Radio
Musik
Film
Teater
Konst
Sport
Spel
Resa
Bil
Tåg
Buss
Flygplan
Båt
Stad
Land
Hav
Sjö
Flod
Berg
Dal
Park
Skog
Sjukhus
Apotek
Skola
Universitet
Affär
Restaurang
Café
Hotell
Turist
Vän
Familj
Mamma
Pappa
Bror
Syster
Barn
Morfar
Mormor
Vänster
Höger
Framåt
Bakåt
Upp
Ner
Snäll
Osnäll [Snäll, Osäll]
Glad
Ledsen
Trött
Stark
Svag
Tyst
Bullrig
Ren
Smutsig
Vacker
Ful
Liten
Stor
Komplexitet
Oproportionerlig
Ovillkorlig
Efterklokhet
Komplicerad
Desorientering
Konstellation
Otillgänglighet
Irreversibel
Förlåtelse
Overksamhet
Indifferent
Hierarki
Kombinatorik [Kombinatorisk, Kombination]
Inkompatibilitet
Absorption
Konsekvens
Verklighetsfrånvänd
Retrospektiv
Förändringsbarhet [Förändringsbarnet, Förhandlingsbart, Förhandlingsbar]
Ambivalens
Besvikenhet [Besviken, Besviket]
Ineffektivitet
Intrikat
Dilemma
Hesitation
Absurditet
Kompromisslös
Konsolidering
Föresats
Tillfredsställelse
Delegering
Rekommendation
Detaljrikedom
Oanvändbar
Stagnation
Nostalgi
Hemlighetsfull
Avsaknad
Perseverans [Perseverera, Reverseras, Reversera]
Existentialism
Repetitivitet [Repetitivt, Receptivitet, Repetitiv, Representativitet]
Intolerans
Anonymitet
Obetydlig
Paradox
Förvirring
Juxtaposition
Reflektion
Självständighet
Kollision
Kreativitet
Djupgående
Abstraktion
Eufori
Autentisk
Insinuation
Omöjlig
Pessimism
Inkonsekvens
Revisionism
Sensationell
Obeveklig
Subjektivitet
Universalitet
Entropi
Omvälvande
Infiltration
Konservativ
Atypisk
Provokation
Konfrontation
Anarki
Konkurrenskraft
Defensivitet [Defensivt, Sensitivitet, Defensiv, Densitet]
Nihilism
Konklusion
Apori [Apor, Apors, Porig]
Korrespondens
Prioritering
Exponentiell
Fragmentering
Aversion
Harmoni
Vanmakt
Signifikans
Katalysator
Förlust
Enhällighet
Ambition
Tendens
Alienation
Artificiell
Uppfyllelse
Psykosomatisk
Virtuos
Egensinnig
Anpassning
Hållbarhet
Konstitution
Kompleksitet [Komplexitet, Komplementet]
Oproporsjonerlig [Oproportionerlig, Proportionerlig]
Uvilkorlig [Villkorlig]
Etterklokhed [Efterklok]
Komplisert [Komplicerat]
Desorientering
Konstelasjon [Konstellation]
Utilgjengelighet [Tillgänglighet]
Irreversibel
Forlatelse [Förlåtelse]

View File

@ -0,0 +1,205 @@
Akşam
Almak
Altın
Anahtar
Anlamak
Araba
Atmak
Ayakkabı
Açmak
Ağaç
Bahçe
Bakır
Bakkal
Bakmak
Balık
Beyaz
Bilgisayar
Bilmek
Binmek
Bulmak
Ceket
Cevaplamak
Deniz
Dinlemek
Doktor
Duyurulmamış
Düzenleştirme
Düşmek
Düşünmek
Ekmek
Elbise
Eldiven
Elma
Erkek
Etek
Etmek
Ev
Eşarp
Gelgit
Geliştiricilikle
Geliştirilebilir
Geliştirme
Gerçekleştirme
Gezmek
Geçmek
Gitar
Gitmek
Giymek
Gri
Gömlek
Görülebilirlik
Görünümlü
Görünüşlü
Gözlük
Gümüş
Günaydın
Hareketlendi
Hareketlilik
Hava
Hayalperest
Hüzün
Kahve
Kahverengi
Kalabalıklar
Kalem
Kalkmak
Kalmak
Kapatmak
Kararlılık
Kararlılıkla
Kararsızlık
Kararsızlıkla
Karpuz
Kedi
Kemer
Kemdkcer [Kemerler]
Kırmızı
Kitap
Kız
Kızgınmak [Kızgın]
Koklamak
Koalye [Kolye, Kavalye]
Kolye
Konservatuvar
Konuşmak
Korkmak
Koymak
Koşmak
Kravat
Kullanılabilir
Kullanılmış
Kullanılmışlık
Kullanışlılık
Kurumsallaşma
Köpek
Küpe
Kütüphane
Mavi
Mazbut
Melankoli
Merdiven
Merhaba
Merhabalar
Meurhaba [Merhaba, Murabaha]
Meydan
Meyhane
Meyve
Mor
Muhafazakar
Muhteşem
Mukadderatlarınızdanmışçasına []
Muvaffak
Muzaffer
Muzafferiyet
Muzip
Mükemmeldik
Münasebet
Münzevi
Müsrif
Mütevazi
Müteessir
Mütercim
Mütereddit
Mütevazı
Müzmin
Okul
Okumak
Otobüs
Otoriterlik
Oynamak
Pantolon
Pasta
Pembe
Pembei [Pembe, Pembeyi, Pembeli, Pembeci, Pembe i, Pembesi, Pemben]
Plaj
Platin
Saat
Sandalye
Sarı
Satmak
Sevinmek
Sevmek
Sıcak
Sıradaymışız
Siyah
Sormak
Soymak
Soğuk
Su
Sükûnet [Sükunet, Sünnet]
Sürrealist
Süt
Tabak
Tadına bakmak [Alınamamaktadır]
Tatlı
Tavuk
Telefoncu
Televizyon
Temizlemek
Teşekkürler
Türkuaz
Tuirkuazu [Türkuaz]
Turuncu
Tutmak
Ulaştırılabilir
Uygulanabilir
Uyumak
Uçak
Yapmak
Yatak
Yazmak
Yemek
Yeşil
Yıkanmak
Yıldız
Yol
Yöneltilmezken
Yüzme
Yüzük
Zenginleştirmek
Çalışamamıştı
Çalışmak
Çalışmamıştır
Çanta
Çay
Çıkarmak
Çiçek
Çorap
Özelleştirilmiş
Özelleştirme
Özgürleştirme
Üzülmek
İnmek
İsteksizlik
İsteksizlikle
İstikrarlı
İstikrarlılık
İstisnai
İslamiyetle
İzlemek
İçmek
İşbirliği
İşitmek
Şapka
Şemsiye

View File

@ -0,0 +1,210 @@
абдукція
абіогенез
амбівалентнасть [амбівалентність, амбівалентний, бівалентність, біоеквівалентність, внівалентність]
амбівалентність
анахранізм [анахронізм, брахманізм, анархізм, нанізм]
анахронізм
антропогенез
антропологія
антропоморфізм
апатія
археологія
архетип
аскетизм
астрономія
афект
бачити
бігти
білий
біллий [білий, збілілий]
біологія
бувай
будинок
будь ласка [будь ласку]
бути
важко
велиикий [великий, великоокий]
великий
веселка
взяти
вибачте
відчувати
вода
волюнтаризм
втаємниченість
вчитися
гарний
гарячий
гегемонія
географія
герменевтика
герменевтика
гештальт [штатгальтер]
говорити
гойдалка
готувати
грати
дати
дедукція
деконструктивізм [де конструктивізм, де-конструктивізм, конструктивізм, неконструктивно]
деконструкція
демаркація
детермінізм
дзвіночок
дивитися
дисгарммонія [дисгармонія, дисгармоніям, дисгармонійний, фісгармонія]
дисгармонія
дисфункція
дисфункця [дисфункція, дистинкція]
дихотомія
до побачення [побачення]
добрий
доктрина
думати
дурний
дурня
дякую
евфемізм
езотерика
ей
екзистенціалізм
екзистенціалізм
екзистенцілізм [екзистенціалізм, екзистенціаліст, екзистенція]
екзистенція
економіка
емерджентність
ентелехія
епістемологія
ефемерність
ефемерність
занепадництво
звісно
здоровий
зелений
йти
ілюзорність
ілюзорність
імплікація
інвектива
індукція
інтроспекціїя [інтроспекції, інтроспекція, інтроспекції я, ретроспекція]
їсти
історія
каблучка
кава
казус
калюжа
катарсис
каченя
каштани
квітка
кішка
класно
книга
когнітивістика [когнітивність, когнітивна]
комаха
консенсус
космогенез [номогенез, екогенез]
купувати
легко
лінгвістика
літати
маленький
марнослів'я
математика
мати
метаморфоза
метелик
метелиця
містифікація
місто
могти
можливо
мусити
насправді
не радий [нерадий, незрадний]
незворушність
ні
нігілізм
новий
нонсенс
ностальгія
павучок
парадокс
пес
писати
пити
піти
плавати
плакати
повільний
поганий
політологія
постмодернізм
потворний
працювати
привіт
прийти
психоаналіз
птах
радий
ремінісценція
рефлексія
робити
розбурхання [розбухання, розбурханий, розпухання, бурхання]
розумний
сильний
сингулярність
синестезія [кінестезія, анестезія]
синій
синішй [синій, синішай, синішати]
синкретизм
сказати
скатертина
слабкий
слухати
сміятися
сніг
соліпсизм
соломинка
сонечко
сонце
соціологія
спати
співати
справді
старий
структуралізм
сумний
так
так
танцювати
телефонувати
тож
трансцендентність
фантастично
фаталізм
фемінізм
феномен
феноменологія
фізика
філософія
фрактал
хворий
хімія
хліб
хліб
ходити
холодний
хотіти
чао [чадо, чан, чат, чар, час, чад, дао, чаш, чай, чаї, чаю]
червонй [червоний, червоній, червоно, червона, червоні, червону, червоне, червоню, червонявий]
червоний
черевики
читати
чорнй [чорний, чорній, чорно, чорна, чорни, чорні, чорну, чорне, чорню]
чорний
чути
швидкий
щасливий
яблуко

View File

@ -0,0 +1,262 @@
Mарт [Арт, Ғарт, Қарт, Карт, Шарт, Фарт, Варт, Парт, Сарт, Март]
Ёз
Ём
Ёхуд
Август
Адвакат [Адвокат, Адэкват]
Адреси
айтган-лирангиз
айқин
амалга
анча
Апрел
арзонроқ
аҳамият [аҳамият, аҳамияти, ҳамият, ҳамжамият]
аҳднома
бажарилади
бажарилди
баланд
ихтисослан
банкрот
баҳона
Баҳор
бераман
берасизми
беринг
бериш
бешинчи
биз
Бизга
Бизнинг
билан [билан, биланг, билани]
Бирор
Бозорнинг
бор
бошқа
Бу
Бугун
будингиз
бунга
бундай
Бухгалтерлик
бўлади
бўладими
бўлиши
бўлмаган
бўлса
бўш
бўшайди
бўшатасиз
вазифасига
вазият
вариант
вақт
газетадаги
газетадан
даромад
Декабрь
Душанба
Эрталаб
Етказиб
Жисмоний
Жуда
Жума
зарур
зиёфат
Ижара
ижарага
икки
Илтимос
Индинга
информатизациялари
Иситгич
иши
ишлатсак
Ишхона
Июль
Июнь
Йўқ
йил
йилдан
кам
Шинамгина
кампанияси
келдим
келишимдан
келмоқчи
келсам
келтириш
керак
керакдир
керакми
кета-ди [кетади, кетарди, кета-чи, кета-кета, дискета]
кеч
Кеча
кечага
Кечаси
Кечир
Кечирдинг
кирла
кирадими
кондиционер
коррупциядир
кран
Куз
Кун
куни
кўрмоқчи
кўчиб
лойиҳа
Май
маълумоти
маълумотларни
Маъмурият
маъруза
Мен
музлатгич
мумкин
муфмкин [мумкин]
мутахассис
мушовир
муҳим
нарса
нархи
Нархини
нақд
ўшанақасини
неча
Номардлик
Ноябри
интернетдаги
ойнаси
ойнинг
Октябри
олдин
олдиндан
олмаймиз
олмоқчи
орқали
шоти
шорти [шоти, орти, ортиш, шотир, корти, форти, шарти, порти, сорти, ширти, торти, борти, шомурти]
Оқшом
пайдо
Панжшанба
пулини
Раҳмат
резюме
реклама
Салом
Сармоядор
Сентябрь
Сешанба
Сиз
сизга
сизда
Сизнинг
синган
сифатида
совуқ
софвуқ [совуқ]
Солиқларни
Статистик
сўм
тажрибали
тайёргарлик
тайёрладик
тайёрладингизми
таклиф
талафот
талафоти
таъминловчилардан
танишинг
таржимон
тарржимон [таржимон, тарраксимон]
тахминан
ташкил
Телефонни
технология
Безантирани
тозалан
тозалигига [тозалигига, газтозалагич]
Тонгда
топширишимиз
топшириқ
турли
турмоқчи
тутсак
Тушлик
ўладиганингиз
тўлай
тўлаймиз
тилдиришинг
тўлиқ
уйингиз
уйни
уч
учун
ўқидим
фақат
Феврал
хабар
Хайрли кун [Хайрли кўн]
Мотамхонаси
хонлик
Чек
Чоршанба
Шанба
шарт-номани
шартини
шартлар
шартлари
шартни
шартнома
шахс
шовқин
Шом
Шу
эди
Эртага
Эртадан сўнг [Эртасиганг]
Эшитишимга
эълон
эълонингиз
эълонингизни
эътироф
Юклаш
Якшанба
Январи
Ярим кеча [Яримкеча, Яримчиликча]
яхши
қабул
қаерда
Қанақа
қаноатманда
қанча
қачон
қизиқарлидир
қиламиз
қилганим [қилганим, қилганими, қилгандайин]
қилдим
қилинг
қилинди
қилишди
қиммат
қиммати
Қимматидан
қирқ
Қиш
қувонарлими
қўнғироқ
Қўшимча
ҳайвонини
ҳам
ҳамза
Ҳар
ҳафтага
ҳақиқатан
ҳисоблаб
Ҳозир
ҳужжатни
Ўтган кун [Ўтган кўн]

View File

@ -0,0 +1,200 @@
Salom
Sallom [Slalom, Salom, Musallo, Alloma, Salo]
Rahmat
Rhmat [Rahmat, Marhamat]
Iltimos
Iltimo [Iltimos, Tilsimot, Timol]
Kattalar
Kattalarvf [Kattalashtir]
Yaxshi
Yashi [Ayshi, Tashi, Yash, Yasashi, Yarashish, Yalashish, Yaxshi]
Kelajak
Keljajak [Kelajak]
Oilaviy
Oilaaviy [Oilaviy, Hosilaviy]
Qarindosh
Qarinndosh [Qarindosh, Qayindoshlar, Oqarinish]
Shahar
Shaha [Shah, Shalha]
Dengiz
Dengizzz [Dengiz]
Quyosh
Quyyosh [Quyosh, Quysh]
Yulduz
Oyim
Kechqurun
Tushun
Suvchi
Sharob
Choyxona
Nonushta
Tushlik
Muzqaymoq
Desert
Tuzluq
Mevalar
Sabzavot
Baliq
Tuxumli
Sabza
Sariq
Salatlar
Shirinlik
Shokolad
Rishta
Kakao
Pishloq
Tort
Qaymoq
Sutli
Qatiq
Salomatlik
Temir
Zahar
Oqimli
Shamol
Olov
Yer
Osmon
Shanba
Dushanba
Seshanba
Chorshanba
Payshanba
Juma
Yakshanba
Oltin
Tong
Bomdod
Asr
Shom
Kun
Oqsoqol
Shoshqaloq
Kulgili
Muxlislilar
Tavsiflash
Tuzilishga
Mustaqillik
Tushuntirish
Boshqarish
Mashhurlik
Tarkibiy
Tahlil
Ishchi
Xalqaro
Tarjima
Mustahkamlik
Chaqaloq
Istiqbol
Tasvir
Taklif
Tasavvur
Jiddiy
Majburiyat
Asosiy
Tahdid
Tushunmovchilik
Ishonch
Maqomi
Ijodkor
Tadbirkor
Hayotiy
Mashhur
Bemorlik
Tadbir
Jismoniy
Madaniyat
Xavfsizlik
Sifatli
Suvli
Sotuvchi
Chetel
Tashqi
Sotuv
Tarbiyalanish
Murabbo
Sariqcha
Qovun
Shaharlik
Muhimlik
Tarbiyachilik
Xatolik
Balandlik
Yuzaki
Kuyov
Qiziquvchan
Orzular
Mashq
Qalampir
Muammo
Sadoqatli
Yovuzlik
Fikr-mulohaza
Boylik
Tushuncha
Zanjir
Eslatma
Tabassum
Ishonuvchi
Chidamlilik
Ilova
Birodarlik
Oqilona
Ijodiyot
Tayanch
Hurmat
Baxtli
Tajriba
Samimiylik
Shifokor
Ishrat
Baho
Namoyish
Qiyinchilik
Bolalar
Ishonchli
Taqdir
Shovqinli
Xalqaro
Baxt
Fursat
Hurmatli
Qulaylik
Zamonaviy
Sadoqat
Sabr
Nikoh
Jasorat
Barkamollik
Dunyoqarash
Omadli
Foydali
Yorqin
Mehribonlik
Fazilatli
Kutubxona
Istiqomatli
Fido
Bahor
Shafqatsizlik
Tafakkur
Fazilat
Qochish
Laziz
Uzoq
Ilhom
Omad
Hurmatli
Tandir
Sherzod
Bahoriy
Dilshod
Baxtli
Shonli
Nurli
Shafqatsizlik
Oqqush
Boylik
Toza
Sabrli

View File

@ -0,0 +1,128 @@
Bánh
Bang
bênh
bướng
bậy
Chanh
chum
chuyện
chép
Chùng
chắp
chệnh
chới
chữ
công
cạc
cột
cứu
Doanh
duyên
dùng
dể
dọng
gia
giày
giêng
Giảng
giềng
hon
Hoẳn
Hài
hôm
hước
hấu
hớt
hữu
Khiển
Khoào
khuya
khuyến
khách
khén
khẩn
khắp
khựng
kẻo
lang
liền
Loàng
Luỗng
lình
lương
lấp
lệnh
lịnh
lốn
lời
lựng
Muộn
Mãnh
mại
mạn
mổ
mởn
nghiễm
nghều
Ngoáy
Nguyên
ngóp
người
ngỏ
ngớp
ngụa
ngửng
nhiếp
nhu
nhà
nhân
Nhóm
nhưỡng
nhắm
nhổn
nhứt
ninh
noi
nãy
nạn
nốt
ong
pao
phiên
phiêu
Phên
Phương tiện []
phẩm chất []
phố đi bộ [phố đì bộ, phố đĩ bộ]
quan trọng [quàn trọng, quản trọng, quán trọng, quăn trọng, quằn trọng, quắn trọng, quặn trọng, quân trọng, quần trọng, quẩn trọng, quẫn trọng, quấn trọng, quận trọng]
quyền lợi [quyền]
quán cà phê [qùán cà phê, qủán cà phê, qũán cà phê, qúán cà phê, qụán cà phê, qưán cà phê, qừán cà phê, qửán cà phê, qữán cà phê, qứán cà phê, qựán cà phê]
quảng cáo [quảng]
Quốc
Quốc tế [Quốc]
riêng biệt [triêng]
rưỡi
Rải
Rẻng
rộng rãi [rộng]
siễn
sum
Sõng
Sưu
sưu tập []
sử dụng [sử đụng]
Thiệt thòi []
Thuộc về [Thuộc]
thuộc tính []
Слова с ошибками []
thiệte [thiệt, thiệt e, thiện]
quốq tế []
nguên [nguyên, nguồn]
khoao [khoào, khoai, khoa, khao, khoeo, khoèo, khoan]
chenh [chênh, chềnh, chểnh, chễnh, chếnh, chệnh, cheng, chen, chanh, chành, chảnh, chánh, chạnh, chinh, chình]
chhùng [chùng, chùn, hùng]
man
doah [doa, doanh, doan, doa h]
khien [khiên, khiền, khiển, khiến, khin, khen]
ngoay

View File

@ -33,7 +33,6 @@
#include "../../../../Common/3dParty/hunspell/hunspell/src/hunspell/hunspell.h"
#include "../../../../DesktopEditor/common/StringExt.h"
#include "../../../../DesktopEditor/common/Directory.h"
#include <iostream>
bool CheckCaret(std::vector<std::wstring>& words)
{
@ -86,36 +85,11 @@ std::wstring CheckWord(Hunhandle* pDic, const std::wstring& sWord, const bool& b
return sResult;
}
#if defined(_WIN32) || defined(_WIN64)
#define USE_WCHAR_ARGC
#endif
#ifdef USE_WCHAR_ARGC
std::wstring GetParam(wchar_t* arg)
{
return std::wstring(arg);
}
#else
std::wstring GetParam(char* arg)
{
return NSFile::CUtf8Converter::GetUnicodeStringFromUTF8((BYTE *)arg, (LONG)strlen(arg));
}
#endif
#ifdef USE_WCHAR_ARGC
int wmain(int argc, wchar_t *argv[])
#else
int main(int argc, char *argv[])
#endif
{
std::wstring sSrcDir = NSFile::GetProcessDirectory() + L"/../src";
std::wstring sDstDir = NSFile::GetProcessDirectory() + L"/../dst";
std::wstring sDictionariesDir = NSFile::GetProcessDirectory() + L"/../../../../../../dictionaries";
if (argc > 1) sSrcDir = GetParam(argv[1]);
if (argc > 2) sDstDir = GetParam(argv[2]);
if (argc > 3) sDictionariesDir = GetParam(argv[3]);
std::vector<std::wstring> arSrcFiles = NSDirectory::GetFiles(sSrcDir);
for (int i = 0, len = (int)arSrcFiles.size(); i < len; ++i)
@ -135,10 +109,6 @@ int main(int argc, char *argv[])
std::wstring sAff = sDictionariesDir + L"/" + sName + L"/" + sName + L".aff";
std::wstring sDic = sDictionariesDir + L"/" + sName + L"/" + sName + L".dic";
// skip check diffs if dictionary is not exists
if (!NSFile::CFileBinary::Exists(sAff) || !NSFile::CFileBinary::Exists(sDic))
continue;
std::string sAffA = U_TO_UTF8(sAff);
std::string sDicA = U_TO_UTF8(sDic);
@ -155,8 +125,6 @@ int main(int argc, char *argv[])
Hunspell_destroy(pDictionary);
NSFile::CFileBinary::SaveToFile(sFileDst, sResult, true);
std::cout << "[" << (i + 1) << " of " << (int)arSrcFiles.size() << "] " << U_TO_UTF8(sName) << std::endl;
}
return 0;

Some files were not shown because too many files have changed in this diff Show More