public void LoadFolder(string folderPath) { Interpreter interpreter = new Interpreter(); interpreter.AddFilesFromDirectory(folderPath); interpreter.Compile(); foreach (VCGrammar grammar in interpreter.CompiledGrammar) { speechRecognitionEngine.LoadGrammar(grammar); } speechRecognitionEngine.RequestRecognizerUpdate(); speechRecognitionEngine.EmulateRecognize("hello"); }
public void TestInterpreterOnFolder() { Interpreter interpreter = new Interpreter(); interpreter.AddFilesFromDirectory(RESOURCE_TEST_FOLDER); interpreter.Compile(); // Test modules. Assert.AreEqual(3, interpreter.ModuleMap.Count); Assert.IsTrue(interpreter.ModuleMap.ContainsKey("outer")); Assert.IsTrue(interpreter.ModuleMap.ContainsKey("package.test")); Assert.IsTrue(interpreter.ModuleMap.ContainsKey("package.inner.inner")); // Test imports. Module module; ReadOnlyDictionary <string, Tuple <string, bool> > moduleImportDict; module = interpreter.ModuleMap["outer"]; moduleImportDict = module.LoadedImports; Assert.AreEqual(1, moduleImportDict.Count); Assert.IsTrue(moduleImportDict.ContainsKey("package")); Assert.AreEqual("", moduleImportDict["package"].Item1); Assert.IsTrue(moduleImportDict["package"].Item2); module = interpreter.ModuleMap["package.test"]; moduleImportDict = module.LoadedImports; Assert.AreEqual(1, moduleImportDict.Count); Assert.IsTrue(moduleImportDict.ContainsKey("package.inner")); Assert.AreEqual("yes", moduleImportDict["package.inner"].Item1); Assert.IsFalse(moduleImportDict["package.inner"].Item2); // Test compilation. module = interpreter.ModuleMap["package.test"]; // Redundant, but futureproofing. Assert.AreEqual("a* (b{3} c+ | (d | e{2,9}) [f]) ((g)) h{3,}", module.LoadedGrammarNodes["test"].ToString()); GrammarBuilder gb = GrammarCompiler.CompileToGrammarBuilder(module.LoadedGrammarNodes["test"]); Assert.AreEqual("‘a’ [‘b’ ‘c’,[‘d’,‘e’] [‘f’]] [[‘g’]] ‘h’", gb.DebugShowPhrases); }