Esempio n. 1
0
 public void Load(string path, FileManager manager)
 {
     _suffixAutomat.Load(path, manager);
 }
Esempio n. 2
0
        protected bool Load(string grammarFileName, FileManager manager)
        {
            if (!_formAutomat.Load(MakeFName(grammarFileName, "forms_autom"), manager))
            {
                return(false);
            }
            var PrecompiledFile = MakeFName(grammarFileName, "annot");

            using (var file = manager.GetFile(Registry, PrecompiledFile)) {
                var reader = new BinaryReader(file, Tools.InternalEncoding);
                ReadFlexiaModels(reader, _flexiaModels);
                ReadAccentModels(reader, _accentModels);
                int Count;

                var line = Tools.ReadLine(reader);
                if (line == null)
                {
                    return(false);
                }
                int.TryParse(line, out Count);
                // add empty prefix
                _prefixes.Clear();
                _prefixes.Add("");
                for (var i = 0; i < Count; i++)
                {
                    line = Tools.ReadLine(reader);;
                    if (line == null)
                    {
                        return(false);
                    }
                    line = line.Trim();
                    if (string.IsNullOrEmpty(line))
                    {
                        throw new Exception("line is empty");
                    }
                    _prefixes.Add(line);
                }
                line = Tools.ReadLine(reader);
                if (line == null)
                {
                    return(false);
                }
                int.TryParse(line, out Count);
                if (!ReadLemmas(reader, Count))
                {
                    return(false);
                }
                line = Tools.ReadLine(reader);
                if (line == null)
                {
                    return(false);
                }
                int.TryParse(line, out Count);
                _NPSs = reader.ReadBytes(Count);;
                if (_NPSs.Length != Count)
                {
                    return(false);
                }
                if (_NPSs.Length != _flexiaModels.Count)
                {
                    throw new MorphException("_NPSs.Count!=_FlexiaModels.Count");
                }
            }
            using (var file = manager.GetFile(Registry, MakeFName(grammarFileName, "bases"))) {
                _bases.ReadShortStringHolder(file);
            }
            CreateModelsIndex();
            return(true);
        }
Esempio n. 3
0
 public void Load(string path, FileManager manager)
 {
     _suffixAutomat.Load(path, manager);
     _tools = new Tools();
 }