public void ITC24MetaSyntax() { // Build a grammar to test meta grammar string actual1, actual2, expect, msg; expect = MetaParser.SoftMetaGrammarAndSettings; var parser = new Parser(MetaParser.SoftMetaGrammarAndSettings); actual1 = parser.GetGrammar(); // Test Meta grammar after after compilation in a Parser. actual2 = MetaParser.Instance.GetGrammar(); // Test Meta grammar in internal Parser. msg = Util.CompareTextLines(actual1, expect); Assert.AreEqual(string.Empty, msg, "Meta grammar diff error"); msg = Util.CompareTextLines(actual2, expect); Assert.AreEqual(string.Empty, msg, "Meta grammar internal diff error"); // Compare generated CodeDocument with 'selected nodes' string actualTags1, actualTags2, expectTags; CodeDocument docExpect = TestMetaGrammarDoc(); //var metaParser = _metaparser; TextBuffer buffer = new FlatBuffer(MetaParser.SoftMetaGrammarAndSettings); CodeDocument docActual1 = parser.ParseString(buffer); buffer = new FlatBuffer(MetaParser.SoftMetaGrammarAndSettings); CodeDocument docActual2 = MetaParser.Instance.ParseString(buffer); expectTags = docExpect.ToMarkup(); actualTags1 = docActual1.ToMarkup(); actualTags2 = docActual2.ToMarkup(); msg = CodeDocument.CompareCode(docActual1, docExpect); Assert.AreEqual(string.Empty, msg, "Meta grammar document diff error"); msg = CodeDocument.CompareCode(docActual2, docExpect); Assert.AreEqual(string.Empty, msg, "Meta grammar internal document diff error"); Assert.AreEqual(docExpect.Name, docActual1.Name, "Document name diff error"); Assert.AreEqual(expectTags, actualTags1, "Meta grammar document.toMarkup diff error"); Assert.AreEqual(expectTags, actualTags2, "Meta grammar document.toMarkup diff error"); }