Информация об изменениях

Сообщение Re[2]: [Nitra] Проблемы с Unicode от 21.04.2016 15:54

Изменено 21.04.2016 17:41 SlopnyPuratino

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

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


P>>Не ест '🐵'. Подозреваю, что проблема в том, что 🐵 — это 4 байта в UTF16 и 6 в UTF8.


P>>Сообщение об ошибке "Unexpected token: '\\uDC35'"


VD>Можно попробовать написать аналог Any вручную.


Не получается вручную, когда в границах диапазона попадают символы ['\uD800'..'\uDFFF'], возникает ошибка:

C:\Program Files (x86)\Nemerle\Net-4.0\Nemerle.MSBuild.targets(289,5): error : internal compiler error: got ArgumentException (Unicode surrogate characters must be written out as pairs together in the same call, not individually. Consider passing in a character array instead.)
       at System.IO.BinaryWriter.Write(Char ch)
       at Nitra.Typing.RegularRuleSymbol.Serialize(BinaryWriter writer, IMetadataWriter metadataWriter)
       at Nitra.Serialization.MetadataWriter.WriteSymbolHeadersAndSerializeSymbols(IEnumerable`1 symbols)
       at Nitra.Serialization.MetadataWriter.WriteSymbols()
       at Nitra.Compiler.CompilingNitraProject._N_writeMetadataCallback__18471.apply_void(ManagerClass _N_wildcard_4726)
       at Nemerle.Compiler.CompilerEventHandler.Invoke(ManagerClass manager)
       at Nemerle.Compiler.ManagerClass.OnBeforeSaveAssembly()
       at Nemerle.Compiler.ManagerClass.Run()
       at Nemerle.CommandlineCompiler.MainClass.main_with_catching()
Re[2]: [Nitra] Проблемы с Unicode
Здравствуйте, VladD2, Вы писали:

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


P>>Не ест '🐵'. Подозреваю, что проблема в том, что 🐵 — это 4 байта в UTF16 и 6 в UTF8.


P>>Сообщение об ошибке "Unexpected token: '\\uDC35'"


VD>Можно попробовать написать аналог Any вручную.


Не получается вручную, когда в границы диапазона попадают символы ['\uD800'..'\uDFFF'], возникает ошибка:

C:\Program Files (x86)\Nemerle\Net-4.0\Nemerle.MSBuild.targets(289,5): error : internal compiler error: got ArgumentException (Unicode surrogate characters must be written out as pairs together in the same call, not individually. Consider passing in a character array instead.)
       at System.IO.BinaryWriter.Write(Char ch)
       at Nitra.Typing.RegularRuleSymbol.Serialize(BinaryWriter writer, IMetadataWriter metadataWriter)
       at Nitra.Serialization.MetadataWriter.WriteSymbolHeadersAndSerializeSymbols(IEnumerable`1 symbols)
       at Nitra.Serialization.MetadataWriter.WriteSymbols()
       at Nitra.Compiler.CompilingNitraProject._N_writeMetadataCallback__18471.apply_void(ManagerClass _N_wildcard_4726)
       at Nemerle.Compiler.CompilerEventHandler.Invoke(ManagerClass manager)
       at Nemerle.Compiler.ManagerClass.OnBeforeSaveAssembly()
       at Nemerle.Compiler.ManagerClass.Run()
       at Nemerle.CommandlineCompiler.MainClass.main_with_catching()