Un lexer deve sfuggire alle stringhe?

3

È compito del lexer annullare tutte le operazioni di escape eseguite su una stringa letterale? Ad esempio:

"Me: \"Hello World!\""

diventa:

Me: "Hello World!"

Questa conversione dovrebbe essere eseguita all'interno del lexer? Immagino che dovrebbe, perché permetterebbe un design più astratto e modulare. È possibile aggiungere modi per rappresentare le stringhe e non sarà necessario aggiornare ogni componente.

    
posta Jeroen Bollen 03.05.2014 - 13:30
fonte

1 risposta

4

Se stai implementando qualcosa di simile a stringhe letterali in C, allora sì. Questo perché a livello di parser, ti preoccupi solo del fatto che qualcosa sia una stringa letterale e non di come siano implementati.

Ma se hai qualche requisito aggiuntivo come le virgolette che appaiono all'interno della stringa letterale deve essere abbinato (cioè "\" "non è valido). Quindi questo può essere catturato solo usando una grammatica context free e può essere solo gestito da un parser.

    
risposta data 03.05.2014 - 13:52
fonte

Leggi altre domande sui tag