Quiero extraer todas las referencias de nombres de columnas que se encuentran en una fórmula JMP a una lista, identificar específicamente sus dependencias de columnas. Las fórmulas JMP pueden ser bastante complejas; por ejemplo, podrían crear código JSL como salida que incluya nombres de columnas. No me interesan los nombres de esas columnas porque la fórmula no depende de ellos. Sólo me interesan los nombres de las columnas que utiliza para calcular el resultado. ¿Existe una forma sencilla de hacer esto sin analizar la fórmula mediante programación?
Aquí hay un bosquejo de mi plan inicial.
Convierta la fórmula en una cadena y busque tres elementos: :,
!", \!".
- Primero elimine todas las comillas. Busque primero \!" sin un : anterior y luego busque su \!" coincidente. sin precedente: y sin comillas escapadas múltiples. Reconozca esto como una cita en la fórmula y elimínela (u omítala). Luego repita para toda la fórmula.
- Luego busque nombres en la cadena.
- Si se encuentra :, continúe hasta que se encuentre un carácter de "división de nombre", como una coma. Almacenar como uno de los nombres en formato de cadena
- Si se encuentra
!", continúe hasta que se encuentre \!"n. Almacene la cadena de nombre como uno de los nombres
- Finalmente, deduplica la lista de nombres para que sean únicos.
¿Existe una forma más elegante de hacer esto?
Si no, ¿qué puede salir mal con lo anterior? ¿Existen otras formas de especificar el nombre de una columna en una fórmula?
Estoy dispuesto a asumir que la fórmula se creó mediante el método tradicional de apuntar y hacer clic en el editor de fórmulas y no utiliza código JSL. Entonces, por ejemplo, el código JSL que usa Parse() en la fórmula para resolver una referencia de columna estaría fuera de alcance. Aunque sería bueno si pudiera hacer eso también
.