Кодировка в Coco /R
От: SpyderX  
Дата: 04.05.08 18:59
Оценка:
Всем здрасти!
У меня такакя проблема:
я использую Coco /R для генерации лексического и синтаксического анализатора.
Я изменил файлы Parser.frame и Scanner.frame. Когда пишу в них что-то на русском, то после генерации в выходных файлах (Parser.cs и Scanner.cs) вместо русского текста кракозябры.
Помогите пожалуйста, какую надо поставить кодировку или как решить мою проблему?
Re: Кодировка в Coco /R
От: Аноним  
Дата: 04.05.08 19:07
Оценка:
Здравствуйте, SpyderX, Вы писали:

SX>Помогите пожалуйста, какую надо поставить кодировку или как решить мою проблему?

попробуйте перевести эти файлы в UTF8
Re[2]: Кодировка в Coco /R
От: SpyderX  
Дата: 04.05.08 19:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, SpyderX, Вы писали:


SX>>Помогите пожалуйста, какую надо поставить кодировку или как решить мою проблему?

А>попробуйте перевести эти файлы в UTF8

Я это уже пробовал делать, но все равно не помогает(
Re[3]: Кодировка в Coco /R
От: Аноним  
Дата: 04.05.08 19:38
Оценка:
Здравствуйте, SpyderX, Вы писали:

SX>Я это уже пробовал делать, но все равно не помогает(

а Unicode?
Re[4]: Кодировка в Coco /R
От: Аноним  
Дата: 04.05.08 20:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>а Unicode?

тоже не работает, остаётся только коку менять
Re[5]: Кодировка в Coco /R
От: Аноним  
Дата: 04.05.08 20:20
Оценка:
Здравствуйте, Аноним, Вы писали:

А>тоже не работает, остаётся только коку менять

вот на скорую руку переделанные куски


        //FileStream fram;  // parser frame file
        StreamReader fram;  // parser frame file
.............
        void CopyFramePart(string stop)
        {
.................
            //int ch = fram.ReadByte();
            char[] ch = new char[1];
            fram.ReadBlock(ch, 0, 1);
            //while (ch != EOF)
            //    if (ch == startCh)
            while (ch[0] != EOF)
                if (ch[0] == startCh)
............................
                        //ch = fram.ReadByte();
                        fram.ReadBlock(ch, 0, 1);
.............................
                    //} while (ch == stop[i]);
                    } while (ch[0] == stop[i]);
...............................
                    //gen.Write((char)ch);
                    //ch = fram.ReadByte();
                    gen.Write(ch[0]);
                    fram.ReadBlock(ch, 0, 1);
.............................................
        public void WriteParser()
        {
.................
                //fram = new FileStream(fr, FileMode.Open, FileAccess.Read, FileShare.Read);
                fram = new StreamReader(new FileStream(fr, FileMode.Open, FileAccess.Read, FileShare.Read), Encoding.GetEncoding(1251));
Re[6]: Кодировка в Coco /R
От: SpyderX  
Дата: 19.05.08 15:27
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>тоже не работает, остаётся только коку менять

А>вот на скорую руку переделанные куски


А>
А>        //FileStream fram;  // parser frame file
А>        StreamReader fram;  // parser frame file
А>.............
А>        void CopyFramePart(string stop)
А>        {
А>.................
А>            //int ch = fram.ReadByte();
А>            char[] ch = new char[1];
А>            fram.ReadBlock(ch, 0, 1);
А>            //while (ch != EOF)
А>            //    if (ch == startCh)
А>            while (ch[0] != EOF)
А>                if (ch[0] == startCh)
А>............................
А>                        //ch = fram.ReadByte();
А>                        fram.ReadBlock(ch, 0, 1);
А>.............................
А>                    //} while (ch == stop[i]);
А>                    } while (ch[0] == stop[i]);
А>...............................
А>                    //gen.Write((char)ch);
А>                    //ch = fram.ReadByte();
А>                    gen.Write(ch[0]);
А>                    fram.ReadBlock(ch, 0, 1);
А>.............................................
А>        public void WriteParser()
А>        {
А>.................
А>                //fram = new FileStream(fr, FileMode.Open, FileAccess.Read, FileShare.Read);
А>                fram = new StreamReader(new FileStream(fr, FileMode.Open, FileAccess.Read, FileShare.Read), Encoding.GetEncoding(1251));

А>


А это исходный код Coco /R? Насколько мне известно? код Coco /R закрыт
Re[7]: Кодировка в Coco /R
От: Аноним  
Дата: 19.05.08 18:01
Оценка:
SX>А это исходный код Coco /R? Насколько мне известно? код Coco /R закрыт
http://www.ssw.uni-linz.ac.at/coco/
в разделе Coco/R for C# ссылки, одна из них:
CocoSourcesCS.zip the sources (put them in a subdirectory and run build.bat)
Re[8]: Кодировка в Coco /R
От: SpyderX  
Дата: 20.05.08 03:10
Оценка:
Здравствуйте, Аноним, Вы писали:

SX>>А это исходный код Coco /R? Насколько мне известно? код Coco /R закрыт

А>http://www.ssw.uni-linz.ac.at/coco/
А>в разделе Coco/R for C# ссылки, одна из них:
А>CocoSourcesCS.zip the sources (put them in a subdirectory and run build.bat)

Что-то я проглядел. Спасибо.. сейчас поковыряюсь
Re[8]: Кодировка в Coco /R
От: SpyderX  
Дата: 20.05.08 04:51
Оценка:
Здравствуйте, Аноним, Вы писали:

SX>>А это исходный код Coco /R? Насколько мне известно? код Coco /R закрыт

А>http://www.ssw.uni-linz.ac.at/coco/
А>в разделе Coco/R for C# ссылки, одна из них:
А>CocoSourcesCS.zip the sources (put them in a subdirectory and run build.bat)

Все получилось! Большое спасибо за помощь!

Я изменил исходники, перекомпилил и все заработало. Вот только теперь не совсем понимаю, как я могу это использовать...я имею в виду лицензию: могу ли я применять измененнную версию?
Re: Кодировка в Coco /R
От: Ziaw Россия  
Дата: 20.05.08 05:24
Оценка:
Здравствуйте, SpyderX, Вы писали:

SX>Я изменил файлы Parser.frame и Scanner.frame. Когда пишу в них что-то на русском, то после генерации в выходных файлах (Parser.cs и Scanner.cs) вместо русского текста кракозябры.

SX>Помогите пожалуйста, какую надо поставить кодировку или как решить мою проблему?

Без изменения Coco/R все работает следующим образом:

Файл грамматики сохраняется в UTF8.
Константы в лексер пишутся в кодировке Enoding.Default (у меня в CP1251), как и любые исходники в студии по умолчанию.
На вход лексеру поток надо давать в UTF8, обязательно со служебным заголовком UTF8, тогда он его обрабатает нормально.


Сам coco был собран из http://www.ssw.uni-linz.ac.at/coco/CS/CocoSourcesCS.zip
... << RSDN@Home 1.2.0 alpha 4 rev. 1089>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.