Domanda

ci possono essere due produzioni da cui si può fare la riduzione. Dopo aver dato la precedenza e le associazioni come richiesto ci sarà una maniglia only.so è questa affermazione è vera ??

È stato utile?

Soluzione

Questo è in parte vero, un ridurre / ridurre il conflitto è di solito risolto specificando la precedenza o lasciando il costruttore parser scegliere quale regola applicata prima che l'altro.

Ciò significa che il conflitto è risolto, ma non è che il parser si comporterà esattamente come previsto. E 'conveniente per studiare che cosa sta causando il conflitto e pensare se è necessaria una refactoring della grammatica per esprimere ciò che si sta cercando di analizzare o se la scelta / precedenza automatica è sufficiente.

Altri suggerimenti

Se si dispone di una grammatica che ha regole ambigue, si ottiene molteplici interpretazioni. Non è necessario insistere sul fatto che il grammatica rimuove l'ambiguità; si può semplicemente d'accordo che qualcosa è ambigua e analizzarlo più modi:

fruit flies like an arrow.

Il risultato della parse è più interpretazioni.

Ora, per un tale linguaggio per essere utile per un lettore, o lui deve essere felice con l'ambiguità, o avete bisogno di dargli un modo per risolverlo. (Nell'esempio, ho deciso per te che sei felice l'ambiguità, perché io non vi ho dato un modo per risolverlo!). Oppure, si può fornire al lettore di qualcosa con parsess ambiguo, un modo per scegliere quale parse ha senso, e lui respinge le analizza inappropriate.

posso farlo per il caso di cui sopra dicendovi che voglio dire "frutto => cocomero".

grammatiche

Computer non sono diversi, ma la maggior parte dei programmatori non vogliono il codice ambiguo. Quindi, in generale, i progettisti langauge come per definire grammatiche non ambigue. In pratica, non riescono e si ottiene regole del linguaggio divertenti come, "Se questo potrebbe essere interpretato in modo ambiguo, quindi interpretarlo questo così.".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top