2011-11-20 4 views
25

Esempio di problema: Voglio scrivere uno script Haskell che evidenzi (ad esempio con \fbox) la prima occorrenza di simboli matematici in un documento. Spero che questo mi aiuti ad assicurarmi di aver introdotto tutto.Esistono tecniche Haskell per l'analisi/riscrittura mista (struttura della parte, parte non modificata del testo)?

  • Regex di sono inappropriati, dal momento che non si sa che cosa è in modalità matematica, ecc, e non hanno la logica di contare le cose, o sapere che una variabile dal prossimo \section è in realtà una nuova variabile .

  • Inoltre, non desidero scrivere un parser per tutto il LaTeX. Sembra che la probabilità di errori sia alta, e voglio solo scrivere una sceneggiatura, non un programma commerciale.

Ho scritto un parser misto - uno che ha ottenuto una certa struttura, e ha tenuto il resto come testo, in risposta a una domanda qui. [How do you use parsec in a greedy fashion?]. Ma il mio approccio era ingombrante. C'è un modo migliore, più formale?

+1

Non essere troppo frettoloso per ridurre le espressioni regolari - ricorda che le espressioni regolari sono quasi sempre incorporate in un linguaggio di programmazione completo (ad es. Haskell in questo caso) che può contare, eseguire scelte ecc. Come ho accennato nell'altra domanda, cosa sei cercare è "l'analisi delle isole", ma Haskell non ha strumenti per questo e se provi a farlo con un normale "parsing" piuttosto che con un regex-matching hai subito dei problemi nel riconoscere i simboli di inizio e fine per entrare e uscire dalle isole parsing. –

risposta

2

Si potrebbe dare un'occhiata allo Pandoc library on Hackage per l'analisi del lattice. Vi permetterà di analizzare, modificare e stampare in modo appropriato Latex e molti altri formati.

Problemi correlati