Package: flex
Version: 2.5.35-3
Severity: important

2.5.35-3 fails to process input that worked in 2.5.35-2.
This is causing another FTBFS issue in apertium, #504028.

Attached is the input file generated during apertium's build.
With flex_2.5.35-2 this will succeed (even on ia64), but flex_2.5.35-3
will fail on both the archs I tested (i386 and ia64).

$ /usr/bin/flex -Cfer -t >apertium_deshtml.cc < input2.txt 
/usr/bin/m4:stdin:9: ERROR: end of file in string

-- 
dann frazier


%{

#include <cstdlib>
#include <iostream>
#include <map>
#include <vector>
#include <regex.h>
#include <string>
#include <lttoolbox/lt_locale.h>
#include <lttoolbox/ltstr.h>

using namespace std;

wstring buffer;
string symbuf = "";
bool isDot, hasWrite_dot, hasWrite_white;
FILE *formatfile;
string last;
int current;
long int offset;


vector<long int> offsets;
vector<wstring> tags;
vector<int> orders;

regex_t escape_chars;
regex_t names_regexp;

void bufferAppend(wstring &buf, string const &str)
{
  symbuf.append(str);

  for(size_t i = 0, limit = symbuf.size(); i < limit;)
  {
    wchar_t symbol;
    int gap = mbtowc(&symbol, symbuf.c_str() + i, MB_CUR_MAX);
    if(gap == -1)
    {
      if(i + MB_CUR_MAX < limit)
      {
        buf += L'?';
        gap = 1;
      }
      else
      { 
        symbuf = symbuf.substr(i);
        return;
      }
    }
    else 
    { 
      buf += symbol;
    }

    i += gap;
  }

  symbuf = "";
  return;
}


void init_escape()
{  
  if(regcomp(&escape_chars, "[EMAIL PROTECTED]/]", REG_EXTENDED))
  {
    cerr << "ERROR: Illegal regular expression for escape characters" << endl;
    exit(EXIT_FAILURE);
  }
}

void init_tagNames()
{  
  if(regcomp(&names_regexp, "[a-zA-Z]+", REG_EXTENDED))
  {
    cerr << "ERROR: Illegal regular expression for tag-names" << endl;
    exit(EXIT_FAILURE);
  }
}

string backslash(string const &str)
{
  string new_str = "";

  for(unsigned int i = 0; i < str.size(); i++)
  {
    if(str[i] == '\\')
    {
      new_str += str[i];
    }
    new_str += str[i];
  }

  return new_str;
}


wstring escape(string const &str)
{
  regmatch_t pmatch;
  
  char const *mystring = str.c_str();
  int base = 0;
  wstring result = L"";
  
  while(!regexec(&escape_chars, mystring + base, 1, &pmatch, 0))
  {
    bufferAppend(result, str.substr(base, pmatch.rm_so));
    result += L'\\';
    wchar_t micaracter;
    int pos = mbtowc(&micaracter, str.c_str() + base + pmatch.rm_so, 
MB_CUR_MAX);
    if(pos == -1)
    {
      wcerr << L"Uno" << endl;
      wcerr << L"Encoding error." << endl;
      exit(EXIT_FAILURE);      
    }
    
    result += micaracter;
    base += pmatch.rm_eo;
  }

  bufferAppend(result, str.substr(base));
  return result;
}

wstring escape(wstring const &str)
{
  string dest = "";
  
  for(size_t i = 0, limit = str.size(); i < limit; i++)
  {
    char symbol[MB_CUR_MAX+1];
    int pos = wctomb(symbol, str[i]);
    if(pos == -1)
    {
      symbol[0]='?';
      pos = 1;
    }
    symbol[pos] = 0;
    dest.append(symbol);
  }
  return escape(dest);
}

string get_tagName(string tag){
  regmatch_t pmatch;
  
  char const *mystring = tag.c_str();
  string result = "";
  if(!regexec(&names_regexp, mystring, 1, &pmatch, 0))
  {
    result=tag.substr(pmatch.rm_so, pmatch.rm_eo - pmatch.rm_so);
    return result;
  }

  return "";
}


map<string, wstring, Ltstr> S1_substitution;

void S1_init()
{
  S1_substitution["&Agrave;"] = L"??";
  S1_substitution["&#192;"] = L"??";
  S1_substitution["&#xC0;"] = L"??";
  S1_substitution["&#xc0;"] = L"??";
  S1_substitution["&Aacute;"] = L"??";
  S1_substitution["&#193;"] = L"??";
  S1_substitution["&#xC1;"] = L"??";
  S1_substitution["&#xc1;"] = L"??";
  S1_substitution["&Acirc;"] = L"??";
  S1_substitution["&#194;"] = L"??";
  S1_substitution["&#xC2;"] = L"??";
  S1_substitution["&#xc2;"] = L"??";
  S1_substitution["&Atilde;"] = L"??";
  S1_substitution["&#195;"] = L"??";
  S1_substitution["&#xC3;"] = L"??";
  S1_substitution["&#xc3;"] = L"??";
  S1_substitution["&Auml;"] = L"??";
  S1_substitution["&#196;"] = L"??";
  S1_substitution["&#xC4;"] = L"??";
  S1_substitution["&#xc4;"] = L"??";
  S1_substitution["&Aring;"] = L"??";
  S1_substitution["&#197;"] = L"??";
  S1_substitution["&#xC5;"] = L"??";
  S1_substitution["&#xc5;"] = L"??";
  S1_substitution["&AElig;"] = L"??";
  S1_substitution["&#198;"] = L"??";
  S1_substitution["&#xC6;"] = L"??";
  S1_substitution["&#xc6;"] = L"??";
  S1_substitution["&Ccedil;"] = L"??";
  S1_substitution["&#199;"] = L"??";
  S1_substitution["&#xC7;"] = L"??";
  S1_substitution["&#xc7;"] = L"??";
  S1_substitution["&Egrave;"] = L"??";
  S1_substitution["&#200;"] = L"??";
  S1_substitution["&#xC8;"] = L"??";
  S1_substitution["&#xc8;"] = L"??";
  S1_substitution["&Eacute;"] = L"??";
  S1_substitution["&#201;"] = L"??";
  S1_substitution["&#xC9;"] = L"??";
  S1_substitution["&#xc9;"] = L"??";
  S1_substitution["&Ecirc;"] = L"??";
  S1_substitution["&#202;"] = L"??";
  S1_substitution["&#xCA;"] = L"??";
  S1_substitution["&#xca;"] = L"??";
  S1_substitution["&Euml;"] = L"??";
  S1_substitution["&#203;"] = L"??";
  S1_substitution["&#xCB;"] = L"??";
  S1_substitution["&#xcb;"] = L"??";
  S1_substitution["&Igrave;"] = L"??";
  S1_substitution["&#204;"] = L"??";
  S1_substitution["&#xCC;"] = L"??";
  S1_substitution["&#xcc;"] = L"??";
  S1_substitution["&Iacute;"] = L"??";
  S1_substitution["&#205;"] = L"??";
  S1_substitution["&#xCD;"] = L"??";
  S1_substitution["&#xcd;"] = L"??";
  S1_substitution["&Icirc;"] = L"??";
  S1_substitution["&#206;"] = L"??";
  S1_substitution["&#xCE;"] = L"??";
  S1_substitution["&#xce;"] = L"??";
  S1_substitution["&Iuml;"] = L"??";
  S1_substitution["&#207;"] = L"??";
  S1_substitution["&#xCF;"] = L"??";
  S1_substitution["&#xcf;"] = L"??";
  S1_substitution["&ETH;"] = L"??";
  S1_substitution["&#208;"] = L"??";
  S1_substitution["&#xD0;"] = L"??";
  S1_substitution["&#xd0;"] = L"??";
  S1_substitution["&Ntilde;"] = L"??";
  S1_substitution["&#209;"] = L"??";
  S1_substitution["&#xD1;"] = L"??";
  S1_substitution["&#xd1;"] = L"??";
  S1_substitution["&Ograve;"] = L"??";
  S1_substitution["&#210;"] = L"??";
  S1_substitution["&#xD2;"] = L"??";
  S1_substitution["&#xd2;"] = L"??";
  S1_substitution["&Oacute;"] = L"??";
  S1_substitution["&#211;"] = L"??";
  S1_substitution["&#xD3;"] = L"??";
  S1_substitution["&#xd3;"] = L"??";
  S1_substitution["&Ocirc;"] = L"??";
  S1_substitution["&#212;"] = L"??";
  S1_substitution["&#xD4;"] = L"??";
  S1_substitution["&#xd4;"] = L"??";
  S1_substitution["&Otilde;"] = L"??";
  S1_substitution["&#213;"] = L"??";
  S1_substitution["&#xD5;"] = L"??";
  S1_substitution["&#xd5;"] = L"??";
  S1_substitution["&Ouml;"] = L"??";
  S1_substitution["&#214;"] = L"??";
  S1_substitution["&#xD6;"] = L"??";
  S1_substitution["&#xd6;"] = L"??";
  S1_substitution["&Oslash;"] = L"??";
  S1_substitution["&#216;"] = L"??";
  S1_substitution["&#xD8;"] = L"??";
  S1_substitution["&#xd8;"] = L"??";
  S1_substitution["&Ugrave;"] = L"??";
  S1_substitution["&#217;"] = L"??";
  S1_substitution["&#xD9;"] = L"??";
  S1_substitution["&#xd9;"] = L"??";
  S1_substitution["&Uacute;"] = L"??";
  S1_substitution["&#218;"] = L"??";
  S1_substitution["&#xDA;"] = L"??";
  S1_substitution["&#xda;"] = L"??";
  S1_substitution["&Ucirc;"] = L"??";
  S1_substitution["&#219;"] = L"??";
  S1_substitution["&#xDB;"] = L"??";
  S1_substitution["&#xdb;"] = L"??";
  S1_substitution["&Uuml;"] = L"??";
  S1_substitution["&#220;"] = L"??";
  S1_substitution["&#xDC;"] = L"??";
  S1_substitution["&#xdc;"] = L"??";
  S1_substitution["&Yacute;"] = L"??";
  S1_substitution["&#221;"] = L"??";
  S1_substitution["&#xDD;"] = L"??";
  S1_substitution["&#xdd;"] = L"??";
  S1_substitution["&THORN;"] = L"??";
  S1_substitution["&#222;"] = L"??";
  S1_substitution["&#xDE;"] = L"??";
  S1_substitution["&#xde;"] = L"??";
  S1_substitution["&szlig;"] = L"??";
  S1_substitution["&#223;"] = L"??";
  S1_substitution["&#xDF;"] = L"??";
  S1_substitution["&#xdf;"] = L"??";
  S1_substitution["&agrave;"] = L"??";
  S1_substitution["&#224;"] = L"??";
  S1_substitution["&#xE0;"] = L"??";
  S1_substitution["&#xe0;"] = L"??";
  S1_substitution["&aacute;"] = L"??";
  S1_substitution["&#225;"] = L"??";
  S1_substitution["&#xE1;"] = L"??";
  S1_substitution["&#xe1;"] = L"??";
  S1_substitution["&acirc;"] = L"??";
  S1_substitution["&#226;"] = L"??";
  S1_substitution["&#xE2;"] = L"??";
  S1_substitution["&#xe2;"] = L"??";
  S1_substitution["&atilde;"] = L"??";
  S1_substitution["&#227;"] = L"??";
  S1_substitution["&#xE3;"] = L"??";
  S1_substitution["&#xe3;"] = L"??";
  S1_substitution["&auml;"] = L"??";
  S1_substitution["&#228;"] = L"??";
  S1_substitution["&#xE4;"] = L"??";
  S1_substitution["&#xe4;"] = L"??";
  S1_substitution["&aring;"] = L"??";
  S1_substitution["&#229;"] = L"??";
  S1_substitution["&#xE5;"] = L"??";
  S1_substitution["&#xe5;"] = L"??";
  S1_substitution["&aelig;"] = L"??";
  S1_substitution["&#230;"] = L"??";
  S1_substitution["&#xE6;"] = L"??";
  S1_substitution["&#xe6;"] = L"??";
  S1_substitution["&ccedil;"] = L"??";
  S1_substitution["&#231;"] = L"??";
  S1_substitution["&#xE7;"] = L"??";
  S1_substitution["&#xe7;"] = L"??";
  S1_substitution["&egrave;"] = L"??";
  S1_substitution["&#232;"] = L"??";
  S1_substitution["&#xE8;"] = L"??";
  S1_substitution["&#xe8;"] = L"??";
  S1_substitution["&eacute;"] = L"??";
  S1_substitution["&#233;"] = L"??";
  S1_substitution["&#xE9;"] = L"??";
  S1_substitution["&#xe9;"] = L"??";
  S1_substitution["&ecirc;"] = L"??";
  S1_substitution["&#234;"] = L"??";
  S1_substitution["&#xEA;"] = L"??";
  S1_substitution["&#xea;"] = L"??";
  S1_substitution["&euml;"] = L"??";
  S1_substitution["&#235;"] = L"??";
  S1_substitution["&#xEB;"] = L"??";
  S1_substitution["&#xeb;"] = L"??";
  S1_substitution["&igrave;"] = L"??";
  S1_substitution["&#236;"] = L"??";
  S1_substitution["&#xEC;"] = L"??";
  S1_substitution["&#xec;"] = L"??";
  S1_substitution["&iacute;"] = L"??";
  S1_substitution["&#237;"] = L"??";
  S1_substitution["&#xED;"] = L"??";
  S1_substitution["&#xed;"] = L"??";
  S1_substitution["&icirc;"] = L"??";
  S1_substitution["&#238;"] = L"??";
  S1_substitution["&#xEE;"] = L"??";
  S1_substitution["&#xee;"] = L"??";
  S1_substitution["&iuml;"] = L"??";
  S1_substitution["&#239;"] = L"??";
  S1_substitution["&#xEF;"] = L"??";
  S1_substitution["&#xef;"] = L"??";
  S1_substitution["&eth;"] = L"??";
  S1_substitution["&#240;"] = L"??";
  S1_substitution["&#xF0;"] = L"??";
  S1_substitution["&#xf0;"] = L"??";
  S1_substitution["&ntilde;"] = L"??";
  S1_substitution["&#241;"] = L"??";
  S1_substitution["&#xF1;"] = L"??";
  S1_substitution["&#xf1;"] = L"??";
  S1_substitution["&ograve;"] = L"??";
  S1_substitution["&#242;"] = L"??";
  S1_substitution["&#xF2;"] = L"??";
  S1_substitution["&#xf2;"] = L"??";
  S1_substitution["&oacute;"] = L"??";
  S1_substitution["&#243;"] = L"??";
  S1_substitution["&#xF3;"] = L"??";
  S1_substitution["&#xf3;"] = L"??";
  S1_substitution["&ocirc;"] = L"??";
  S1_substitution["&#244;"] = L"??";
  S1_substitution["&#xF4;"] = L"??";
  S1_substitution["&#xf4;"] = L"??";
  S1_substitution["&otilde;"] = L"??";
  S1_substitution["&#245;"] = L"??";
  S1_substitution["&#xF5;"] = L"??";
  S1_substitution["&#xf5;"] = L"??";
  S1_substitution["&ouml;"] = L"??";
  S1_substitution["&#246;"] = L"??";
  S1_substitution["&#xF6;"] = L"??";
  S1_substitution["&#xf6;"] = L"??";
  S1_substitution["&oslash;"] = L"??";
  S1_substitution["&#248;"] = L"??";
  S1_substitution["&#xF8;"] = L"??";
  S1_substitution["&#xf8;"] = L"??";
  S1_substitution["&ugrave;"] = L"??";
  S1_substitution["&#249;"] = L"??";
  S1_substitution["&#xF9;"] = L"??";
  S1_substitution["&#xf9;"] = L"??";
  S1_substitution["&uacute;"] = L"??";
  S1_substitution["&#250;"] = L"??";
  S1_substitution["&#xFA;"] = L"??";
  S1_substitution["&#xfa;"] = L"??";
  S1_substitution["&ucirc;"] = L"??";
  S1_substitution["&#251;"] = L"??";
  S1_substitution["&#xFB;"] = L"??";
  S1_substitution["&#xfb;"] = L"??";
  S1_substitution["&uuml;"] = L"??";
  S1_substitution["&#252;"] = L"??";
  S1_substitution["&#xFC;"] = L"??";
  S1_substitution["&#xfc;"] = L"??";
  S1_substitution["&yacute;"] = L"??";
  S1_substitution["&#253;"] = L"??";
  S1_substitution["&#xFD;"] = L"??";
  S1_substitution["&#xfd;"] = L"??";
  S1_substitution["&thorn;"] = L"??";
  S1_substitution["&#254;"] = L"??";
  S1_substitution["&#xFE;"] = L"??";
  S1_substitution["&#xfe;"] = L"??";
  S1_substitution["&yuml;"] = L"??";
  S1_substitution["&#255;"] = L"??";
  S1_substitution["&#xFF;"] = L"??";
  S1_substitution["&#xff;"] = L"??";
  S1_substitution["&middot;"] = L"??";
  S1_substitution["&#183;"] = L"??";
  S1_substitution["&#xB7;"] = L"??";
  S1_substitution["&#xb7;"] = L"??";
  S1_substitution["&rsquo;"] = L"'";
}


void printBuffer()
{
  if(isDot)
  {
    fputws_unlocked(L".[]", yyout);
    isDot = false;
  }
  if(buffer.size() > 8192)
  {
    string filename = tmpnam(NULL);
    FILE *largeblock = fopen(filename.c_str(), "w");
    fputws_unlocked(buffer.c_str(), largeblock);
    fclose(largeblock);
    fputwc_unlocked(L'[', yyout);
    fputwc_unlocked(L'@', yyout);
    wchar_t cad[filename.size()];
    size_t pos = mbstowcs(cad, filename.c_str(), filename.size());
    if(pos == (size_t) -1)
    {
      wcerr << L"Tres" << endl;

      wcerr << L"Encoding error." << endl;
      exit(EXIT_FAILURE);
    }
    cad[pos] = 0;
    fputws_unlocked(cad, yyout);
    fputwc_unlocked(L']', yyout);
  }
  else if(buffer.size() > 1)
  {
    fputwc_unlocked(L'[', yyout);
    wstring const tmp = escape(buffer);
    if(tmp[0] == L'@')
    {
      fputwc_unlocked(L'\\', yyout);
    }
    fputws_unlocked(tmp.c_str(), yyout);
    fputwc_unlocked(L']', yyout);
  }
  else if(buffer.size() == 1 && buffer[0] != L' ')
  {
    fputwc_unlocked(L'[', yyout);
    wstring const tmp = escape(buffer);
    if(tmp[0] == L'@')
    {
      fputwc_unlocked(L'\\', yyout);
    }
    fputws_unlocked(tmp.c_str(), yyout);

    fputwc_unlocked(L']', yyout);
  }     
  else
  {
    fputws_unlocked(buffer.c_str(), yyout);
  }

  buffer = L"";
}
  
%}

