Skip to content

Commit

Permalink
Fir for UTF8 compilation when scanner is a global var
Browse files Browse the repository at this point in the history
In " Encoding issues #36" UtfRanges::First isn't yet initialized when scanner is compiled as a global variable
  • Loading branch information
davenger committed Mar 24, 2016
1 parent b4fe1c1 commit 0b4ea3a
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions pire/encoding.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,13 @@ namespace {
namespace UtfRanges {

static const size_t MaxLen = 4;
ypair<size_t, size_t> First[MaxLen] = {
ymake_pair(0x00, 0x80),
ymake_pair(0xC0, 0xE0),
ymake_pair(0xE0, 0xF0),
ymake_pair(0xF0, 0xF8)
static const size_t First[MaxLen][2] = {
{0x00, 0x80},
{0xC0, 0xE0},
{0xE0, 0xF0},
{0xF0, 0xF8}
};
ypair<size_t, size_t> Next(0x80, 0xC0);
static const size_t Next[2] = {0x80, 0xC0};
}


Expand Down Expand Up @@ -100,10 +100,10 @@ namespace {
{
size_t last = fsm.Resize(fsm.Size() + UtfRanges::MaxLen);
for (size_t i = 0; i < UtfRanges::MaxLen; ++i)
for (size_t letter = UtfRanges::First[i].first; letter < UtfRanges::First[i].second; ++letter)
for (size_t letter = UtfRanges::First[i][0]; letter < UtfRanges::First[i][1]; ++letter)
fsm.ConnectFinal(fsm.Size() - i - 1, letter);
for (size_t i = 0; i < UtfRanges::MaxLen - 1; ++i)
for (size_t letter = UtfRanges::Next.first; letter < UtfRanges::Next.second; ++letter)
for (size_t letter = UtfRanges::Next[0]; letter < UtfRanges::Next[1]; ++letter)
fsm.Connect(last + i, last + i + 1, letter);
fsm.ClearFinal();
fsm.SetFinal(fsm.Size() - 1, true);
Expand Down

0 comments on commit 0b4ea3a

Please sign in to comment.