生成的词法分析器中的第一个元素值_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"+ }

任何评论都值得赞赏谢谢

生成的词法分析器中的第一个元素值_serializedATN错误

这种情况意味着你使用旧版本的 C# 目标生成了词法分析器,但正在使用新版本运行代码。如果最近更新了项目中的库,则 Clean+Build 将使用正确的目标重新生成语法。

如果按照这些说明操作,请从 NuGet 重新安装 antlr4 加载项。

https://github.com/sharwell/antlr4cs