%x C1 C2 C3
%option nounput
%option noyywrap
%option caseless
%option stack

%%


<C1>{

        "-->"   {
  last = "buffer";
  bufferAppend(buffer, yytext);
  yy_pop_state();
}

        \n|.    {
  last = "buffer";
  bufferAppend(buffer, yytext);
}

}

<C2>{

        "<!--"  {
  bufferAppend(buffer, yytext);
  yy_push_state(C1);
}
        "</script"(" "[^>]*)?">"        {
  last = "buffer";
  bufferAppend(buffer, yytext);
  yy_pop_state();
}

        \n|.    {
  last = "buffer";
  bufferAppend(buffer, yytext);
}

}

<C3>{

        "<!--"  {
  bufferAppend(buffer, yytext);
  yy_push_state(C1);
}
        "</style"(" "[^>]*)?">" {
  last = "buffer";
  bufferAppend(buffer, yytext);
  yy_pop_state();
}

        \n|.    {
  last = "buffer";
  bufferAppend(buffer, yytext);
}

}
"<!--"  {
  bufferAppend(buffer, yytext);
  yy_push_state(C1);
}
"<script"(" "[^>]*)?">" {
  bufferAppend(buffer, yytext);
  yy_push_state(C2);
}
"<style"(" "[^>]*)?">"  {
  bufferAppend(buffer, yytext);
  yy_push_state(C3);
}
"<br"(" "[^>]*)?">"|"<hr"(" "[^>]*)?">"|"<p"(" "[^>]*)?">"      {
  isDot = true;
  bufferAppend(buffer, yytext);
}
"<li"(" "[^>]*)?">"|"<ul"(" "[^>]*)?">"|"<ol"(" "[^>]*)?">"     {
  isDot = true;
  bufferAppend(buffer, yytext);
}
"<tr"(" "[^>]*)?">"|"<td"(" "[^>]*)?">"|"<th"(" "[^>]*)?">"     {
  isDot = true;
  bufferAppend(buffer, yytext);
}
"</br"(" "[^>]*)?">"|"</hr"(" "[^>]*)?">"|"</p"(" "[^>]*)?">"   {
  isDot = true;
  bufferAppend(buffer, yytext);
}
"</li"(" "[^>]*)?">"|"</ul"(" "[^>]*)?">"|"</ol"(" "[^>]*)?">"  {
  isDot = true;
  bufferAppend(buffer, yytext);
}
"</tr"(" "[^>]*)?">"|"</td"(" "[^>]*)?">"|"</th"(" "[^>]*)?">"  {
  isDot = true;
  bufferAppend(buffer, yytext);
}
"<title"(" "[^>]*)?">"|"<div"(" "[^>]*)?">"|"<option"(" "[^>]*)?">"|"<h"[1-6](" 
"[^>]*)?">"     {
  isDot = true;
  bufferAppend(buffer, yytext);
}
"</title"(" "[^>]*)?">"|"</div"(" "[^>]*)?">"|"</option"(" 
"[^>]*)?">"|"</h"[1-6](" "[^>]*)?">" {
  isDot = true;
  bufferAppend(buffer, yytext);
}
"<"("img"|"link")(" "[^>]*)?">" {
  bufferAppend(buffer, yytext);
}
("<!"|"<?")[a-zA-Z][^>]*">"     {
  bufferAppend(buffer, yytext);
}
"<"[a-zA-Z][^>]*">"     {
  bufferAppend(buffer, yytext);
}
"</"[a-zA-Z][^>]*">"    {
  bufferAppend(buffer, yytext);
}

