public void DefinitionConverter_Convert() { string definition = File.ReadAllText("Interop/Json/Files/TestDefinition.json"); LanguageMatcherDefinition languageMatcherDefinition = JsonConvert.DeserializeObject <LanguageMatcherDefinition>(definition); LanguageMatcher languageMatcher = DefinitionConverter.Convert(languageMatcherDefinition); LanguageMatcherDefinition newLanguageDefinition = DefinitionConverter.Convert(languageMatcher); Assert.Equal(languageMatcherDefinition, newLanguageDefinition, new LanguageMatcherDefinitionComparer()); }
private static void Main(string[] args) { Dictionary <string, List <string> > parsedArgs = GetCommandLineParameters(string.Join(" ", args)); if (parsedArgs.Count == 0) { PrintHelpText(); return; } string definitionFile = GetDefinitionFile(parsedArgs); string outputFolder = GetOutputFolder(parsedArgs); OutputType outputType = GetOutputType(parsedArgs); string definitionFileText; if (!string.IsNullOrEmpty(definitionFile)) { definitionFileText = File.ReadAllText(definitionFile); } else { definitionFileText = Console.In.ReadToEnd(); if (string.IsNullOrWhiteSpace(definitionFileText)) { throw new ArgumentException("A language defintion file is required."); } } try { LanguageMatcherDefinition languageMatcherModel = JsonConvert.DeserializeObject <LanguageMatcherDefinition>(definitionFileText); LanguageMatcher languageMatcher = DefinitionConverter.Convert(languageMatcherModel); MatcherClassGenerator generator = new MatcherClassGenerator(languageMatcher); if (outputType == OutputType.Assembly) { generator.OutputAssembly(outputFolder); } else if (outputFolder == "stdout") { Console.WriteLine(generator.GetClass()); } else { generator.OutputClass(outputFolder); } } catch (Exception) { throw new ArgumentException("A matcher could not be generated using the given definition file."); } }
public static LanguageMatcher GetStaxeTestComplexLangMatcher() { lock (_matcherMap) { if (!_matcherMap.TryGetValue(Language.StaxeTestComplexLang.ToString(), out LanguageMatcher languageMatcher)) { string definition = File.ReadAllText("TestComplexLang/Files/StaxeTestComplexLangDefinition.json"); LanguageMatcherDefinition languageMatcherModel = JsonConvert.DeserializeObject <LanguageMatcherDefinition>(definition); languageMatcher = DefinitionConverter.Convert(languageMatcherModel); _matcherMap[Language.StaxeTestComplexLang.ToString()] = languageMatcher; } return(languageMatcher); } }