using System.Collections.Generic;
namespace SyntaxParsingResearch
private static void Main(string[] args)
KeyValuePair<string, string> sample = new KeyValuePair<string, string>("{{g.team.home.name}} to win and {{player.name}} to score".ToLower(), "Juventus to win and C. Ronaldo to score");
var scriptObject1 = new ScriptObject();
var gameAndMarketData = GetStore();
scriptObject1.Import(gameAndMarketData);
scriptObject1["player"] = new { Name = "C. Ronaldo", City = new { Name = "Sofia" } };
var context = new TemplateContext();
context.PushGlobal(scriptObject1);
var template = Template.Parse(sample.Key);
var result = template.Render(context);
System.Console.WriteLine(result);
System.Console.WriteLine("Values match " + result.Equals(sample.Value));
public static MetadataStore GetStore()
var store = new MetadataStore();
public class MetadataStore
G = new Dictionary<string, object>();
M = new Dictionary<string, object>();
public Dictionary<string, object> G { get; }
public Dictionary<string, object> M { get; }