Puoi creare una struttura di dati come Grammatica di espressione di analisi (PEG) che verrà utilizzata per analizzare :
string -> object
Puoi quindi scrivere una funzione che itera attraverso le proprietà dell'oggetto e serializza nuovamente in una stringa, o stringify :
object -> string
Non ho visto nessuna struttura dati per definire come funzionerebbe la stringa (simile a un PEG), ma penso che sarebbe possibile.
Quello che mi chiedo è se puoi creare una una struttura dati per fare entrambe le cose. Cioè, definisci una grammatica o qualcosa che ti consenta di analizzare e serializzare del testo. Ci sarebbero ancora due funzioni (parse e stringify), ma entrambi prenderebbero la stessa struttura dati / cosa della grammatica per capire cosa fare automaticamente.
Te lo chiedo perché mi sento come se avessi letto prima che l'intero scopo originale delle grammatiche fosse per la generazione del linguaggio piuttosto che l'analisi, e l'analisi veniva solo dopo. Posso immaginare una struttura dati per generare stringhe, ma mi chiedo se può essere più finemente personalizzata in modo che tu possa dargli una struttura dati (ad esempio analizzata oggetto URL ), e genererebbe la stringa URL da esso senza dover scrivere il codice di serializzazione personalizzato . La struttura dati / cosa della grammatica farebbe la stringificazione per te. Ti chiedi se è possibile.
O forse è solo meglio avere due strutture dati. Sto solo cercando di pensare in termini di riduzione della duplicazione.