生成的词法分析器中的第一个元素值_serializedATN错误
本文关键字:serializedATN 元素 错误 第一个 词法分析器 | 更新日期: 2023-09-27 18:32:18
>我正在使用VS2010 Exp. C# XP SP3环境
我当前的问题是序列化版本值
Run-Time ERROR: System.TypeInitializationException:
The type initializer for 'Antlr4.Runtime.Verilog2001Lexer' threw an exception. ---> System.NotSupportedException: Could not deserialize ATN with version 5 (expected 3).
我找到了根本原因,但我不知道解决方法,所以我被困住了
ATNSimulator.cs:
public abstract class ATNSimulator
{
public static readonly int SerializedVersion = 3;
…………………
public static ATN Deserialize(char[] data, bool optimize)
{
data = (char[])data.Clone();
// don't adjust the first value since that's the version number
for (int i = 1; i < data.Length; i++)
{
data[i] = (char)(data[i] - 2);
}
int p = 0;
int version = ToInt(data[p++]);
if (version != SerializedVersion) <<<<<< mismatch 5 vs. 3
{
但是在生成的词法分析器中
{ public static readonly string _serializedATN =
"'x5'x4'xB5'x638'b'x1'x4'x2't'x2'x4'x3't'x3'x4'x4't'x4'x4'x5't'x5'x4'x6"+ }
任何评论都值得赞赏谢谢
这种情况意味着你使用旧版本的 C# 目标生成了词法分析器,但正在使用新版本运行代码。如果最近更新了项目中的库,则 Clean+Build 将使用正确的目标重新生成语法。
如果按照这些说明操作,请从 NuGet 重新安装 antlr4 加载项。
https://github.com/sharwell/antlr4cs