Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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.");
            }
        }
Ejemplo n.º 3
0
 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);
     }
 }