private static void CheckConfig(SyntaxProcessorConfig config)
 {
     config.ThrowIfNull("config");
     config.PosTaggerProcessorConfig.ThrowIfNull("PosTaggerProcessorConfig");
     config.MorphoModel.ThrowIfNull("MorphoModel");
     config.MorphoAmbiguityModel.ThrowIfNull("MorphoAmbiguityModel");
     config.ModelFilename.ThrowIfNullOrWhiteSpace("ModelFilename");
     config.TemplateFilename.ThrowIfNullOrWhiteSpace("TemplateFilename");
 }
        public SyntaxProcessor(SyntaxProcessorConfig config)
        {
            CheckConfig(config);

            _Words = new List <word_t>(DEFAULT_WORDSLIST_CAPACITY);
            _PosTaggerProcessor = new PosTaggerProcessor(config.PosTaggerProcessorConfig, config.MorphoModel, config.MorphoAmbiguityModel);

            switch (config.ModelType)
            {
            case SyntaxModelTypeEnum.No_Words:
                _SyntaxScriber = new SyntaxScriber_NoWords(config.ModelFilename, config.TemplateFilename);
                break;

            case SyntaxModelTypeEnum.Words:
                _SyntaxScriber = new SyntaxScriber_Words(config.ModelFilename, config.TemplateFilename);
                break;
            }
            ModelType = config.ModelType;
        }