diff options
Diffstat (limited to '3rdparty/bgfx/3rdparty/scintilla/lexlib')
25 files changed, 0 insertions, 5630 deletions
diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/Accessor.cxx b/3rdparty/bgfx/3rdparty/scintilla/lexlib/Accessor.cxx deleted file mode 100644 index f67737d4d64..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/Accessor.cxx +++ /dev/null @@ -1,79 +0,0 @@ -// Scintilla source code edit control -/** @file KeyWords.cxx - ** Colourise for particular languages. - **/ -// Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <stdarg.h> -#include <assert.h> -#include <ctype.h> - -#include "ILexer.h" -#include "Scintilla.h" -#include "SciLexer.h" - -#include "PropSetSimple.h" -#include "WordList.h" -#include "LexAccessor.h" -#include "Accessor.h" - -#ifdef SCI_NAMESPACE -using namespace Scintilla; -#endif - -Accessor::Accessor(IDocument *pAccess_, PropSetSimple *pprops_) : LexAccessor(pAccess_), pprops(pprops_) { -} - -int Accessor::GetPropertyInt(const char *key, int defaultValue) const { - return pprops->GetInt(key, defaultValue); -} - -int Accessor::IndentAmount(int line, int *flags, PFNIsCommentLeader pfnIsCommentLeader) { - int end = Length(); - int spaceFlags = 0; - - // Determines the indentation level of the current line and also checks for consistent - // indentation compared to the previous line. - // Indentation is judged consistent when the indentation whitespace of each line lines - // the same or the indentation of one line is a prefix of the other. - - int pos = LineStart(line); - char ch = (*this)[pos]; - int indent = 0; - bool inPrevPrefix = line > 0; - int posPrev = inPrevPrefix ? LineStart(line-1) : 0; - while ((ch == ' ' || ch == '\t') && (pos < end)) { - if (inPrevPrefix) { - char chPrev = (*this)[posPrev++]; - if (chPrev == ' ' || chPrev == '\t') { - if (chPrev != ch) - spaceFlags |= wsInconsistent; - } else { - inPrevPrefix = false; - } - } - if (ch == ' ') { - spaceFlags |= wsSpace; - indent++; - } else { // Tab - spaceFlags |= wsTab; - if (spaceFlags & wsSpace) - spaceFlags |= wsSpaceTab; - indent = (indent / 8 + 1) * 8; - } - ch = (*this)[++pos]; - } - - *flags = spaceFlags; - indent += SC_FOLDLEVELBASE; - // if completely empty line or the start of a comment... - if ((LineStart(line) == Length()) || (ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r') || - (pfnIsCommentLeader && (*pfnIsCommentLeader)(*this, pos, end-pos))) - return indent | SC_FOLDLEVELWHITEFLAG; - else - return indent; -} diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/Accessor.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/Accessor.h deleted file mode 100644 index 1bb86c53b4a..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/Accessor.h +++ /dev/null @@ -1,35 +0,0 @@ -// Scintilla source code edit control -/** @file Accessor.h - ** Interfaces between Scintilla and lexers. - **/ -// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef ACCESSOR_H -#define ACCESSOR_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -enum { wsSpace=1, wsTab=2, wsSpaceTab=4, wsInconsistent=8 }; - -class Accessor; -class WordList; -class PropSetSimple; - -typedef bool (*PFNIsCommentLeader)(Accessor &styler, int pos, int len); - -class Accessor : public LexAccessor { -public: - PropSetSimple *pprops; - Accessor(IDocument *pAccess_, PropSetSimple *pprops_); - int GetPropertyInt(const char *, int defaultValue=0) const; - int IndentAmount(int line, int *flags, PFNIsCommentLeader pfnIsCommentLeader = 0); -}; - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/CharacterCategory.cxx b/3rdparty/bgfx/3rdparty/scintilla/lexlib/CharacterCategory.cxx deleted file mode 100644 index 2be46c0130d..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/CharacterCategory.cxx +++ /dev/null @@ -1,3304 +0,0 @@ -// Scintilla source code edit control -/** @file CharacterCategory.cxx - ** Returns the Unicode general category of a character. - ** Table automatically regenerated by scripts/GenerateCharacterCategory.py - ** Should only be rarely regenerated for new versions of Unicode. - **/ -// Copyright 2013 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#include <algorithm> - -#include "StringCopy.h" -#include "CharacterCategory.h" - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -namespace { - // Use an unnamed namespace to protect the declarations from name conflicts - -const int catRanges[] = { -//++Autogenerated -- start of section automatically generated -// Created with Python 3.3.0, Unicode 6.1.0 -25, -1046, -1073, -1171, -1201, -1293, -1326, -1361, -1394, -1425, -1452, -1489, -1544, -1873, -1938, -2033, -2080, -2925, -2961, -2990, -3028, -3051, -3092, -3105, -3949, -3986, -4014, -4050, -4089, -5142, -5169, -5203, -5333, -5361, -5396, -5429, -5444, -5487, -5522, -5562, -5589, -5620, -5653, -5682, -5706, -5780, -5793, -5841, -5908, -5930, -5956, -6000, -6026, -6129, -6144, -6898, -6912, -7137, -7922, -7937, -8192, -8225, -8256, -8289, -8320, -8353, -8384, -8417, -8448, -8481, -8512, -8545, -8576, -8609, -8640, -8673, -8704, -8737, -8768, -8801, -8832, -8865, -8896, -8929, -8960, -8993, -9024, -9057, -9088, -9121, -9152, -9185, -9216, -9249, -9280, -9313, -9344, -9377, -9408, -9441, -9472, -9505, -9536, -9569, -9600, -9633, -9664, -9697, -9728, -9761, -9792, -9825, -9856, -9889, -9920, -9953, -10016, -10049, -10080, -10113, -10144, -10177, -10208, -10241, -10272, -10305, -10336, -10369, -10400, -10433, -10464, -10497, -10560, -10593, -10624, -10657, -10688, -10721, -10752, -10785, -10816, -10849, -10880, -10913, -10944, -10977, -11008, -11041, -11072, -11105, -11136, -11169, -11200, -11233, -11264, -11297, -11328, -11361, -11392, -11425, -11456, -11489, -11520, -11553, -11584, -11617, -11648, -11681, -11712, -11745, -11776, -11809, -11840, -11873, -11904, -11937, -11968, -12001, -12032, -12097, -12128, -12161, -12192, -12225, -12320, -12385, -12416, -12449, -12480, -12545, -12576, -12673, -12736, -12865, -12896, -12961, -12992, -13089, -13184, -13249, -13280, -13345, -13376, -13409, -13440, -13473, -13504, -13569, -13600, -13633, -13696, -13729, -13760, -13825, -13856, -13953, -13984, -14017, -14048, -14113, -14180, -14208, -14241, -14340, -14464, -14498, -14529, -14560, -14594, -14625, -14656, -14690, -14721, -14752, -14785, -14816, -14849, -14880, -14913, -14944, -14977, -15008, -15041, -15072, -15105, -15136, -15169, -15200, -15233, -15296, -15329, -15360, -15393, -15424, -15457, -15488, -15521, -15552, -15585, -15616, -15649, -15680, -15713, -15744, -15777, -15808, -15841, -15904, -15938, -15969, -16000, -16033, -16064, -16161, -16192, -16225, -16256, -16289, -16320, -16353, -16384, -16417, -16448, -16481, -16512, -16545, -16576, -16609, -16640, -16673, -16704, -16737, -16768, -16801, -16832, -16865, -16896, -16929, -16960, -16993, -17024, -17057, -17088, -17121, -17152, -17185, -17216, -17249, -17280, -17313, -17344, -17377, -17408, -17441, -17472, -17505, -17536, -17569, -17600, -17633, -17664, -17697, -17728, -17761, -17792, -17825, -17856, -17889, -17920, -17953, -17984, -18017, -18240, -18305, -18336, -18401, -18464, -18497, -18528, -18657, -18688, -18721, -18752, -18785, -18816, -18849, -18880, -18913, -21124, -21153, -22019, -22612, -22723, -23124, -23555, -23732, -23939, -23988, -24003, -24052, -24581, -28160, -28193, -28224, -28257, -28291, -28340, -28352, -28385, -28445, -28483, -28513, -28625, -28669, -28820, -28864, -28913, -28928, -29053, -29056, -29117, -29120, -29185, -29216, -29789, -29792, -30081, -31200, -31233, -31296, -31393, -31488, -31521, -31552, -31585, -31616, -31649, -31680, -31713, -31744, -31777, -31808, -31841, -31872, -31905, -31936, -31969, -32000, -32033, -32064, -32097, -32128, -32161, -32192, -32225, -32384, -32417, -32466, -32480, -32513, -32544, -32609, -32672, -34305, -35840, -35873, -35904, -35937, -35968, -36001, -36032, -36065, -36096, -36129, -36160, -36193, -36224, -36257, -36288, -36321, -36352, -36385, -36416, -36449, -36480, -36513, -36544, -36577, -36608, -36641, -36672, -36705, -36736, -36769, -36800, -36833, -36864, -36897, -36949, -36965, -37127, -37184, -37217, -37248, -37281, -37312, -37345, -37376, -37409, -37440, -37473, -37504, -37537, -37568, -37601, -37632, -37665, -37696, -37729, -37760, -37793, -37824, -37857, -37888, -37921, -37952, -37985, -38016, -38049, -38080, -38113, -38144, -38177, -38208, -38241, -38272, -38305, -38336, -38369, -38400, -38433, -38464, -38497, -38528, -38561, -38592, -38625, -38656, -38689, -38720, -38753, -38784, -38817, -38848, -38881, -38912, -38977, -39008, -39041, -39072, -39105, -39136, -39169, -39200, -39233, -39264, -39297, -39328, -39361, -39424, -39457, -39488, -39521, -39552, -39585, -39616, -39649, -39680, -39713, -39744, -39777, -39808, -39841, -39872, -39905, -39936, -39969, -40000, -40033, -40064, -40097, -40128, -40161, -40192, -40225, -40256, -40289, -40320, -40353, -40384, -40417, -40448, -40481, -40512, -40545, -40576, -40609, -40640, -40673, -40704, -40737, -40768, -40801, -40832, -40865, -40896, -40929, -40960, -40993, -41024, -41057, -41088, -41121, -41152, -41185, -41216, -41249, -41280, -41313, -41344, -41377, -41408, -41441, -41472, -41505, -41536, -41569, -41600, -41633, -41664, -41697, -41728, -41761, -41792, -41825, -41856, -41889, -41920, -41953, -41984, -42017, -42048, -42081, -42112, -42145, -42176, -42209, -42269, -42528, -43773, -43811, -43857, -44061, -44065, -45341, -45361, -45388, -45437, -45555, -45597, -45605, -47052, -47077, -47121, -47141, -47217, -47237, -47313, -47333, -47389, -47620, -48509, -48644, -48753, -48829, -49178, -49341, -49362, -49457, -49523, -49553, -49621, -49669, -50033, -50077, -50129, -50180, -51203, -51236, -51557, -52232, -52561, -52676, -52741, -52772, -55953, -55972, -56005, -56250, -56277, -56293, -56483, -56549, -56629, -56645, -56772, -56840, -57156, -57269, -57316, -57361, -57821, -57850, -57860, -57893, -57924, -58885, -59773, -59812, -62661, -63012, -63069, -63496, -63812, -64869, -65155, -65237, -65265, -65347, -65405, -65540, -66245, -66371, -66405, -66691, -66725, -66819, -66853, -67037, -67089, -67581, -67588, -68389, -68509, -68561, -68605, -70660, -70717, -70724, -71101, -72837, -73725, -73733, -73830, -73860, -75589, -75622, -75653, -75684, -75718, -75813, -76070, -76197, -76230, -76292, -76325, -76548, -76869, -76945, -77000, -77329, -77347, -77380, -77597, -77604, -77853, -77861, -77894, -77981, -77988, -78269, -78308, -78397, -78436, -79165, -79172, -79421, -79428, -79485, -79556, -79709, -79749, -79780, -79814, -79909, -80061, -80102, -80189, -80230, -80293, -80324, -80381, -80614, -80669, -80772, -80861, -80868, -80965, -81053, -81096, -81412, -81491, -81546, -81749, -81779, -81821, -81957, -82022, -82077, -82084, -82301, -82404, -82493, -82532, -83261, -83268, -83517, -83524, -83613, -83620, -83709, -83716, -83805, -83845, -83901, -83910, -84005, -84093, -84197, -84285, -84325, -84445, -84517, -84573, -84772, -84925, -84932, -84989, -85192, -85509, -85572, -85669, -85725, -86053, -86118, -86173, -86180, -86493, -86500, -86621, -86628, -87357, -87364, -87613, -87620, -87709, -87716, -87901, -87941, -87972, -88006, -88101, -88285, -88293, -88358, -88413, -88422, -88485, -88541, -88580, -88637, -89092, -89157, -89245, -89288, -89617, -89651, -89693, -90149, -90182, -90269, -90276, -90557, -90596, -90685, -90724, -91453, -91460, -91709, -91716, -91805, -91812, -91997, -92037, -92068, -92102, -92133, -92166, -92197, -92349, -92390, -92477, -92518, -92581, -92637, -92869, -92902, -92957, -93060, -93149, -93156, -93253, -93341, -93384, -93717, -93732, -93770, -93981, -94277, -94308, -94365, -94372, -94589, -94660, -94781, -94788, -94941, -95012, -95101, -95108, -95165, -95172, -95261, -95332, -95421, -95492, -95613, -95684, -96093, -96198, -96261, -96294, -96381, -96454, -96573, -96582, -96677, -96733, -96772, -96829, -96998, -97053, -97480, -97802, -97909, -98099, -98133, -98173, -98342, -98461, -98468, -98749, -98756, -98877, -98884, -99645, -99652, -99997, -100004, -100189, -100260, -100293, -100390, -100541, -100549, -100669, -100677, -100829, -101029, -101117, -101124, -101213, -101380, -101445, -101533, -101576, -101917, -102154, -102389, -102429, -102470, -102557, -102564, -102845, -102852, -102973, -102980, -103741, -103748, -104093, -104100, -104285, -104325, -104356, -104390, -104421, -104454, -104637, -104645, -104678, -104765, -104774, -104837, -104925, -105126, -105213, -105412, -105469, -105476, -105541, -105629, -105672, -106013, -106020, -106109, -106566, -106653, -106660, -106941, -106948, -107069, -107076, -108413, -108452, -108486, -108581, -108733, -108742, -108861, -108870, -108965, -108996, -109053, -109286, -109341, -109572, -109637, -109725, -109768, -110090, -110301, -110389, -110404, -110621, -110662, -110749, -110756, -111357, -111428, -112221, -112228, -112541, -112548, -112605, -112644, -112893, -112965, -113021, -113126, -113221, -113341, -113349, -113405, -113414, -113693, -114246, -114321, -114365, -114724, -116261, -116292, -116357, -116605, -116723, -116740, -116931, -116965, -117233, -117256, -117585, -117661, -118820, -118909, -118916, -118973, -119012, -119101, -119108, -119165, -119204, -119261, -119428, -119581, -119588, -119837, -119844, -119965, -119972, -120029, -120036, -120093, -120132, -120221, -120228, -120357, -120388, -120453, -120669, -120677, -120740, -120797, -120836, -121021, -121027, -121085, -121093, -121309, -121352, -121693, -121732, -121885, -122884, -122933, -123025, -123509, -123537, -123573, -123653, -123733, -123912, -124234, -124565, -124581, -124629, -124645, -124693, -124709, -124749, -124782, -124813, -124846, -124870, -124932, -125213, -125220, -126397, -126501, -126950, -126981, -127153, -127173, -127236, -127397, -127773, -127781, -128957, -128981, -129221, -129269, -129469, -129493, -129553, -129717, -129841, -129917, -131076, -132454, -132517, -132646, -132677, -132870, -132901, -132966, -133029, -133092, -133128, -133457, -133636, -133830, -133893, -133956, -134085, -134180, -134214, -134308, -134374, -134596, -134693, -134820, -135237, -135270, -135333, -135398, -135589, -135620, -135654, -135688, -136006, -136101, -136149, -136192, -137437, -137440, -137501, -137632, -137693, -137732, -139121, -139139, -139172, -149821, -149828, -149981, -150020, -150269, -150276, -150333, -150340, -150493, -150532, -151869, -151876, -152029, -152068, -153149, -153156, -153309, -153348, -153597, -153604, -153661, -153668, -153821, -153860, -154365, -154372, -156221, -156228, -156381, -156420, -158589, -158629, -158737, -159018, -159677, -159748, -160277, -160605, -160772, -163517, -163852, -163876, -183729, -183780, -184342, -184356, -185197, -185230, -185277, -185348, -187761, -187849, -187965, -188420, -188861, -188868, -188997, -189117, -189444, -190021, -190129, -190205, -190468, -191045, -191133, -191492, -191933, -191940, -192061, -192069, -192157, -192516, -194181, -194246, -194277, -194502, -194757, -194790, -194853, -195217, -195299, -195345, -195443, -195460, -195493, -195549, -195592, -195933, -196106, -196445, -196625, -196812, -196849, -196965, -197078, -197117, -197128, -197469, -197636, -198755, -198788, -200477, -200708, -202021, -202052, -202109, -202244, -204509, -204804, -205757, -205829, -205926, -206053, -206118, -206237, -206342, -206405, -206438, -206629, -206749, -206869, -206909, -206993, -207048, -207364, -208349, -208388, -208573, -208900, -210333, -210438, -210980, -211206, -211293, -211464, -211786, -211837, -211925, -212996, -213733, -213798, -213917, -213969, -214020, -215718, -215749, -215782, -215813, -216061, -216069, -216102, -216133, -216166, -216229, -216486, -216677, -217021, -217061, -217096, -217437, -217608, -217949, -218129, -218339, -218385, -218589, -221189, -221318, -221348, -222853, -222886, -222917, -223078, -223109, -223142, -223301, -223334, -223396, -223645, -223752, -224081, -224309, -224613, -224917, -225213, -225285, -225350, -225380, -226342, -226373, -226502, -226565, -226630, -226661, -226694, -226756, -226824, -227140, -228549, -228582, -228613, -228678, -228773, -228806, -228837, -228934, -229021, -229265, -229380, -230534, -230789, -231046, -231109, -231197, -231281, -231432, -231773, -231844, -231944, -232260, -233219, -233425, -233501, -235537, -235805, -236037, -236145, -236165, -236582, -236613, -236836, -236965, -236996, -237126, -237189, -237220, -237309, -237569, -238979, -240993, -241411, -241441, -242531, -243717, -244989, -245637, -245760, -245793, -245824, -245857, -245888, -245921, -245952, -245985, -246016, -246049, -246080, -246113, -246144, -246177, -246208, -246241, -246272, -246305, -246336, -246369, -246400, -246433, -246464, -246497, -246528, -246561, -246592, -246625, -246656, -246689, -246720, -246753, -246784, -246817, -246848, -246881, -246912, -246945, -246976, -247009, -247040, -247073, -247104, -247137, -247168, -247201, -247232, -247265, -247296, -247329, -247360, -247393, -247424, -247457, -247488, -247521, -247552, -247585, -247616, -247649, -247680, -247713, -247744, -247777, -247808, -247841, -247872, -247905, -247936, -247969, -248000, -248033, -248064, -248097, -248128, -248161, -248192, -248225, -248256, -248289, -248320, -248353, -248384, -248417, -248448, -248481, -248512, -248545, -248576, -248609, -248640, -248673, -248704, -248737, -248768, -248801, -248832, -248865, -248896, -248929, -248960, -248993, -249024, -249057, -249088, -249121, -249152, -249185, -249216, -249249, -249280, -249313, -249344, -249377, -249408, -249441, -249472, -249505, -249536, -249569, -249600, -249633, -249664, -249697, -249728, -249761, -249792, -249825, -249856, -249889, -249920, -249953, -249984, -250017, -250048, -250081, -250112, -250145, -250176, -250209, -250240, -250273, -250304, -250337, -250368, -250401, -250432, -250465, -250496, -250529, -250816, -250849, -250880, -250913, -250944, -250977, -251008, -251041, -251072, -251105, -251136, -251169, -251200, -251233, -251264, -251297, -251328, -251361, -251392, -251425, -251456, -251489, -251520, -251553, -251584, -251617, -251648, -251681, -251712, -251745, -251776, -251809, -251840, -251873, -251904, -251937, -251968, -252001, -252032, -252065, -252096, -252129, -252160, -252193, -252224, -252257, -252288, -252321, -252352, -252385, -252416, -252449, -252480, -252513, -252544, -252577, -252608, -252641, -252672, -252705, -252736, -252769, -252800, -252833, -252864, -252897, -252928, -252961, -252992, -253025, -253056, -253089, -253120, -253153, -253184, -253217, -253248, -253281, -253312, -253345, -253376, -253409, -253440, -253473, -253504, -253537, -253568, -253601, -253632, -253665, -253696, -253729, -253760, -253793, -253824, -253857, -253888, -253921, -254208, -254465, -254685, -254720, -254941, -254977, -255232, -255489, -255744, -256001, -256221, -256256, -256477, -256513, -256797, -256800, -256861, -256864, -256925, -256928, -256989, -256992, -257025, -257280, -257537, -258013, -258049, -258306, -258561, -258818, -259073, -259330, -259585, -259773, -259777, -259840, -259970, -260020, -260033, -260084, -260161, -260285, -260289, -260352, -260482, -260532, -260609, -260765, -260801, -260864, -261021, -261044, -261121, -261376, -261556, -261661, -261697, -261821, -261825, -261888, -262018, -262068, -262141, -262166, -262522, -262668, -262865, -262927, -262960, -262989, -263023, -263088, -263117, -263151, -263185, -263447, -263480, -263514, -263670, -263697, -263983, -264016, -264049, -264171, -264241, -264338, -264365, -264398, -264433, -264786, -264817, -264843, -264881, -265206, -265242, -265405, -265562, -265738, -265763, -265821, -265866, -266066, -266157, -266190, -266211, -266250, -266578, -266669, -266702, -266749, -266755, -267197, -267283, -268125, -268805, -269223, -269349, -269383, -269477, -269885, -270357, -270400, -270453, -270560, -270613, -270657, -270688, -270785, -270848, -270945, -270997, -271008, -271061, -271122, -271136, -271317, -271488, -271541, -271552, -271605, -271616, -271669, -271680, -271829, -271841, -271872, -272001, -272036, -272161, -272213, -272257, -272320, -272402, -272544, -272577, -272725, -272754, -272789, -272833, -272885, -272906, -273417, -274528, -274561, -274601, -274730, -274781, -274962, -275125, -275282, -275349, -275474, -275509, -275570, -275605, -275666, -275701, -275922, -275957, -276946, -277013, -277074, -277109, -277138, -277173, -278162, -286741, -286994, -287125, -287762, -287829, -288045, -288078, -288117, -290706, -290741, -291698, -292501, -293778, -293973, -294557, -294933, -296189, -296981, -297341, -297994, -299925, -302410, -303125, -308978, -309013, -309298, -309333, -311058, -311317, -314866, -314901, -319517, -319541, -322829, -322862, -322893, -322926, -322957, -322990, -323021, -323054, -323085, -323118, -323149, -323182, -323213, -323246, -323274, -324245, -325650, -325805, -325838, -325874, -326861, -326894, -326925, -326958, -326989, -327022, -327053, -327086, -327117, -327150, -327186, -327701, -335890, -340077, -340110, -340141, -340174, -340205, -340238, -340269, -340302, -340333, -340366, -340397, -340430, -340461, -340494, -340525, -340558, -340589, -340622, -340653, -340686, -340717, -340750, -340786, -342797, -342830, -342861, -342894, -342930, -343949, -343982, -344018, -352277, -353810, -354485, -354546, -354749, -354837, -355165, -360448, -361981, -361985, -363517, -363520, -363553, -363584, -363681, -363744, -363777, -363808, -363841, -363872, -363905, -363936, -364065, -364096, -364129, -364192, -364225, -364419, -364480, -364577, -364608, -364641, -364672, -364705, -364736, -364769, -364800, -364833, -364864, -364897, -364928, -364961, -364992, -365025, -365056, -365089, -365120, -365153, -365184, -365217, -365248, -365281, -365312, -365345, -365376, -365409, -365440, -365473, -365504, -365537, -365568, -365601, -365632, -365665, -365696, -365729, -365760, -365793, -365824, -365857, -365888, -365921, -365952, -365985, -366016, -366049, -366080, -366113, -366144, -366177, -366208, -366241, -366272, -366305, -366336, -366369, -366400, -366433, -366464, -366497, -366528, -366561, -366592, -366625, -366656, -366689, -366720, -366753, -366784, -366817, -366848, -366881, -366912, -366945, -366976, -367009, -367040, -367073, -367104, -367137, -367168, -367201, -367232, -367265, -367296, -367329, -367360, -367393, -367424, -367457, -367488, -367521, -367552, -367585, -367616, -367649, -367680, -367713, -367797, -367968, -368001, -368032, -368065, -368101, -368192, -368225, -368285, -368433, -368554, -368593, -368641, -369885, -369889, -369949, -370081, -370141, -370180, -371997, -372195, -372241, -372285, -372709, -372740, -373501, -373764, -374013, -374020, -374269, -374276, -374525, -374532, -374781, -374788, -375037, -375044, -375293, -375300, -375549, -375556, -375805, -375813, -376849, -376911, -376944, -376975, -377008, -377041, -377135, -377168, -377201, -377231, -377264, -377297, -377580, -377617, -377676, -377713, -377743, -377776, -377809, -377871, -377904, -377933, -377966, -377997, -378030, -378061, -378094, -378125, -378158, -378193, -378339, -378385, -378700, -378781, -380949, -381789, -381813, -384669, -385045, -391901, -392725, -393117, -393238, -393265, -393365, -393379, -393412, -393449, -393485, -393518, -393549, -393582, -393613, -393646, -393677, -393710, -393741, -393774, -393813, -393869, -393902, -393933, -393966, -393997, -394030, -394061, -394094, -394124, -394157, -394190, -394261, -394281, -394565, -394694, -394764, -394787, -394965, -395017, -395107, -395140, -395185, -395221, -395293, -395300, -398077, -398117, -398196, -398243, -398308, -398348, -398372, -401265, -401283, -401380, -401437, -401572, -402909, -402980, -406013, -406037, -406090, -406229, -406532, -407421, -407573, -408733, -409092, -409621, -410621, -410634, -410965, -411914, -412181, -412202, -412693, -413706, -414037, -415274, -415765, -417789, -417813, -425988, -636637, -636949, -638980, -1309117, -1310724, -1311395, -1311428, -1348029, -1348117, -1349885, -1350148, -1351427, -1351633, -1351684, -1360259, -1360305, -1360388, -1360904, -1361220, -1361309, -1361920, -1361953, -1361984, -1362017, -1362048, -1362081, -1362112, -1362145, -1362176, -1362209, -1362240, -1362273, -1362304, -1362337, -1362368, -1362401, -1362432, -1362465, -1362496, -1362529, -1362560, -1362593, -1362624, -1362657, -1362688, -1362721, -1362752, -1362785, -1362816, -1362849, -1362880, -1362913, -1362944, -1362977, -1363008, -1363041, -1363072, -1363105, -1363136, -1363169, -1363200, -1363233, -1363264, -1363297, -1363328, -1363361, -1363396, -1363429, -1363463, -1363569, -1363589, -1363921, -1363939, -1363968, -1364001, -1364032, -1364065, -1364096, -1364129, -1364160, -1364193, -1364224, -1364257, -1364288, -1364321, -1364352, -1364385, -1364416, -1364449, -1364480, -1364513, -1364544, -1364577, -1364608, -1364641, -1364672, -1364705, -1364765, -1364965, -1364996, -1367241, -1367557, -1367633, -1367837, -1368084, -1368803, -1369108, -1369152, -1369185, -1369216, -1369249, -1369280, -1369313, -1369344, -1369377, -1369408, -1369441, -1369472, -1369505, -1369536, -1369569, -1369664, -1369697, -1369728, -1369761, -1369792, -1369825, -1369856, -1369889, -1369920, -1369953, -1369984, -1370017, -1370048, -1370081, -1370112, -1370145, -1370176, -1370209, -1370240, -1370273, -1370304, -1370337, -1370368, -1370401, -1370432, -1370465, -1370496, -1370529, -1370560, -1370593, -1370624, -1370657, -1370688, -1370721, -1370752, -1370785, -1370816, -1370849, -1370880, -1370913, -1370944, -1370977, -1371008, -1371041, -1371072, -1371105, -1371136, -1371169, -1371200, -1371233, -1371264, -1371297, -1371328, -1371361, -1371392, -1371425, -1371456, -1371489, -1371520, -1371553, -1371584, -1371617, -1371651, -1371681, -1371936, -1371969, -1372000, -1372033, -1372064, -1372129, -1372160, -1372193, -1372224, -1372257, -1372288, -1372321, -1372352, -1372385, -1372419, -1372468, -1372512, -1372545, -1372576, -1372609, -1372669, -1372672, -1372705, -1372736, -1372769, -1372829, -1373184, -1373217, -1373248, -1373281, -1373312, -1373345, -1373376, -1373409, -1373440, -1373473, -1373504, -1373565, -1376003, -1376065, -1376100, -1376325, -1376356, -1376453, -1376484, -1376613, -1376644, -1377382, -1377445, -1377510, -1377557, -1377693, -1377802, -1378005, -1378067, -1378101, -1378141, -1378308, -1379985, -1380125, -1380358, -1380420, -1382022, -1382533, -1382589, -1382865, -1382920, -1383261, -1383429, -1384004, -1384209, -1384292, -1384349, -1384456, -1384772, -1385669, -1385937, -1385988, -1386725, -1387078, -1387165, -1387505, -1387524, -1388477, -1388549, -1388646, -1388676, -1390181, -1390214, -1390277, -1390406, -1390469, -1390502, -1390641, -1391069, -1391075, -1391112, -1391453, -1391569, -1391645, -1392644, -1393957, -1394150, -1394213, -1394278, -1394341, -1394429, -1394692, -1394789, -1394820, -1395077, -1395110, -1395165, -1395208, -1395549, -1395601, -1395716, -1396227, -1396260, -1396469, -1396548, -1396582, -1396637, -1396740, -1398277, -1398308, -1398341, -1398436, -1398501, -1398564, -1398725, -1398788, -1398821, -1398852, -1398909, -1399652, -1399715, -1399761, -1399812, -1400166, -1400197, -1400262, -1400337, -1400388, -1400419, -1400486, -1400517, -1400573, -1400868, -1401085, -1401124, -1401341, -1401380, -1401597, -1401860, -1402109, -1402116, -1402365, -1406980, -1408102, -1408165, -1408198, -1408261, -1408294, -1408369, -1408390, -1408421, -1408477, -1408520, -1408861, -1409028, -1766557, -1766916, -1767677, -1767780, -1769373, -1769499, -1835036, -2039812, -2051549, -2051588, -2055005, -2056193, -2056445, -2056801, -2056989, -2057124, -2057157, -2057188, -2057522, -2057540, -2057981, -2057988, -2058173, -2058180, -2058237, -2058244, -2058333, -2058340, -2058429, -2058436, -2061908, -2062429, -2062948, -2074573, -2074606, -2074653, -2075140, -2077213, -2077252, -2079005, -2080260, -2080659, -2080693, -2080733, -2080773, -2081297, -2081517, -2081550, -2081585, -2081629, -2081797, -2082045, -2082321, -2082348, -2082411, -2082477, -2082510, -2082541, -2082574, -2082605, -2082638, -2082669, -2082702, -2082733, -2082766, -2082797, -2082830, -2082861, -2082894, -2082925, -2082958, -2082993, -2083053, -2083086, -2083121, -2083243, -2083345, -2083453, -2083473, -2083596, -2083629, -2083662, -2083693, -2083726, -2083757, -2083790, -2083825, -2083922, -2083948, -2083986, -2084093, -2084113, -2084147, -2084177, -2084253, -2084356, -2084541, -2084548, -2088893, -2088954, -2088989, -2089009, -2089107, -2089137, -2089229, -2089262, -2089297, -2089330, -2089361, -2089388, -2089425, -2089480, -2089809, -2089874, -2089969, -2090016, -2090861, -2090897, -2090926, -2090964, -2090987, -2091028, -2091041, -2091885, -2091922, -2091950, -2091986, -2092013, -2092046, -2092081, -2092109, -2092142, -2092177, -2092228, -2092547, -2092580, -2094019, -2094084, -2095101, -2095172, -2095389, -2095428, -2095645, -2095684, -2095901, -2095940, -2096061, -2096147, -2096210, -2096244, -2096277, -2096307, -2096381, -2096405, -2096434, -2096565, -2096637, -2096954, -2097045, -2097117, -2097156, -2097565, -2097572, -2098429, -2098436, -2099069, -2099076, -2099165, -2099172, -2099677, -2099716, -2100189, -2101252, -2105213, -2105361, -2105469, -2105578, -2107037, -2107125, -2107401, -2109098, -2109237, -2109770, -2109821, -2109973, -2110365, -2112021, -2113445, -2113501, -2117636, -2118589, -2118660, -2120253, -2121732, -2122749, -2122762, -2122909, -2123268, -2123817, -2123844, -2124105, -2124157, -2125828, -2126813, -2126833, -2126852, -2128029, -2128132, -2128401, -2128425, -2128605, -2129920, -2131201, -2132484, -2135005, -2135048, -2135389, -2162692, -2162909, -2162948, -2163005, -2163012, -2164445, -2164452, -2164541, -2164612, -2164669, -2164708, -2165469, -2165489, -2165514, -2165789, -2170884, -2171594, -2171805, -2171889, -2171908, -2172765, -2172913, -2172957, -2174980, -2176797, -2176964, -2177053, -2179076, -2179109, -2179229, -2179237, -2179325, -2179461, -2179588, -2179741, -2179748, -2179869, -2179876, -2180765, -2180869, -2180989, -2181093, -2181130, -2181405, -2181649, -2181949, -2182148, -2183082, -2183153, -2183197, -2187268, -2189021, -2189105, -2189316, -2190045, -2190090, -2190340, -2190973, -2191114, -2191389, -2195460, -2197821, -2214922, -2215933, -2228230, -2228261, -2228294, -2228324, -2230021, -2230513, -2230749, -2230858, -2231496, -2231837, -2232325, -2232390, -2232420, -2233862, -2233957, -2234086, -2234149, -2234225, -2234298, -2234321, -2234461, -2234884, -2235709, -2235912, -2236253, -2236421, -2236516, -2237669, -2237830, -2237861, -2238141, -2238152, -2238481, -2238621, -2240517, -2240582, -2240612, -2242150, -2242245, -2242534, -2242596, -2242737, -2242877, -2243080, -2243421, -2281476, -2282853, -2282886, -2282917, -2282950, -2283013, -2283206, -2283237, -2283293, -2283528, -2283869, -2359300, -2387453, -2392073, -2395261, -2395665, -2395805, -2490372, -2524669, -2949124, -2967357, -3006468, -3008701, -3009028, -3009062, -3010557, -3011045, -3011171, -3011613, -3538948, -3539037, -3801109, -3808989, -3809301, -3810557, -3810613, -3812518, -3812581, -3812693, -3812774, -3812986, -3813221, -3813493, -3813541, -3813781, -3814725, -3814869, -3816413, -3817493, -3819589, -3819701, -3819741, -3825685, -3828477, -3828746, -3829341, -3833856, -3834689, -3835520, -3836353, -3836605, -3836609, -3837184, -3838017, -3838848, -3838909, -3838912, -3839005, -3839040, -3839101, -3839136, -3839229, -3839264, -3839421, -3839424, -3839681, -3839837, -3839841, -3839901, -3839905, -3840157, -3840161, -3840512, -3841345, -3842176, -3842269, -3842272, -3842429, -3842464, -3842749, -3842752, -3843005, -3843009, -3843840, -3843933, -3843936, -3844093, -3844096, -3844285, -3844288, -3844349, -3844416, -3844669, -3844673, -3845504, -3846337, -3847168, -3848001, -3848832, -3849665, -3850496, -3851329, -3852160, -3852993, -3853824, -3854657, -3855581, -3855616, -3856434, -3856449, -3857266, -3857281, -3857472, -3858290, -3858305, -3859122, -3859137, -3859328, -3860146, -3860161, -3860978, -3860993, -3861184, -3862002, -3862017, -3862834, -3862849, -3863040, -3863858, -3863873, -3864690, -3864705, -3864896, -3864929, -3864989, -3865032, -3866653, -4046852, -4047005, -4047012, -4047901, -4047908, -4047997, -4048004, -4048061, -4048100, -4048157, -4048164, -4048509, -4048516, -4048669, -4048676, -4048733, -4048740, -4048797, -4048964, -4049021, -4049124, -4049181, -4049188, -4049245, -4049252, -4049309, -4049316, -4049437, -4049444, -4049533, -4049540, -4049597, -4049636, -4049693, -4049700, -4049757, -4049764, -4049821, -4049828, -4049885, -4049892, -4049949, -4049956, -4050045, -4050052, -4050109, -4050148, -4050301, -4050308, -4050557, -4050564, -4050717, -4050724, -4050877, -4050884, -4050941, -4050948, -4051293, -4051300, -4051869, -4052004, -4052125, -4052132, -4052317, -4052324, -4052893, -4054546, -4054621, -4063253, -4064669, -4064789, -4067997, -4068373, -4068861, -4068917, -4069373, -4069429, -4069917, -4069941, -4070429, -4071434, -4071805, -4071957, -4072957, -4072981, -4074909, -4075029, -4076413, -4078805, -4079741, -4080149, -4081533, -4081685, -4081981, -4082197, -4082269, -4087829, -4088893, -4089365, -4089565, -4089589, -4091837, -4091925, -4092573, -4092949, -4094141, -4094165, -4094333, -4094997, -4095549, -4096021, -4098045, -4098069, -4098109, -4098133, -4103965, -4103989, -4104125, -4104213, -4106205, -4106261, -4106397, -4106773, -4107549, -4112245, -4114493, -4114613, -4114973, -4116501, -4118749, -4120597, -4124317, -4194308, -5561085, -5562372, -5695165, -5695492, -5702621, -6225924, -6243293, -29360186, -29360221, -29361178, -29364253, -29368325, -29376029, -31457308, -33554397, -33554460, -35651549, -//--Autogenerated -- end of section automatically generated -}; - -const int maxUnicode = 0x10ffff; -const int maskCategory = 0x1F; -const int nRanges = ELEMENTS(catRanges); - -} - -// Each element in catRanges is the start of a range of Unicode characters in -// one general category. -// The value is comprised of a 21-bit character value shifted 5 bits and a 5 bit -// category matching the CharacterCategory enumeration. -// Initial version has 3249 entries and adds about 13K to the executable. -// The array is in ascending order so can be searched using binary search. -// Therefore the average call takes log2(3249) = 12 comparisons. -// For speed, it may be useful to make a linear table for the common values, -// possibly for 0..0xff for most Western European text or 0..0xfff for most -// alphabetic languages. - -CharacterCategory CategoriseCharacter(int character) { - if (character < 0 || character > maxUnicode) - return ccCn; - const int baseValue = character * (maskCategory+1) + maskCategory; - const int *placeAfter = std::lower_bound(catRanges, catRanges+nRanges, baseValue); - return static_cast<CharacterCategory>(*(placeAfter-1) & maskCategory); -} - -#ifdef SCI_NAMESPACE -} -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/CharacterCategory.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/CharacterCategory.h deleted file mode 100644 index c8600504bb4..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/CharacterCategory.h +++ /dev/null @@ -1,31 +0,0 @@ -// Scintilla source code edit control -/** @file CharacterCategory.h - ** Returns the Unicode general category of a character. - **/ -// Copyright 2013 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef CHARACTERCATEGORY_H -#define CHARACTERCATEGORY_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -enum CharacterCategory { - ccLu, ccLl, ccLt, ccLm, ccLo, - ccMn, ccMc, ccMe, - ccNd, ccNl, ccNo, - ccPc, ccPd, ccPs, ccPe, ccPi, ccPf, ccPo, - ccSm, ccSc, ccSk, ccSo, - ccZs, ccZl, ccZp, - ccCc, ccCf, ccCs, ccCo, ccCn -}; - -CharacterCategory CategoriseCharacter(int character); - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/CharacterSet.cxx b/3rdparty/bgfx/3rdparty/scintilla/lexlib/CharacterSet.cxx deleted file mode 100644 index 0ab2cc0cc9d..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/CharacterSet.cxx +++ /dev/null @@ -1,61 +0,0 @@ -// Scintilla source code edit control -/** @file CharacterSet.cxx - ** Simple case functions for ASCII. - ** Lexer infrastructure. - **/ -// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <assert.h> -#include <ctype.h> - -#include "CharacterSet.h" - -#ifdef SCI_NAMESPACE -using namespace Scintilla; -#endif - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -int CompareCaseInsensitive(const char *a, const char *b) { - while (*a && *b) { - if (*a != *b) { - char upperA = MakeUpperCase(*a); - char upperB = MakeUpperCase(*b); - if (upperA != upperB) - return upperA - upperB; - } - a++; - b++; - } - // Either *a or *b is nul - return *a - *b; -} - -int CompareNCaseInsensitive(const char *a, const char *b, size_t len) { - while (*a && *b && len) { - if (*a != *b) { - char upperA = MakeUpperCase(*a); - char upperB = MakeUpperCase(*b); - if (upperA != upperB) - return upperA - upperB; - } - a++; - b++; - len--; - } - if (len == 0) - return 0; - else - // Either *a or *b is nul - return *a - *b; -} - -#ifdef SCI_NAMESPACE -} -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/CharacterSet.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/CharacterSet.h deleted file mode 100644 index a0c45b2fbcc..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/CharacterSet.h +++ /dev/null @@ -1,177 +0,0 @@ -// Scintilla source code edit control -/** @file CharacterSet.h - ** Encapsulates a set of characters. Used to test if a character is within a set. - **/ -// Copyright 2007 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef CHARACTERSET_H -#define CHARACTERSET_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -class CharacterSet { - int size; - bool valueAfter; - bool *bset; -public: - enum setBase { - setNone=0, - setLower=1, - setUpper=2, - setDigits=4, - setAlpha=setLower|setUpper, - setAlphaNum=setAlpha|setDigits - }; - CharacterSet(setBase base=setNone, const char *initialSet="", int size_=0x80, bool valueAfter_=false) { - size = size_; - valueAfter = valueAfter_; - bset = new bool[size]; - for (int i=0; i < size; i++) { - bset[i] = false; - } - AddString(initialSet); - if (base & setLower) - AddString("abcdefghijklmnopqrstuvwxyz"); - if (base & setUpper) - AddString("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); - if (base & setDigits) - AddString("0123456789"); - } - CharacterSet(const CharacterSet &other) { - size = other.size; - valueAfter = other.valueAfter; - bset = new bool[size]; - for (int i=0; i < size; i++) { - bset[i] = other.bset[i]; - } - } - ~CharacterSet() { - delete []bset; - bset = 0; - size = 0; - } - CharacterSet &operator=(const CharacterSet &other) { - if (this != &other) { - bool *bsetNew = new bool[other.size]; - for (int i=0; i < other.size; i++) { - bsetNew[i] = other.bset[i]; - } - delete []bset; - size = other.size; - valueAfter = other.valueAfter; - bset = bsetNew; - } - return *this; - } - void Add(int val) { - assert(val >= 0); - assert(val < size); - bset[val] = true; - } - void AddString(const char *setToAdd) { - for (const char *cp=setToAdd; *cp; cp++) { - int val = static_cast<unsigned char>(*cp); - assert(val >= 0); - assert(val < size); - bset[val] = true; - } - } - bool Contains(int val) const { - assert(val >= 0); - if (val < 0) return false; - return (val < size) ? bset[val] : valueAfter; - } -}; - -// Functions for classifying characters - -inline bool IsASpace(int ch) { - return (ch == ' ') || ((ch >= 0x09) && (ch <= 0x0d)); -} - -inline bool IsASpaceOrTab(int ch) { - return (ch == ' ') || (ch == '\t'); -} - -inline bool IsADigit(int ch) { - return (ch >= '0') && (ch <= '9'); -} - -inline bool IsADigit(int ch, int base) { - if (base <= 10) { - return (ch >= '0') && (ch < '0' + base); - } else { - return ((ch >= '0') && (ch <= '9')) || - ((ch >= 'A') && (ch < 'A' + base - 10)) || - ((ch >= 'a') && (ch < 'a' + base - 10)); - } -} - -inline bool IsASCII(int ch) { - return (ch >= 0) && (ch < 0x80); -} - -inline bool IsLowerCase(int ch) { - return (ch >= 'a') && (ch <= 'z'); -} - -inline bool IsUpperCase(int ch) { - return (ch >= 'A') && (ch <= 'Z'); -} - -inline bool IsAlphaNumeric(int ch) { - return - ((ch >= '0') && (ch <= '9')) || - ((ch >= 'a') && (ch <= 'z')) || - ((ch >= 'A') && (ch <= 'Z')); -} - -/** - * Check if a character is a space. - * This is ASCII specific but is safe with chars >= 0x80. - */ -inline bool isspacechar(int ch) { - return (ch == ' ') || ((ch >= 0x09) && (ch <= 0x0d)); -} - -inline bool iswordchar(int ch) { - return IsAlphaNumeric(ch) || ch == '.' || ch == '_'; -} - -inline bool iswordstart(int ch) { - return IsAlphaNumeric(ch) || ch == '_'; -} - -inline bool isoperator(int ch) { - if (IsAlphaNumeric(ch)) - return false; - if (ch == '%' || ch == '^' || ch == '&' || ch == '*' || - ch == '(' || ch == ')' || ch == '-' || ch == '+' || - ch == '=' || ch == '|' || ch == '{' || ch == '}' || - ch == '[' || ch == ']' || ch == ':' || ch == ';' || - ch == '<' || ch == '>' || ch == ',' || ch == '/' || - ch == '?' || ch == '!' || ch == '.' || ch == '~') - return true; - return false; -} - -// Simple case functions for ASCII. - -inline char MakeUpperCase(char ch) { - if (ch < 'a' || ch > 'z') - return ch; - else - return static_cast<char>(ch - 'a' + 'A'); -} - -int CompareCaseInsensitive(const char *a, const char *b); -int CompareNCaseInsensitive(const char *a, const char *b, size_t len); - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexAccessor.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexAccessor.h deleted file mode 100644 index 8e3455d0c35..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexAccessor.h +++ /dev/null @@ -1,204 +0,0 @@ -// Scintilla source code edit control -/** @file LexAccessor.h - ** Interfaces between Scintilla and lexers. - **/ -// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef LEXACCESSOR_H -#define LEXACCESSOR_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -enum EncodingType { enc8bit, encUnicode, encDBCS }; - -class LexAccessor { -private: - IDocument *pAccess; - enum {extremePosition=0x7FFFFFFF}; - /** @a bufferSize is a trade off between time taken to copy the characters - * and retrieval overhead. - * @a slopSize positions the buffer before the desired position - * in case there is some backtracking. */ - enum {bufferSize=4000, slopSize=bufferSize/8}; - char buf[bufferSize+1]; - int startPos; - int endPos; - int codePage; - enum EncodingType encodingType; - int lenDoc; - char styleBuf[bufferSize]; - int validLen; - unsigned int startSeg; - int startPosStyling; - int documentVersion; - - void Fill(int position) { - startPos = position - slopSize; - if (startPos + bufferSize > lenDoc) - startPos = lenDoc - bufferSize; - if (startPos < 0) - startPos = 0; - endPos = startPos + bufferSize; - if (endPos > lenDoc) - endPos = lenDoc; - - pAccess->GetCharRange(buf, startPos, endPos-startPos); - buf[endPos-startPos] = '\0'; - } - -public: - explicit LexAccessor(IDocument *pAccess_) : - pAccess(pAccess_), startPos(extremePosition), endPos(0), - codePage(pAccess->CodePage()), - encodingType(enc8bit), - lenDoc(pAccess->Length()), - validLen(0), - startSeg(0), startPosStyling(0), - documentVersion(pAccess->Version()) { - // Prevent warnings by static analyzers about uninitialized buf and styleBuf. - buf[0] = 0; - styleBuf[0] = 0; - switch (codePage) { - case 65001: - encodingType = encUnicode; - break; - case 932: - case 936: - case 949: - case 950: - case 1361: - encodingType = encDBCS; - } - } - char operator[](int position) { - if (position < startPos || position >= endPos) { - Fill(position); - } - return buf[position - startPos]; - } - IDocumentWithLineEnd *MultiByteAccess() const { - if (documentVersion >= dvLineEnd) { - return static_cast<IDocumentWithLineEnd *>(pAccess); - } - return 0; - } - /** Safe version of operator[], returning a defined value for invalid position. */ - char SafeGetCharAt(int position, char chDefault=' ') { - if (position < startPos || position >= endPos) { - Fill(position); - if (position < startPos || position >= endPos) { - // Position is outside range of document - return chDefault; - } - } - return buf[position - startPos]; - } - bool IsLeadByte(char ch) const { - return pAccess->IsDBCSLeadByte(ch); - } - EncodingType Encoding() const { - return encodingType; - } - bool Match(int pos, const char *s) { - for (int i=0; *s; i++) { - if (*s != SafeGetCharAt(pos+i)) - return false; - s++; - } - return true; - } - char StyleAt(int position) const { - return static_cast<char>(pAccess->StyleAt(position)); - } - int GetLine(int position) const { - return pAccess->LineFromPosition(position); - } - int LineStart(int line) const { - return pAccess->LineStart(line); - } - int LineEnd(int line) { - if (documentVersion >= dvLineEnd) { - return (static_cast<IDocumentWithLineEnd *>(pAccess))->LineEnd(line); - } else { - // Old interface means only '\r', '\n' and '\r\n' line ends. - int startNext = pAccess->LineStart(line+1); - char chLineEnd = SafeGetCharAt(startNext-1); - if (chLineEnd == '\n' && (SafeGetCharAt(startNext-2) == '\r')) - return startNext - 2; - else - return startNext - 1; - } - } - int LevelAt(int line) const { - return pAccess->GetLevel(line); - } - int Length() const { - return lenDoc; - } - void Flush() { - if (validLen > 0) { - pAccess->SetStyles(validLen, styleBuf); - startPosStyling += validLen; - validLen = 0; - } - } - int GetLineState(int line) const { - return pAccess->GetLineState(line); - } - int SetLineState(int line, int state) { - return pAccess->SetLineState(line, state); - } - // Style setting - void StartAt(unsigned int start) { - pAccess->StartStyling(start, '\377'); - startPosStyling = start; - } - unsigned int GetStartSegment() const { - return startSeg; - } - void StartSegment(unsigned int pos) { - startSeg = pos; - } - void ColourTo(unsigned int pos, int chAttr) { - // Only perform styling if non empty range - if (pos != startSeg - 1) { - assert(pos >= startSeg); - if (pos < startSeg) { - return; - } - - if (validLen + (pos - startSeg + 1) >= bufferSize) - Flush(); - if (validLen + (pos - startSeg + 1) >= bufferSize) { - // Too big for buffer so send directly - pAccess->SetStyleFor(pos - startSeg + 1, static_cast<char>(chAttr)); - } else { - for (unsigned int i = startSeg; i <= pos; i++) { - assert((startPosStyling + validLen) < Length()); - styleBuf[validLen++] = static_cast<char>(chAttr); - } - } - } - startSeg = pos+1; - } - void SetLevel(int line, int level) { - pAccess->SetLevel(line, level); - } - void IndicatorFill(int start, int end, int indicator, int value) { - pAccess->DecorationSetCurrentIndicator(indicator); - pAccess->DecorationFillRange(start, value, end - start); - } - - void ChangeLexerState(int start, int end) { - pAccess->ChangeLexerState(start, end); - } -}; - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerBase.cxx b/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerBase.cxx deleted file mode 100644 index bbef3f15939..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerBase.cxx +++ /dev/null @@ -1,92 +0,0 @@ -// Scintilla source code edit control -/** @file LexerBase.cxx - ** A simple lexer with no state. - **/ -// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <stdarg.h> -#include <assert.h> -#include <ctype.h> - -#include "ILexer.h" -#include "Scintilla.h" -#include "SciLexer.h" - -#include "PropSetSimple.h" -#include "WordList.h" -#include "LexAccessor.h" -#include "Accessor.h" -#include "LexerModule.h" -#include "LexerBase.h" - -#ifdef SCI_NAMESPACE -using namespace Scintilla; -#endif - -LexerBase::LexerBase() { - for (int wl = 0; wl < numWordLists; wl++) - keyWordLists[wl] = new WordList; - keyWordLists[numWordLists] = 0; -} - -LexerBase::~LexerBase() { - for (int wl = 0; wl < numWordLists; wl++) { - delete keyWordLists[wl]; - keyWordLists[wl] = 0; - } - keyWordLists[numWordLists] = 0; -} - -void SCI_METHOD LexerBase::Release() { - delete this; -} - -int SCI_METHOD LexerBase::Version() const { - return lvOriginal; -} - -const char * SCI_METHOD LexerBase::PropertyNames() { - return ""; -} - -int SCI_METHOD LexerBase::PropertyType(const char *) { - return SC_TYPE_BOOLEAN; -} - -const char * SCI_METHOD LexerBase::DescribeProperty(const char *) { - return ""; -} - -int SCI_METHOD LexerBase::PropertySet(const char *key, const char *val) { - const char *valOld = props.Get(key); - if (strcmp(val, valOld) != 0) { - props.Set(key, val); - return 0; - } else { - return -1; - } -} - -const char * SCI_METHOD LexerBase::DescribeWordListSets() { - return ""; -} - -int SCI_METHOD LexerBase::WordListSet(int n, const char *wl) { - if (n < numWordLists) { - WordList wlNew; - wlNew.Set(wl); - if (*keyWordLists[n] != wlNew) { - keyWordLists[n]->Set(wl); - return 0; - } - } - return -1; -} - -void * SCI_METHOD LexerBase::PrivateCall(int, void *) { - return 0; -} diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerBase.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerBase.h deleted file mode 100644 index 2998d2449f9..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerBase.h +++ /dev/null @@ -1,41 +0,0 @@ -// Scintilla source code edit control -/** @file LexerBase.h - ** A simple lexer with no state. - **/ -// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef LEXERBASE_H -#define LEXERBASE_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -// A simple lexer with no state -class LexerBase : public ILexer { -protected: - PropSetSimple props; - enum {numWordLists=KEYWORDSET_MAX+1}; - WordList *keyWordLists[numWordLists+1]; -public: - LexerBase(); - virtual ~LexerBase(); - void SCI_METHOD Release(); - int SCI_METHOD Version() const; - const char * SCI_METHOD PropertyNames(); - int SCI_METHOD PropertyType(const char *name); - const char * SCI_METHOD DescribeProperty(const char *name); - int SCI_METHOD PropertySet(const char *key, const char *val); - const char * SCI_METHOD DescribeWordListSets(); - int SCI_METHOD WordListSet(int n, const char *wl); - void SCI_METHOD Lex(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) = 0; - void SCI_METHOD Fold(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) = 0; - void * SCI_METHOD PrivateCall(int operation, void *pointer); -}; - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerModule.cxx b/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerModule.cxx deleted file mode 100644 index 6cefbee7786..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerModule.cxx +++ /dev/null @@ -1,111 +0,0 @@ -// Scintilla source code edit control -/** @file LexerModule.cxx - ** Colourise for particular languages. - **/ -// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <stdarg.h> -#include <assert.h> -#include <ctype.h> - -#include <string> - -#include "ILexer.h" -#include "Scintilla.h" -#include "SciLexer.h" - -#include "PropSetSimple.h" -#include "WordList.h" -#include "LexAccessor.h" -#include "Accessor.h" -#include "LexerModule.h" -#include "LexerBase.h" -#include "LexerSimple.h" - -#ifdef SCI_NAMESPACE -using namespace Scintilla; -#endif - -LexerModule::LexerModule(int language_, - LexerFunction fnLexer_, - const char *languageName_, - LexerFunction fnFolder_, - const char *const wordListDescriptions_[]) : - language(language_), - fnLexer(fnLexer_), - fnFolder(fnFolder_), - fnFactory(0), - wordListDescriptions(wordListDescriptions_), - languageName(languageName_) { -} - -LexerModule::LexerModule(int language_, - LexerFactoryFunction fnFactory_, - const char *languageName_, - const char * const wordListDescriptions_[]) : - language(language_), - fnLexer(0), - fnFolder(0), - fnFactory(fnFactory_), - wordListDescriptions(wordListDescriptions_), - languageName(languageName_) { -} - -int LexerModule::GetNumWordLists() const { - if (wordListDescriptions == NULL) { - return -1; - } else { - int numWordLists = 0; - - while (wordListDescriptions[numWordLists]) { - ++numWordLists; - } - - return numWordLists; - } -} - -const char *LexerModule::GetWordListDescription(int index) const { - assert(index < GetNumWordLists()); - if (!wordListDescriptions || (index >= GetNumWordLists())) { - return ""; - } else { - return wordListDescriptions[index]; - } -} - -ILexer *LexerModule::Create() const { - if (fnFactory) - return fnFactory(); - else - return new LexerSimple(this); -} - -void LexerModule::Lex(unsigned int startPos, int lengthDoc, int initStyle, - WordList *keywordlists[], Accessor &styler) const { - if (fnLexer) - fnLexer(startPos, lengthDoc, initStyle, keywordlists, styler); -} - -void LexerModule::Fold(unsigned int startPos, int lengthDoc, int initStyle, - WordList *keywordlists[], Accessor &styler) const { - if (fnFolder) { - int lineCurrent = styler.GetLine(startPos); - // Move back one line in case deletion wrecked current line fold state - if (lineCurrent > 0) { - lineCurrent--; - int newStartPos = styler.LineStart(lineCurrent); - lengthDoc += startPos - newStartPos; - startPos = newStartPos; - initStyle = 0; - if (startPos > 0) { - initStyle = styler.StyleAt(startPos - 1); - } - } - fnFolder(startPos, lengthDoc, initStyle, keywordlists, styler); - } -} diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerModule.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerModule.h deleted file mode 100644 index 5993c0fe972..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerModule.h +++ /dev/null @@ -1,82 +0,0 @@ -// Scintilla source code edit control -/** @file LexerModule.h - ** Colourise for particular languages. - **/ -// Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef LEXERMODULE_H -#define LEXERMODULE_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -class Accessor; -class WordList; - -typedef void (*LexerFunction)(unsigned int startPos, int lengthDoc, int initStyle, - WordList *keywordlists[], Accessor &styler); -typedef ILexer *(*LexerFactoryFunction)(); - -/** - * A LexerModule is responsible for lexing and folding a particular language. - * The class maintains a list of LexerModules which can be searched to find a - * module appropriate to a particular language. - */ -class LexerModule { -protected: - int language; - LexerFunction fnLexer; - LexerFunction fnFolder; - LexerFactoryFunction fnFactory; - const char * const * wordListDescriptions; - -public: - const char *languageName; - LexerModule(int language_, - LexerFunction fnLexer_, - const char *languageName_=0, - LexerFunction fnFolder_=0, - const char * const wordListDescriptions_[] = NULL); - LexerModule(int language_, - LexerFactoryFunction fnFactory_, - const char *languageName_, - const char * const wordListDescriptions_[] = NULL); - virtual ~LexerModule() { - } - int GetLanguage() const { return language; } - - // -1 is returned if no WordList information is available - int GetNumWordLists() const; - const char *GetWordListDescription(int index) const; - - ILexer *Create() const; - - virtual void Lex(unsigned int startPos, int length, int initStyle, - WordList *keywordlists[], Accessor &styler) const; - virtual void Fold(unsigned int startPos, int length, int initStyle, - WordList *keywordlists[], Accessor &styler) const; - - friend class Catalogue; -}; - -inline int Maximum(int a, int b) { - return (a > b) ? a : b; -} - -// Shut up annoying Visual C++ warnings: -#ifdef _MSC_VER -#pragma warning(disable: 4244 4309 4456 4457) -#endif - -// Turn off shadow warnings for lexers as may be maintained by others -#if defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wshadow" -#endif - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerNoExceptions.cxx b/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerNoExceptions.cxx deleted file mode 100644 index 84c4fd26b38..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerNoExceptions.cxx +++ /dev/null @@ -1,70 +0,0 @@ -// Scintilla source code edit control -/** @file LexerNoExceptions.cxx - ** A simple lexer with no state which does not throw exceptions so can be used in an external lexer. - **/ -// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <stdarg.h> -#include <assert.h> -#include <ctype.h> - -#include "ILexer.h" -#include "Scintilla.h" -#include "SciLexer.h" - -#include "PropSetSimple.h" -#include "WordList.h" -#include "LexAccessor.h" -#include "Accessor.h" -#include "LexerModule.h" -#include "LexerBase.h" -#include "LexerNoExceptions.h" - -#include "Platform.h" - -#ifdef SCI_NAMESPACE -using namespace Scintilla; -#endif - -int SCI_METHOD LexerNoExceptions::PropertySet(const char *key, const char *val) { - try { - return LexerBase::PropertySet(key, val); - } catch (...) { - // Should not throw into caller as may be compiled with different compiler or options - } - return -1; -} - -int SCI_METHOD LexerNoExceptions::WordListSet(int n, const char *wl) { - try { - return LexerBase::WordListSet(n, wl); - } catch (...) { - // Should not throw into caller as may be compiled with different compiler or options - } - return -1; -} - -void SCI_METHOD LexerNoExceptions::Lex(unsigned int startPos, int length, int initStyle, IDocument *pAccess) { - try { - Accessor astyler(pAccess, &props); - Lexer(startPos, length, initStyle, pAccess, astyler); - astyler.Flush(); - } catch (...) { - // Should not throw into caller as may be compiled with different compiler or options - pAccess->SetErrorStatus(SC_STATUS_FAILURE); - } -} -void SCI_METHOD LexerNoExceptions::Fold(unsigned int startPos, int length, int initStyle, IDocument *pAccess) { - try { - Accessor astyler(pAccess, &props); - Folder(startPos, length, initStyle, pAccess, astyler); - astyler.Flush(); - } catch (...) { - // Should not throw into caller as may be compiled with different compiler or options - pAccess->SetErrorStatus(SC_STATUS_FAILURE); - } -} diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerNoExceptions.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerNoExceptions.h deleted file mode 100644 index 70ff3c13821..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerNoExceptions.h +++ /dev/null @@ -1,32 +0,0 @@ -// Scintilla source code edit control -/** @file LexerNoExceptions.h - ** A simple lexer with no state. - **/ -// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef LEXERNOEXCEPTIONS_H -#define LEXERNOEXCEPTIONS_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -// A simple lexer with no state -class LexerNoExceptions : public LexerBase { -public: - // TODO Also need to prevent exceptions in constructor and destructor - int SCI_METHOD PropertySet(const char *key, const char *val); - int SCI_METHOD WordListSet(int n, const char *wl); - void SCI_METHOD Lex(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess); - void SCI_METHOD Fold(unsigned int startPos, int lengthDoc, int initStyle, IDocument *); - - virtual void Lexer(unsigned int startPos, int length, int initStyle, IDocument *pAccess, Accessor &styler) = 0; - virtual void Folder(unsigned int startPos, int length, int initStyle, IDocument *pAccess, Accessor &styler) = 0; -}; - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerSimple.cxx b/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerSimple.cxx deleted file mode 100644 index 4d0e178ca96..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerSimple.cxx +++ /dev/null @@ -1,57 +0,0 @@ -// Scintilla source code edit control -/** @file LexerSimple.cxx - ** A simple lexer with no state. - **/ -// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <stdarg.h> -#include <assert.h> -#include <ctype.h> - -#include <string> - -#include "ILexer.h" -#include "Scintilla.h" -#include "SciLexer.h" - -#include "PropSetSimple.h" -#include "WordList.h" -#include "LexAccessor.h" -#include "Accessor.h" -#include "LexerModule.h" -#include "LexerBase.h" -#include "LexerSimple.h" - -#ifdef SCI_NAMESPACE -using namespace Scintilla; -#endif - -LexerSimple::LexerSimple(const LexerModule *module_) : module(module_) { - for (int wl = 0; wl < module->GetNumWordLists(); wl++) { - if (!wordLists.empty()) - wordLists += "\n"; - wordLists += module->GetWordListDescription(wl); - } -} - -const char * SCI_METHOD LexerSimple::DescribeWordListSets() { - return wordLists.c_str(); -} - -void SCI_METHOD LexerSimple::Lex(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) { - Accessor astyler(pAccess, &props); - module->Lex(startPos, lengthDoc, initStyle, keyWordLists, astyler); - astyler.Flush(); -} - -void SCI_METHOD LexerSimple::Fold(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) { - if (props.GetInt("fold")) { - Accessor astyler(pAccess, &props); - module->Fold(startPos, lengthDoc, initStyle, keyWordLists, astyler); - astyler.Flush(); - } -} diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerSimple.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerSimple.h deleted file mode 100644 index e9fa9003ff2..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/LexerSimple.h +++ /dev/null @@ -1,30 +0,0 @@ -// Scintilla source code edit control -/** @file LexerSimple.h - ** A simple lexer with no state. - **/ -// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef LEXERSIMPLE_H -#define LEXERSIMPLE_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -// A simple lexer with no state -class LexerSimple : public LexerBase { - const LexerModule *module; - std::string wordLists; -public: - explicit LexerSimple(const LexerModule *module_); - const char * SCI_METHOD DescribeWordListSets(); - void SCI_METHOD Lex(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess); - void SCI_METHOD Fold(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess); -}; - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/OptionSet.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/OptionSet.h deleted file mode 100644 index 2935a20897e..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/OptionSet.h +++ /dev/null @@ -1,142 +0,0 @@ -// Scintilla source code edit control -/** @file OptionSet.h - ** Manage descriptive information about an options struct for a lexer. - ** Hold the names, positions, and descriptions of boolean, integer and string options and - ** allow setting options and retrieving metadata about the options. - **/ -// Copyright 2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef OPTIONSET_H -#define OPTIONSET_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -template <typename T> -class OptionSet { - typedef T Target; - typedef bool T::*plcob; - typedef int T::*plcoi; - typedef std::string T::*plcos; - struct Option { - int opType; - union { - plcob pb; - plcoi pi; - plcos ps; - }; - std::string description; - Option() : - opType(SC_TYPE_BOOLEAN), pb(0), description("") { - } - Option(plcob pb_, std::string description_="") : - opType(SC_TYPE_BOOLEAN), pb(pb_), description(description_) { - } - Option(plcoi pi_, std::string description_) : - opType(SC_TYPE_INTEGER), pi(pi_), description(description_) { - } - Option(plcos ps_, std::string description_) : - opType(SC_TYPE_STRING), ps(ps_), description(description_) { - } - bool Set(T *base, const char *val) const { - switch (opType) { - case SC_TYPE_BOOLEAN: { - bool option = atoi(val) != 0; - if ((*base).*pb != option) { - (*base).*pb = option; - return true; - } - break; - } - case SC_TYPE_INTEGER: { - int option = atoi(val); - if ((*base).*pi != option) { - (*base).*pi = option; - return true; - } - break; - } - case SC_TYPE_STRING: { - if ((*base).*ps != val) { - (*base).*ps = val; - return true; - } - break; - } - } - return false; - } - }; - typedef std::map<std::string, Option> OptionMap; - OptionMap nameToDef; - std::string names; - std::string wordLists; - - void AppendName(const char *name) { - if (!names.empty()) - names += "\n"; - names += name; - } -public: - virtual ~OptionSet() { - } - void DefineProperty(const char *name, plcob pb, std::string description="") { - nameToDef[name] = Option(pb, description); - AppendName(name); - } - void DefineProperty(const char *name, plcoi pi, std::string description="") { - nameToDef[name] = Option(pi, description); - AppendName(name); - } - void DefineProperty(const char *name, plcos ps, std::string description="") { - nameToDef[name] = Option(ps, description); - AppendName(name); - } - const char *PropertyNames() const { - return names.c_str(); - } - int PropertyType(const char *name) { - typename OptionMap::iterator it = nameToDef.find(name); - if (it != nameToDef.end()) { - return it->second.opType; - } - return SC_TYPE_BOOLEAN; - } - const char *DescribeProperty(const char *name) { - typename OptionMap::iterator it = nameToDef.find(name); - if (it != nameToDef.end()) { - return it->second.description.c_str(); - } - return ""; - } - - bool PropertySet(T *base, const char *name, const char *val) { - typename OptionMap::iterator it = nameToDef.find(name); - if (it != nameToDef.end()) { - return it->second.Set(base, val); - } - return false; - } - - void DefineWordListSets(const char * const wordListDescriptions[]) { - if (wordListDescriptions) { - for (size_t wl = 0; wordListDescriptions[wl]; wl++) { - if (!wordLists.empty()) - wordLists += "\n"; - wordLists += wordListDescriptions[wl]; - } - } - } - - const char *DescribeWordListSets() const { - return wordLists.c_str(); - } -}; - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/PropSetSimple.cxx b/3rdparty/bgfx/3rdparty/scintilla/lexlib/PropSetSimple.cxx deleted file mode 100644 index 6592d70eb39..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/PropSetSimple.cxx +++ /dev/null @@ -1,156 +0,0 @@ -// SciTE - Scintilla based Text Editor -/** @file PropSetSimple.cxx - ** A Java style properties file module. - **/ -// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -// Maintain a dictionary of properties - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> - -#include <string> -#include <map> - -#include "PropSetSimple.h" - -#ifdef SCI_NAMESPACE -using namespace Scintilla; -#endif - -typedef std::map<std::string, std::string> mapss; - -PropSetSimple::PropSetSimple() { - mapss *props = new mapss; - impl = static_cast<void *>(props); -} - -PropSetSimple::~PropSetSimple() { - mapss *props = static_cast<mapss *>(impl); - delete props; - impl = 0; -} - -void PropSetSimple::Set(const char *key, const char *val, int lenKey, int lenVal) { - mapss *props = static_cast<mapss *>(impl); - if (!*key) // Empty keys are not supported - return; - if (lenKey == -1) - lenKey = static_cast<int>(strlen(key)); - if (lenVal == -1) - lenVal = static_cast<int>(strlen(val)); - (*props)[std::string(key, lenKey)] = std::string(val, lenVal); -} - -static bool IsASpaceCharacter(unsigned int ch) { - return (ch == ' ') || ((ch >= 0x09) && (ch <= 0x0d)); -} - -void PropSetSimple::Set(const char *keyVal) { - while (IsASpaceCharacter(*keyVal)) - keyVal++; - const char *endVal = keyVal; - while (*endVal && (*endVal != '\n')) - endVal++; - const char *eqAt = strchr(keyVal, '='); - if (eqAt) { - Set(keyVal, eqAt + 1, static_cast<int>(eqAt-keyVal), - static_cast<int>(endVal - eqAt - 1)); - } else if (*keyVal) { // No '=' so assume '=1' - Set(keyVal, "1", static_cast<int>(endVal-keyVal), 1); - } -} - -void PropSetSimple::SetMultiple(const char *s) { - const char *eol = strchr(s, '\n'); - while (eol) { - Set(s); - s = eol + 1; - eol = strchr(s, '\n'); - } - Set(s); -} - -const char *PropSetSimple::Get(const char *key) const { - mapss *props = static_cast<mapss *>(impl); - mapss::const_iterator keyPos = props->find(std::string(key)); - if (keyPos != props->end()) { - return keyPos->second.c_str(); - } else { - return ""; - } -} - -// There is some inconsistency between GetExpanded("foo") and Expand("$(foo)"). -// A solution is to keep a stack of variables that have been expanded, so that -// recursive expansions can be skipped. For now I'll just use the C++ stack -// for that, through a recursive function and a simple chain of pointers. - -struct VarChain { - VarChain(const char *var_=NULL, const VarChain *link_=NULL): var(var_), link(link_) {} - - bool contains(const char *testVar) const { - return (var && (0 == strcmp(var, testVar))) - || (link && link->contains(testVar)); - } - - const char *var; - const VarChain *link; -}; - -static int ExpandAllInPlace(const PropSetSimple &props, std::string &withVars, int maxExpands, const VarChain &blankVars) { - size_t varStart = withVars.find("$("); - while ((varStart != std::string::npos) && (maxExpands > 0)) { - size_t varEnd = withVars.find(")", varStart+2); - if (varEnd == std::string::npos) { - break; - } - - // For consistency, when we see '$(ab$(cde))', expand the inner variable first, - // regardless whether there is actually a degenerate variable named 'ab$(cde'. - size_t innerVarStart = withVars.find("$(", varStart+2); - while ((innerVarStart != std::string::npos) && (innerVarStart > varStart) && (innerVarStart < varEnd)) { - varStart = innerVarStart; - innerVarStart = withVars.find("$(", varStart+2); - } - - std::string var(withVars.c_str(), varStart + 2, varEnd - varStart - 2); - std::string val = props.Get(var.c_str()); - - if (blankVars.contains(var.c_str())) { - val = ""; // treat blankVar as an empty string (e.g. to block self-reference) - } - - if (--maxExpands >= 0) { - maxExpands = ExpandAllInPlace(props, val, maxExpands, VarChain(var.c_str(), &blankVars)); - } - - withVars.erase(varStart, varEnd-varStart+1); - withVars.insert(varStart, val.c_str(), val.length()); - - varStart = withVars.find("$("); - } - - return maxExpands; -} - -int PropSetSimple::GetExpanded(const char *key, char *result) const { - std::string val = Get(key); - ExpandAllInPlace(*this, val, 100, VarChain(key)); - const int n = static_cast<int>(val.size()); - if (result) { - memcpy(result, val.c_str(), n+1); - } - return n; // Not including NUL -} - -int PropSetSimple::GetInt(const char *key, int defaultValue) const { - std::string val = Get(key); - ExpandAllInPlace(*this, val, 100, VarChain(key)); - if (!val.empty()) { - return atoi(val.c_str()); - } - return defaultValue; -} diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/PropSetSimple.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/PropSetSimple.h deleted file mode 100644 index 8ca741f03e0..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/PropSetSimple.h +++ /dev/null @@ -1,32 +0,0 @@ -// Scintilla source code edit control -/** @file PropSetSimple.h - ** A basic string to string map. - **/ -// Copyright 1998-2009 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef PROPSETSIMPLE_H -#define PROPSETSIMPLE_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -class PropSetSimple { - void *impl; - void Set(const char *keyVal); -public: - PropSetSimple(); - virtual ~PropSetSimple(); - void Set(const char *key, const char *val, int lenKey=-1, int lenVal=-1); - void SetMultiple(const char *); - const char *Get(const char *key) const; - int GetExpanded(const char *key, char *result) const; - int GetInt(const char *key, int defaultValue=0) const; -}; - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/SparseState.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/SparseState.h deleted file mode 100644 index e767d67101d..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/SparseState.h +++ /dev/null @@ -1,110 +0,0 @@ -// Scintilla source code edit control -/** @file SparseState.h - ** Hold lexer state that may change rarely. - ** This is often per-line state such as whether a particular type of section has been entered. - ** A state continues until it is changed. - **/ -// Copyright 2011 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef SPARSESTATE_H -#define SPARSESTATE_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -template <typename T> -class SparseState { - struct State { - int position; - T value; - State(int position_, T value_) : position(position_), value(value_) { - } - inline bool operator<(const State &other) const { - return position < other.position; - } - inline bool operator==(const State &other) const { - return (position == other.position) && (value == other.value); - } - }; - int positionFirst; - typedef std::vector<State> stateVector; - stateVector states; - - typename stateVector::iterator Find(int position) { - State searchValue(position, T()); - return std::lower_bound(states.begin(), states.end(), searchValue); - } - -public: - explicit SparseState(int positionFirst_=-1) { - positionFirst = positionFirst_; - } - void Set(int position, T value) { - Delete(position); - if (states.empty() || (value != states[states.size()-1].value)) { - states.push_back(State(position, value)); - } - } - T ValueAt(int position) { - if (states.empty()) - return T(); - if (position < states[0].position) - return T(); - typename stateVector::iterator low = Find(position); - if (low == states.end()) { - return states[states.size()-1].value; - } else { - if (low->position > position) { - --low; - } - return low->value; - } - } - bool Delete(int position) { - typename stateVector::iterator low = Find(position); - if (low != states.end()) { - states.erase(low, states.end()); - return true; - } - return false; - } - size_t size() const { - return states.size(); - } - - // Returns true if Merge caused a significant change - bool Merge(const SparseState<T> &other, int ignoreAfter) { - // Changes caused beyond ignoreAfter are not significant - Delete(ignoreAfter+1); - - bool different = true; - bool changed = false; - typename stateVector::iterator low = Find(other.positionFirst); - if (static_cast<size_t>(states.end() - low) == other.states.size()) { - // Same number in other as after positionFirst in this - different = !std::equal(low, states.end(), other.states.begin()); - } - if (different) { - if (low != states.end()) { - states.erase(low, states.end()); - changed = true; - } - typename stateVector::const_iterator startOther = other.states.begin(); - if (!states.empty() && !other.states.empty() && states.back().value == startOther->value) - ++startOther; - if (startOther != other.states.end()) { - states.insert(states.end(), startOther, other.states.end()); - changed = true; - } - } - return changed; - } -}; - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/StringCopy.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/StringCopy.h deleted file mode 100644 index 1812b4e35ec..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/StringCopy.h +++ /dev/null @@ -1,36 +0,0 @@ -// Scintilla source code edit control -/** @file StringCopy.h - ** Safe string copy function which always NUL terminates. - ** ELEMENTS macro for determining array sizes. - **/ -// Copyright 2013 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef STRINGCOPY_H -#define STRINGCOPY_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -// Safer version of string copy functions like strcpy, wcsncpy, etc. -// Instantiate over fixed length strings of both char and wchar_t. -// May truncate if source doesn't fit into dest with room for NUL. - -template <typename T, size_t count> -void StringCopy(T (&dest)[count], const T* source) { - for (size_t i=0; i<count; i++) { - dest[i] = source[i]; - if (!source[i]) - break; - } - dest[count-1] = 0; -} - -#define ELEMENTS(a) (sizeof(a) / sizeof(a[0])) - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/StyleContext.cxx b/3rdparty/bgfx/3rdparty/scintilla/lexlib/StyleContext.cxx deleted file mode 100644 index 9429c5ba879..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/StyleContext.cxx +++ /dev/null @@ -1,56 +0,0 @@ -// Scintilla source code edit control -/** @file StyleContext.cxx - ** Lexer infrastructure. - **/ -// Copyright 1998-2004 by Neil Hodgson <neilh@scintilla.org> -// This file is in the public domain. - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <assert.h> -#include <ctype.h> - -#include "ILexer.h" - -#include "LexAccessor.h" -#include "Accessor.h" -#include "StyleContext.h" - -#ifdef SCI_NAMESPACE -using namespace Scintilla; -#endif - -static void getRange(unsigned int start, - unsigned int end, - LexAccessor &styler, - char *s, - unsigned int len) { - unsigned int i = 0; - while ((i < end - start + 1) && (i < len-1)) { - s[i] = styler[start + i]; - i++; - } - s[i] = '\0'; -} - -void StyleContext::GetCurrent(char *s, unsigned int len) { - getRange(styler.GetStartSegment(), currentPos - 1, styler, s, len); -} - -static void getRangeLowered(unsigned int start, - unsigned int end, - LexAccessor &styler, - char *s, - unsigned int len) { - unsigned int i = 0; - while ((i < end - start + 1) && (i < len-1)) { - s[i] = static_cast<char>(tolower(styler[start + i])); - i++; - } - s[i] = '\0'; -} - -void StyleContext::GetCurrentLowered(char *s, unsigned int len) { - getRangeLowered(styler.GetStartSegment(), currentPos - 1, styler, s, len); -} diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/StyleContext.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/StyleContext.h deleted file mode 100644 index 837386cef92..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/StyleContext.h +++ /dev/null @@ -1,231 +0,0 @@ -// Scintilla source code edit control -/** @file StyleContext.h - ** Lexer infrastructure. - **/ -// Copyright 1998-2004 by Neil Hodgson <neilh@scintilla.org> -// This file is in the public domain. - -#ifndef STYLECONTEXT_H -#define STYLECONTEXT_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -static inline int MakeLowerCase(int ch) { - if (ch < 'A' || ch > 'Z') - return ch; - else - return ch - 'A' + 'a'; -} - -// All languages handled so far can treat all characters >= 0x80 as one class -// which just continues the current token or starts an identifier if in default. -// DBCS treated specially as the second character can be < 0x80 and hence -// syntactically significant. UTF-8 avoids this as all trail bytes are >= 0x80 -class StyleContext { - LexAccessor &styler; - IDocumentWithLineEnd *multiByteAccess; - unsigned int endPos; - unsigned int lengthDocument; - - // Used for optimizing GetRelativeCharacter - unsigned int posRelative; - unsigned int currentPosLastRelative; - int offsetRelative; - - StyleContext &operator=(const StyleContext &); - - void GetNextChar() { - if (multiByteAccess) { - chNext = multiByteAccess->GetCharacterAndWidth(currentPos+width, &widthNext); - } else { - chNext = static_cast<unsigned char>(styler.SafeGetCharAt(currentPos+width, 0)); - widthNext = 1; - } - // End of line determined from line end position, allowing CR, LF, - // CRLF and Unicode line ends as set by document. - if (currentLine < lineDocEnd) - atLineEnd = static_cast<int>(currentPos) >= (lineStartNext-1); - else // Last line - atLineEnd = static_cast<int>(currentPos) >= lineStartNext; - } - -public: - unsigned int currentPos; - int currentLine; - int lineDocEnd; - int lineStartNext; - bool atLineStart; - bool atLineEnd; - int state; - int chPrev; - int ch; - int width; - int chNext; - int widthNext; - - StyleContext(unsigned int startPos, unsigned int length, - int initStyle, LexAccessor &styler_, char chMask='\377') : - styler(styler_), - multiByteAccess(0), - endPos(startPos + length), - posRelative(0), - currentPosLastRelative(0x7FFFFFFF), - offsetRelative(0), - currentPos(startPos), - currentLine(-1), - lineStartNext(-1), - atLineEnd(false), - state(initStyle & chMask), // Mask off all bits which aren't in the chMask. - chPrev(0), - ch(0), - width(0), - chNext(0), - widthNext(1) { - if (styler.Encoding() != enc8bit) { - multiByteAccess = styler.MultiByteAccess(); - } - styler.StartAt(startPos /*, chMask*/); - styler.StartSegment(startPos); - currentLine = styler.GetLine(startPos); - lineStartNext = styler.LineStart(currentLine+1); - lengthDocument = static_cast<unsigned int>(styler.Length()); - if (endPos == lengthDocument) - endPos++; - lineDocEnd = styler.GetLine(lengthDocument); - atLineStart = static_cast<unsigned int>(styler.LineStart(currentLine)) == startPos; - - // Variable width is now 0 so GetNextChar gets the char at currentPos into chNext/widthNext - width = 0; - GetNextChar(); - ch = chNext; - width = widthNext; - - GetNextChar(); - } - void Complete() { - styler.ColourTo(currentPos - ((currentPos > lengthDocument) ? 2 : 1), state); - styler.Flush(); - } - bool More() const { - return currentPos < endPos; - } - void Forward() { - if (currentPos < endPos) { - atLineStart = atLineEnd; - if (atLineStart) { - currentLine++; - lineStartNext = styler.LineStart(currentLine+1); - } - chPrev = ch; - currentPos += width; - ch = chNext; - width = widthNext; - GetNextChar(); - } else { - atLineStart = false; - chPrev = ' '; - ch = ' '; - chNext = ' '; - atLineEnd = true; - } - } - void Forward(int nb) { - for (int i = 0; i < nb; i++) { - Forward(); - } - } - void ForwardBytes(int nb) { - size_t forwardPos = currentPos + nb; - while (forwardPos > currentPos) { - Forward(); - } - } - void ChangeState(int state_) { - state = state_; - } - void SetState(int state_) { - styler.ColourTo(currentPos - ((currentPos > lengthDocument) ? 2 : 1), state); - state = state_; - } - void ForwardSetState(int state_) { - Forward(); - styler.ColourTo(currentPos - ((currentPos > lengthDocument) ? 2 : 1), state); - state = state_; - } - int LengthCurrent() const { - return currentPos - styler.GetStartSegment(); - } - int GetRelative(int n) { - return static_cast<unsigned char>(styler.SafeGetCharAt(currentPos+n, 0)); - } - int GetRelativeCharacter(int n) { - if (n == 0) - return ch; - if (multiByteAccess) { - if ((currentPosLastRelative != currentPos) || - ((n > 0) && ((offsetRelative < 0) || (n < offsetRelative))) || - ((n < 0) && ((offsetRelative > 0) || (n > offsetRelative)))) { - posRelative = currentPos; - offsetRelative = 0; - } - int diffRelative = n - offsetRelative; - int posNew = multiByteAccess->GetRelativePosition(posRelative, diffRelative); - int chReturn = multiByteAccess->GetCharacterAndWidth(posNew, 0); - posRelative = posNew; - currentPosLastRelative = currentPos; - offsetRelative = n; - return chReturn; - } else { - // fast version for single byte encodings - return static_cast<unsigned char>(styler.SafeGetCharAt(currentPos + n, 0)); - } - } - bool Match(char ch0) const { - return ch == static_cast<unsigned char>(ch0); - } - bool Match(char ch0, char ch1) const { - return (ch == static_cast<unsigned char>(ch0)) && (chNext == static_cast<unsigned char>(ch1)); - } - bool Match(const char *s) { - if (ch != static_cast<unsigned char>(*s)) - return false; - s++; - if (!*s) - return true; - if (chNext != static_cast<unsigned char>(*s)) - return false; - s++; - for (int n=2; *s; n++) { - if (*s != styler.SafeGetCharAt(currentPos+n, 0)) - return false; - s++; - } - return true; - } - bool MatchIgnoreCase(const char *s) { - if (MakeLowerCase(ch) != static_cast<unsigned char>(*s)) - return false; - s++; - if (MakeLowerCase(chNext) != static_cast<unsigned char>(*s)) - return false; - s++; - for (int n=2; *s; n++) { - if (static_cast<unsigned char>(*s) != - MakeLowerCase(static_cast<unsigned char>(styler.SafeGetCharAt(currentPos+n, 0)))) - return false; - s++; - } - return true; - } - // Non-inline - void GetCurrent(char *s, unsigned int len); - void GetCurrentLowered(char *s, unsigned int len); -}; - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/SubStyles.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/SubStyles.h deleted file mode 100644 index f5b15e9cfa7..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/SubStyles.h +++ /dev/null @@ -1,178 +0,0 @@ -// Scintilla source code edit control -/** @file SubStyles.h - ** Manage substyles for a lexer. - **/ -// Copyright 2012 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef SUBSTYLES_H -#define SUBSTYLES_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -class WordClassifier { - int baseStyle; - int firstStyle; - int lenStyles; - std::map<std::string, int> wordToStyle; - -public: - - explicit WordClassifier(int baseStyle_) : baseStyle(baseStyle_), firstStyle(0), lenStyles(0) { - } - - void Allocate(int firstStyle_, int lenStyles_) { - firstStyle = firstStyle_; - lenStyles = lenStyles_; - wordToStyle.clear(); - } - - int Base() const { - return baseStyle; - } - - int Start() const { - return firstStyle; - } - - int Length() const { - return lenStyles; - } - - void Clear() { - firstStyle = 0; - lenStyles = 0; - wordToStyle.clear(); - } - - int ValueFor(const std::string &s) const { - std::map<std::string, int>::const_iterator it = wordToStyle.find(s); - if (it != wordToStyle.end()) - return it->second; - else - return -1; - } - - bool IncludesStyle(int style) const { - return (style >= firstStyle) && (style < (firstStyle + lenStyles)); - } - - void SetIdentifiers(int style, const char *identifiers) { - while (*identifiers) { - const char *cpSpace = identifiers; - while (*cpSpace && !(*cpSpace == ' ' || *cpSpace == '\t' || *cpSpace == '\r' || *cpSpace == '\n')) - cpSpace++; - if (cpSpace > identifiers) { - std::string word(identifiers, cpSpace - identifiers); - wordToStyle[word] = style; - } - identifiers = cpSpace; - if (*identifiers) - identifiers++; - } - } -}; - -class SubStyles { - int classifications; - const char *baseStyles; - int styleFirst; - int stylesAvailable; - int secondaryDistance; - int allocated; - std::vector<WordClassifier> classifiers; - - int BlockFromBaseStyle(int baseStyle) const { - for (int b=0; b < classifications; b++) { - if (baseStyle == baseStyles[b]) - return b; - } - return -1; - } - - int BlockFromStyle(int style) const { - int b = 0; - for (std::vector<WordClassifier>::const_iterator it=classifiers.begin(); it != classifiers.end(); ++it) { - if (it->IncludesStyle(style)) - return b; - b++; - } - return -1; - } - -public: - - SubStyles(const char *baseStyles_, int styleFirst_, int stylesAvailable_, int secondaryDistance_) : - classifications(0), - baseStyles(baseStyles_), - styleFirst(styleFirst_), - stylesAvailable(stylesAvailable_), - secondaryDistance(secondaryDistance_), - allocated(0) { - while (baseStyles[classifications]) { - classifiers.push_back(WordClassifier(baseStyles[classifications])); - classifications++; - } - } - - int Allocate(int styleBase, int numberStyles) { - int block = BlockFromBaseStyle(styleBase); - if (block >= 0) { - if ((allocated + numberStyles) > stylesAvailable) - return -1; - int startBlock = styleFirst + allocated; - allocated += numberStyles; - classifiers[block].Allocate(startBlock, numberStyles); - return startBlock; - } else { - return -1; - } - } - - int Start(int styleBase) { - int block = BlockFromBaseStyle(styleBase); - return (block >= 0) ? classifiers[block].Start() : -1; - } - - int Length(int styleBase) { - int block = BlockFromBaseStyle(styleBase); - return (block >= 0) ? classifiers[block].Length() : 0; - } - - int BaseStyle(int subStyle) const { - int block = BlockFromStyle(subStyle); - if (block >= 0) - return classifiers[block].Base(); - else - return subStyle; - } - - int DistanceToSecondaryStyles() const { - return secondaryDistance; - } - - void SetIdentifiers(int style, const char *identifiers) { - int block = BlockFromStyle(style); - if (block >= 0) - classifiers[block].SetIdentifiers(style, identifiers); - } - - void Free() { - allocated = 0; - for (std::vector<WordClassifier>::iterator it=classifiers.begin(); it != classifiers.end(); ++it) - it->Clear(); - } - - const WordClassifier &Classifier(int baseStyle) const { - const int block = BlockFromBaseStyle(baseStyle); - return classifiers[block >= 0 ? block : 0]; - } -}; - -#ifdef SCI_NAMESPACE -} -#endif - -#endif diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/WordList.cxx b/3rdparty/bgfx/3rdparty/scintilla/lexlib/WordList.cxx deleted file mode 100644 index be7fda50563..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/WordList.cxx +++ /dev/null @@ -1,242 +0,0 @@ -// Scintilla source code edit control -/** @file KeyWords.cxx - ** Colourise for particular languages. - **/ -// Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <stdarg.h> -#include <ctype.h> - -#include <algorithm> - -#include "StringCopy.h" -#include "WordList.h" - -#ifdef SCI_NAMESPACE -using namespace Scintilla; -#endif - -/** - * Creates an array that points into each word in the string and puts \0 terminators - * after each word. - */ -static char **ArrayFromWordList(char *wordlist, int *len, bool onlyLineEnds = false) { - int prev = '\n'; - int words = 0; - // For rapid determination of whether a character is a separator, build - // a look up table. - bool wordSeparator[256]; - for (int i=0; i<256; i++) { - wordSeparator[i] = false; - } - wordSeparator[static_cast<unsigned int>('\r')] = true; - wordSeparator[static_cast<unsigned int>('\n')] = true; - if (!onlyLineEnds) { - wordSeparator[static_cast<unsigned int>(' ')] = true; - wordSeparator[static_cast<unsigned int>('\t')] = true; - } - for (int j = 0; wordlist[j]; j++) { - int curr = static_cast<unsigned char>(wordlist[j]); - if (!wordSeparator[curr] && wordSeparator[prev]) - words++; - prev = curr; - } - char **keywords = new char *[words + 1]; - int wordsStore = 0; - const size_t slen = strlen(wordlist); - if (words) { - prev = '\0'; - for (size_t k = 0; k < slen; k++) { - if (!wordSeparator[static_cast<unsigned char>(wordlist[k])]) { - if (!prev) { - keywords[wordsStore] = &wordlist[k]; - wordsStore++; - } - } else { - wordlist[k] = '\0'; - } - prev = wordlist[k]; - } - } - keywords[wordsStore] = &wordlist[slen]; - *len = wordsStore; - return keywords; -} - -WordList::WordList(bool onlyLineEnds_) : - words(0), list(0), len(0), onlyLineEnds(onlyLineEnds_) { - // Prevent warnings by static analyzers about uninitialized starts. - starts[0] = -1; -} - -WordList::~WordList() { - Clear(); -} - -WordList::operator bool() const { - return len ? true : false; -} - -bool WordList::operator!=(const WordList &other) const { - if (len != other.len) - return true; - for (int i=0; i<len; i++) { - if (strcmp(words[i], other.words[i]) != 0) - return true; - } - return false; -} - -int WordList::Length() const { - return len; -} - -void WordList::Clear() { - if (words) { - delete []list; - delete []words; - } - words = 0; - list = 0; - len = 0; -} - -#ifdef _MSC_VER - -static bool cmpWords(const char *a, const char *b) { - return strcmp(a, b) < 0; -} - -#else - -static int cmpWords(const void *a, const void *b) { - return strcmp(*static_cast<const char * const *>(a), *static_cast<const char * const *>(b)); -} - -static void SortWordList(char **words, unsigned int len) { - qsort(reinterpret_cast<void *>(words), len, sizeof(*words), cmpWords); -} - -#endif - -void WordList::Set(const char *s) { - Clear(); - const size_t lenS = strlen(s) + 1; - list = new char[lenS]; - memcpy(list, s, lenS); - words = ArrayFromWordList(list, &len, onlyLineEnds); -#ifdef _MSC_VER - std::sort(words, words + len, cmpWords); -#else - SortWordList(words, len); -#endif - for (unsigned int k = 0; k < ELEMENTS(starts); k++) - starts[k] = -1; - for (int l = len - 1; l >= 0; l--) { - unsigned char indexChar = words[l][0]; - starts[indexChar] = l; - } -} - -/** Check whether a string is in the list. - * List elements are either exact matches or prefixes. - * Prefix elements start with '^' and match all strings that start with the rest of the element - * so '^GTK_' matches 'GTK_X', 'GTK_MAJOR_VERSION', and 'GTK_'. - */ -bool WordList::InList(const char *s) const { - if (0 == words) - return false; - unsigned char firstChar = s[0]; - int j = starts[firstChar]; - if (j >= 0) { - while (static_cast<unsigned char>(words[j][0]) == firstChar) { - if (s[1] == words[j][1]) { - const char *a = words[j] + 1; - const char *b = s + 1; - while (*a && *a == *b) { - a++; - b++; - } - if (!*a && !*b) - return true; - } - j++; - } - } - j = starts[static_cast<unsigned int>('^')]; - if (j >= 0) { - while (words[j][0] == '^') { - const char *a = words[j] + 1; - const char *b = s; - while (*a && *a == *b) { - a++; - b++; - } - if (!*a) - return true; - j++; - } - } - return false; -} - -/** similar to InList, but word s can be a substring of keyword. - * eg. the keyword define is defined as def~ine. This means the word must start - * with def to be a keyword, but also defi, defin and define are valid. - * The marker is ~ in this case. - */ -bool WordList::InListAbbreviated(const char *s, const char marker) const { - if (0 == words) - return false; - unsigned char firstChar = s[0]; - int j = starts[firstChar]; - if (j >= 0) { - while (static_cast<unsigned char>(words[j][0]) == firstChar) { - bool isSubword = false; - int start = 1; - if (words[j][1] == marker) { - isSubword = true; - start++; - } - if (s[1] == words[j][start]) { - const char *a = words[j] + start; - const char *b = s + 1; - while (*a && *a == *b) { - a++; - if (*a == marker) { - isSubword = true; - a++; - } - b++; - } - if ((!*a || isSubword) && !*b) - return true; - } - j++; - } - } - j = starts[static_cast<unsigned int>('^')]; - if (j >= 0) { - while (words[j][0] == '^') { - const char *a = words[j] + 1; - const char *b = s; - while (*a && *a == *b) { - a++; - b++; - } - if (!*a) - return true; - j++; - } - } - return false; -} - -const char *WordList::WordAt(int n) const { - return words[n]; -} - diff --git a/3rdparty/bgfx/3rdparty/scintilla/lexlib/WordList.h b/3rdparty/bgfx/3rdparty/scintilla/lexlib/WordList.h deleted file mode 100644 index 382be2812be..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/lexlib/WordList.h +++ /dev/null @@ -1,41 +0,0 @@ -// Scintilla source code edit control -/** @file WordList.h - ** Hold a list of words. - **/ -// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef WORDLIST_H -#define WORDLIST_H - -#ifdef SCI_NAMESPACE -namespace Scintilla { -#endif - -/** - */ -class WordList { - // Each word contains at least one character - a empty word acts as sentinel at the end. - char **words; - char *list; - int len; - bool onlyLineEnds; ///< Delimited by any white space or only line ends - int starts[256]; -public: - explicit WordList(bool onlyLineEnds_ = false); - ~WordList(); - operator bool() const; - bool operator!=(const WordList &other) const; - int Length() const; - void Clear(); - void Set(const char *s); - bool InList(const char *s) const; - bool InListAbbreviated(const char *s, const char marker) const; - const char *WordAt(int n) const; -}; - -#ifdef SCI_NAMESPACE -} -#endif - -#endif |