Ejemplo n.º 1
0
        private static void AssertForestsAreEqual(IForestNode expected, IForestNode actual)
        {
            Assert.IsNotNull(expected != null, nameof(expected) + " != null");
            Assert.IsNotNull(actual != null, nameof(actual) + " != null");

            var comparer = new StatefulForestNodeComparer();

            Assert.IsTrue(comparer.Equals(expected, actual));
        }
Ejemplo n.º 2
0
        private static void AssertLeoAndClassicParseAlgorithmsCreateSameForest(IEnumerable <IToken> tokens, IGrammar grammar)
        {
            var leoEngine     = new ParseEngine(grammar);
            var classicEngine = new ParseEngine(grammar, new ParseEngineOptions(optimizeRightRecursion: false));

            Assert.IsTrue(RunParse(leoEngine, tokens), "Leo Parse Failed");
            Assert.IsTrue(RunParse(classicEngine, tokens), "Classic Parse Failed");

            var nodeComparer           = new StatefulForestNodeComparer();
            var leoParseForestRoot     = leoEngine.GetParseForestRootNode();
            var classicParseForestRoot = classicEngine.GetParseForestRootNode();

            Assert.IsTrue(nodeComparer.Equals(
                              classicParseForestRoot,
                              leoParseForestRoot),
                          "Leo and Classic Parse Forest mismatch");
        }
Ejemplo n.º 3
0
        private static void AssertLeoAndClassicParseAlgorithmsCreateSameForest(string input, IGrammar grammar)
        {
            var leoEngine     = new ParseEngine(grammar);
            var classicEngine = new ParseEngine(grammar, new ParseEngineOptions(optimizeRightRecursion: false));

            var leoTester     = new ParseTester(leoEngine);
            var classicTester = new ParseTester(classicEngine);

            leoTester.RunParse(input);
            classicTester.RunParse(input);

            var nodeComparer           = new StatefulForestNodeComparer();
            var leoParseForestRoot     = leoEngine.GetParseForestRootNode();
            var classicParseForestRoot = classicEngine.GetParseForestRootNode();

            Assert.IsTrue(nodeComparer.Equals(
                              classicParseForestRoot,
                              leoParseForestRoot),
                          "Leo and Classic Parse Forest mismatch");
        }
Ejemplo n.º 4
0
        static void AssertForestsAreEqual(IForestNode expected, IForestNode actual)
        {
            var comparer = new StatefulForestNodeComparer();

            Assert.IsTrue(comparer.Equals(expected, actual));
        }