"&"([a-zA-Z]+|"#x"[0-9a-fA-F]{1,4}|"#"[0-9]{1,8});      {
  if(S1_substitution.find(yytext) != S1_substitution.end())
  {
    printBuffer();
    fputws_unlocked(S1_substitution[yytext].c_str(), yyout);
    offset+=S1_substitution[yytext].size();
    hasWrite_dot = hasWrite_white = true;
  }
  else
  {
    last="buffer";
    bufferAppend(buffer, yytext);
  }
}
[ \n\t\r$*<>]   {
  if (last == "open_tag") 
    bufferAppend(tags.back(), yytext);
  else
    bufferAppend(buffer, yytext);
    
}

[EMAIL PROTECTED]/]     {
  printBuffer();
  fputwc_unlocked(L'\\', yyout);
  offset++;
  wchar_t symbol;
  int pos = mbtowc(&symbol, yytext, MB_CUR_MAX);
  if(pos == -1)
  {
      wcerr << L"Cuatro" << endl;

    wcerr << L"Encoding error." << endl;
    exit(EXIT_FAILURE);
  }

  fputwc_unlocked(symbol, yyout);
  offset++;
  hasWrite_dot = hasWrite_white = true;

}

.       {
  printBuffer();
  symbuf += yytext;
  wchar_t symbol;
  int pos = mbtowc(&symbol, symbuf.c_str(), MB_CUR_MAX);
  if(pos == -1)
  {
    if(symbuf.size() > MB_CUR_MAX)
    {
      // unknown character
      symbuf = "";
      fputwc_unlocked(L'?', yyout);
      offset++;
      hasWrite_dot = hasWrite_white = true;
    }
  }
  else
  {
    symbuf = "";
    fputwc_unlocked(symbol, yyout);
    offset++;
    hasWrite_dot = hasWrite_white = true;
  }
}

<<EOF>> {
  isDot = true;
  printBuffer();
  return 0;
}
%%



void usage(string const &progname)
{

  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
  
  cerr << "html format processor " << endl;
  exit(EXIT_SUCCESS);  
}

int main(int argc, char *argv[])
{
  LtLocale::tryToSetLocale();

 if(argc > 3)
  {
    usage(argv[0]);
  }
 
  switch(argc)
  {
    case 3:
      yyout = fopen(argv[2], "w");
      if(!yyout)
      {
        usage(argv[0]);
      }
    case 2:
      yyin = fopen(argv[1], "r");
      if(!yyin)
      {
        usage(argv[0]);
      }
      break;
    default:
      break;
  }
  
  // prevent warning message
  yy_push_state(1);
  yy_top_state();
  yy_pop_state();

  S1_init();


  last = "";
  buffer = L"";
  isDot = hasWrite_dot = hasWrite_white = false;
  current=0;
  offset = 0;
  init_escape();
  init_tagNames();
  yylex();


  fclose(yyin);
  fclose(yyout);
}

Reply via email to