Пример #1
0
        public void AllLevelsRecovery(Type langDef)
        {
            var lang = Language.Get(langDef);

            var context = new RecoveryLang();

            Assert.IsTrue(lang.Grammar.Symbols[lang.Identify("beacon")].Categories.Has(SymbolCategory.Beacon));
            Assert.IsTrue(lang.Grammar.Symbols[lang.Identify("{")].Categories.Has(SymbolCategory.DoNotInsert));
            Assert.IsTrue(lang.Grammar.Symbols[lang.Identify("{")].Categories.Has(SymbolCategory.DoNotDelete));

            Parse(
                lang,
                // 3 errors:
                //  1st handled by panic mode
                //  2nd uses error-production rule.
                //  3rd reports missing '}'
                "{ callFunc callFunc \n callFunc callFunc \n callFunc beacon { callFunc \n callFunc \n callFunc } \n callFunc(); \n");

            AssertErrors(1, 2);
        }
Пример #2
0
        public void AllLevelsRecovery(Type langDef)
        {
            var lang = Language.Get(langDef);

            var context = new RecoveryLang();

            Assert.IsTrue(lang.Grammar.Symbols[lang.Identify("beacon")].Categories.Has(SymbolCategory.Beacon));
            Assert.IsTrue(lang.Grammar.Symbols[lang.Identify("{")].Categories.Has(SymbolCategory.DoNotInsert));
            Assert.IsTrue(lang.Grammar.Symbols[lang.Identify("{")].Categories.Has(SymbolCategory.DoNotDelete));

            Parse(
                lang,
                // 3 errors:
                //  1st handled by panic mode
                //  2nd uses error-production rule.
                //  3rd reports missing '}'
                "{ callFunc callFunc \n callFunc callFunc \n callFunc beacon { callFunc \n callFunc \n callFunc } \n callFunc(); \n");

            AssertErrors(1, 2);
        }
Пример #3
0
 private void Reset()
 {
     context = new RecoveryLang();
     errorCount = 0;
 }
Пример #4
0
 private void Reset()
 {
     context    = new RecoveryLang();
     errorCount = 0;
 }