antlr / antlrcs

The C# port of ANTLR 3, StringTemplate 3, and StringTemplate 4
Other
282 stars 81 forks source link

Moving from Antlr 3.1.1 to 3.5.0.2 #106

Open jannavarro opened 6 years ago

jannavarro commented 6 years ago

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? 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.

sharwell commented 6 years ago

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

jannavarro commented 6 years ago

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

sharwell commented 6 years ago

@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.
jannavarro commented 6 years ago

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.

sharwell commented 6 years ago

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

jannavarro commented 6 years ago

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

bojake commented 3 years ago

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.