private bool JumptToDataSet(DataBlock dataBlock) { if (dataBlock.moveTo("DATASET") == false) return false; // valida el tipo de dato if (checkDataType(dataBlock) == false) return false; // dataBlock.move(-2); // retrocede para leer el nombre if (dataBlock.moveBackString(32) < 1) { dataBlock.move(6); // este no es válido... busca si hay más... return JumptToDataSet(dataBlock); } else return true; }
private void ProcessOcurrence(DataBlock dataBlock, List<Entity> leaves, List<Entity> entitiesNames) { if (dataBlock.moveBackString() == -1) return; int keepN = dataBlock.n; string child = dataBlock.eatShortString(); dataBlock.n = keepN; if (entitiesNames.Count > 0 && entitiesNames[entitiesNames.Count - 1].Name == child) return; if (dataBlock.IsText(child) == false || child == "") return; // avanzó ok... List<Entity> names = new List<Entity>(); TryEntities(dataBlock, child, names); if (names.Count > 0) leaves.AddRange(names); }