Two I have used and would recommend trying:
NB these are C# not VB.NET so I'm not sure it fully answers the question
Lazy Parser
Lazy Parser project, performs dynamic compilation.
The syntax is C#, example:
ParserContext context = new ParserContext();
context.AddType("Math", typeof(Math));
context.Set("SomeString", "Hi there!");
context.Set("SomeNumber", 20);
context.AddFunction("fmt", typeof(String), "Format");
CSharpParser parser = new CSharpParser();
string stringValue = parser.Evaluate<string>("fmt(\"I said: {0}\", SomeString)", context); // returns "I said: Hi there!"
Flee
Fast Lightweight Expression Evaluator
Example:
// Define the context of our expression
ExpressionContext context = new ExpressionContext();
// Allow the expression to use all static public methods of System.Math
context.Imports.AddType(typeof(Math));
// Define an int variable
context.Variables["a"] = 100;
// Create a dynamic expression that evaluates to an Object
IDynamicExpression eDynamic = context.CompileDynamic("sqrt(a) + pi");
// Create a generic expression that evaluates to a double
IGenericExpression<double> eGeneric = context.CompileGeneric<double>("sqrt(a) + pi");
// Evaluate the expressions
double result = (double)eDynamic.Evaluate();
result = eGeneric.Evaluate();
// Update the value of our variable
context.Variables["a"] = 144;
// Evaluate again to get the updated result
result = eGeneric.Evaluate();
Also worth a try:
LUA for .NET