antlrcs icon indicating copy to clipboard operation
antlrcs copied to clipboard

Moving from Antlr 3.1.1 to 3.5.0.2

Open jannavarro opened this issue 7 years ago • 7 comments
trafficstars

I currently have antlr 3.1.1 in my code. I am planning to move to 3.5.0.2 so I installed it from Nuget. Upon installing I encountered errors in the generated Lexer and Parser.cs. I have looked at release notes, articles, etc but couldn't find the right way of fixing these errors. I would like to seek guidance:

1.) The type or namespace name 'Collections' does not exist in the namespace 'Antlr.Runtime'. I get this error in "using Antlr.Runtime.Collections.StackList;"

2.) What parameter should I put in ParserRuleReturnScope<T>? What are the changes why a parameter was added here?

3.) Tree property does not exist in ParserRuleReturnScope anymore.

4.) Lexer - DEFAULT_TOKEN_CHANNEL, HIDDEN does not exist.

5.) this.dfa19.specialStateTransitionHandler - CS1061 'ExpressionLexer.DFA19' does not contain a definition for 'specialStateTransitionHandler' and no extension method 'specialStateTransitionHandler' accepting a first argument of type 'ExpressionLexer.DFA19' could be found (are you missing a using directive or an assembly reference?)

There are a lot more errors but I would like to focus first on this.

jannavarro avatar May 29 '18 12:05 jannavarro

It sounds like you didn't regenerate your code when you upgraded. Can you make sure you are using the Antlr3 NuGet package?

sharwell avatar May 29 '18 12:05 sharwell

Hi @sharwell thanks for the prompt response. Yes, I am using that Nuget package. Do I need to regenerate my code using Antlrworks?

jannavarro avatar May 29 '18 13:05 jannavarro

@jannavarro No, the code is generated automatically when you build your solution. Here are the steps to ensure the build is working:

For each grammar T in your solution:

  1. Right click the file T.g3 in Solution Explorer and select Properties.
  2. In the Properties pane, set the Build Action to Antlr3.
  3. In the Properties pane, set the Custom Tool to MSBuild:Compile.

sharwell avatar May 29 '18 14:05 sharwell

Oh. I see. I think I read earlier that I need to install an extension but VS 2017 is not supported. Or is that different?

Thanks for the steps. Will try it.

jannavarro avatar May 29 '18 15:05 jannavarro

The extension is optional. I uploaded a new version that supports VS 2017 last week. 😄

sharwell avatar May 29 '18 15:05 sharwell

@sharwell Trying it now. Will update this issue on the status and possibly close it if it is resolved. Thanks for your answers.

jannavarro avatar May 30 '18 01:05 jannavarro

I have a similar issue. The nuget 3.1.x version works fine with our grammar, but the latest 3.5.x version complains about the same errors listed in the OP's report.

bojake avatar Oct 20 '21 21:10 bojake