.NET 2.0 (Mono/Unity) Exception

Topics: Help
Sep 13, 2012 at 9:50 PM
Edited Sep 13, 2012 at 9:51 PM

This is a similar issue to the one reported in http://ncalc.codeplex.com/discussions/391081

I'm using NCalc in Unity, which is uses MONO as it's .NET interpreter. NCalc works very well in most situations, except in web-pages where it is forced to use .NET 2.0.

When trying to create an expression to evaluate, I get a EvaluationException:

Error verifying Antlr.Runtime.BaseRecognizer:PushFollow (Antlr.Runtime.BitSet): Invalid array type on stack for stdelem.X at 0x0082


It seems as if the expression parser isn't 100% compatible with .NET 2.0 anymore. Is there anyone who can confirm this?

 

I've tried to debug it, but there are issues getting it to compile on MONO against .NET 2.0 - there are breaking changes between the NCalc and the current version of ANTLR (although this may be fixable by running the antlr tool over the grammar again) and code/style shortcuts (placing 'get' and 'set' properties with no content) aren't accepted by the MONO compiler.

I'll let you know if I have any success.