private void TryEntities(DataBlock dataBlock, string parent, List<Entity> entitiesNames)
        {
            // lee el length
            string entityNameString;
            if (dataBlock.PlausibleString(out entityNameString) == false || entityNameString  == "")
                return;
            //
            if (checkEntityStart(dataBlock) == false)
                return;
            Entity entity = new Entity() { Name = entityNameString };
            entitiesNames.Add(entity);
            // ahora se va a buscar a sus hijos
            var block = dataBlock.makeStringBlock(entityNameString);
            List<Entity> variants = new List<Entity>();
            List<int> allBlockOccurrences = dataBlock.GetAllMatches(block);

            foreach (int startN in allBlockOccurrences)
            {
                dataBlock.n = startN;
                ProcessOcurrence(dataBlock, variants, entity.Children);
            }
            if (variants.Count > 0)
            {
                entity.Children.Clear();
                entity.Children.AddRange(variants);
            }
        }