2011-12-15 23 views
5

Come leggere i contenuti da file in ocaml? Specificamente come analizzarli?Ocaml - Files and parsing

Esempio:

di file Supponiamo che contiene (a,b,c);(b,c,d)| (a,b,c,d);(b,c,d,e)|

poi dopo aver letto questo, voglio due liste contenenti l1 = [(a,b,c);(b,c,d)] e l2 = [(a,b,c,d);(b,c,d,e)]

C'è un buon tutorial per l'analisi?

+2

Si prega di non ripubblicare domande. Se hai qualcosa di nuovo da aggiungere alla tua domanda esistente, ti preghiamo di modificarlo. – BoltClock

risposta

2

Se si desidera specificare una grammatica e avere ocaml generare lexer e parser per voi, controllare questi tutorial ocamllex e ocamlyacc. Raccomando di farlo in questo modo. Se in realtà hai solo un tipo di token nel tuo formato di file, allora ocamlyacc potrebbe essere eccessivo se puoi semplicemente usare il lexer per dividere il file in token che sono considerati validi dalla grammatica.

5

Questo è un buon caso per il generatore di parser menhir (successore di ocamlyacc). Potresti voler usare ocamllex per il lexing. Tutti hanno una buona documentazione.

Si potrebbe anche usare camlp4 o camlp5 abilità flusso di analisi.

Leggi anche le pagine di wikipedia su lexing & parsing.

+0

Puoi riferirmi ad un codice di esempio o qualcosa del genere? – priyanka

+3

Le documentazioni hanno un codice di esempio. –

3

Sarei propenso a utilizzare Aurochs, un parser PEG per qualcosa di simile. C'è codice di esempio nel repository lì.