C'è un modo per ottenere perl6 di generare un messaggio di errore se una grammatica non corrisponde? O almeno restituire la posizione degli ultimi dati elaborati? È abbastanza difficile correggere gli errori di sintassi se tutto ciò che ottengo dal parser è "nessuna corrispondenza".grammatiche perl6, segnalazione errori
risposta
Se la messa a fuoco genera messaggi per gli utenti della grammatica, vedere Generating Good Parse Errors from a Parser e Grammar::ErrorReporting.
Il resto di questa risposta riguarda il debug.
Innanzitutto, è possibile incorporare chiusure arbitrarie (codice) in Perle 6 regex. (Basta digitare { your code goes here }
nel mezzo di un'espressione regolare.) Quindi potresti semplicemente cospargere le affermazioni { say ... }
dove sono utili per il debug.
Ma ci sono opzioni migliori.
Si sta utilizzando la "batteria inclusa" distribuzione Rakudo Star? (Si dovrebbe essere a meno che non si abbia una buona ragione per non farlo.) In tal caso, è possibile aggiungere la riga use Grammar::Tracer;
(come descritto nelle diapositive allo http://www.jnthn.net/papers/2011-yapceu-grammars.pdf) per ottenere una traccia completa di un'analisi.
La mia preferenza personale è quello di utilizzare il debugger Rakudo che fornisce tutto ciò di grammatica :: Tracer fa più un bel po 'più oltre (singolo passo, i punti di interruzione, ecc di tutto il codice Perl 6 tra cui espressioni regolari e grammatiche). Il debugger è stato introdotto in questo video.
Se hai altre domande, ti consiglio di visitare il sempre amichevole IRC channel #perl6.
- 1. Segnalazione errori flurry per Android
- 2. Attivazione segnalazione errori off php
- 3. boost :: spirito che compone grammatiche da grammatiche
- 4. .NET "Invia segnalazione errori a [me]"
- 5. MySQLi ha preparato la segnalazione degli errori
- 6. Migliorare la segnalazione degli errori di javascript
- 7. Esiste un'API .Net per Windows Segnalazione errori
- 8. Framework di segnalazione degli errori per .net
- 9. Segnalazione errori durante l'esecuzione in IIS
- 10. componibili Grammatiche
- 11. Perl6 moduli installati
- 12. complete e personalizzate segnalazione di errori da Android apps
- 13. php segnalazione degli errori stringa non inizializzata offset: 0
- 14. jquery mobile - come utilizzare la "finestra di segnalazione degli errori"
- 15. Segnalazione di errori Javascript a livello di documento
- 16. Errori di compilazione Clojure confusi - Segnalazione di righe errate?
- 17. Perl6 API con Slang :: SQL
- 18. Perl6: importazione implicita ed esplicita
- 19. Segnalazione bugzilla
- 20. Dove sono le grammatiche dell'albero in ANTLR4?
- 21. Sono consentite le grammatiche boost-spirit ricorsive?
- 22. Utilità di segnalazione NaN?
- 23. e disfare struttura dati con Perl6
- 24. Come posso compilare perl6 file exe
- 25. Che cos'è un twigil in Perl6?
- 26. ASP.NET MVC Segnalazione
- 27. Implementazione e segnalazione mutex
- 28. Segnalazione SQL: Null Parametro
- 29. Segnalazione e codifica - pensieri?
- 30. Disattivazione della segnalazione degli errori di Windows (Dr. Watson) per il mio processo