Per avere un'idea di quello che sto facendo, sto scrivendo un parser python che analizzerà i file di testo .x di directx.
Il problema che ho a che fare con come i file sono formattati. Anche se sto scrivendo in Python, sto cercando algoritmi generali per affrontare questo tipo di analisi.
I file.x definiscono i dati utilizzando i modelli. Il formato di un modello è
template_name { [some_data] }
L'obiettivo che ho è quello di analizzare il file riga per riga e ogni volta che trovo un modello, mi occuperò di conseguenza.
Il mio approccio iniziale era di verificare se una linea contiene una parentesi graffa di apertura o chiusura. Se si tratta di una parentesi graffa aperta, verificherò il nome del modello.
Ora il problema è che la parentesi aperta non deve necessariamente comparire sulla stessa riga del nome del modello. Potrebbe anche essere
template_name { [some_data] }
Quindi, se dovessi usare il mio criterio "Esiste una parentesi aperta", non funzionerà per tutti i file che utilizzano il secondo formato.
Molte lingue usano anche parentesi graffe (anche se non sono sicuro che le persone possano analizzare personalmente gli script), quindi mi chiedevo se qualcuno sa come ottenere con precisione il nome del modello (o in alcune altre lingue, potrebbe anche essere un nome di funzione, anche se non ci sono parole chiave da cercare)