Non sto dicendo che voglio creare un compilatore completamente nuovo che sia completamente indipendente. Sto utilizzando C # Windows Form e voglio che gli utenti siano in grado di scrivere la sintassi del filtro in una casella di testo con la mia applicazione gestita in un linguaggio di query di base, ad esempio:
inCategory(Animals)
where(animal.age > 40)
take animal;
È fondamentalmente una versione semplificata di LINQ. Ma voglio che questa logica sia racchiusa in una classe separata, quindi posso dire qualcosa del genere:
var dataQuery = FilterCompiler.Compile(filterTextBox.Text);
dataQuery.Execute();
Non sto dicendo 'gimee the code', ma un po 'di psuedocode / struttura logica di base per questo' compilatore 'sarebbe bello dato che io sono un po' ignorante su questo argomento. Ad esempio,
- Che tipo di analisi del testo dovrebbe fare questo
FilterCompiler
? - Quale sarebbe il tipo di
dataQuery
? - Questo richiederebbe qualche conoscenza della grammatica del compilatore?
- Dovrei usare qualsiasi codice non gestito?
- Come posso mantenere la compilazione il più indipendente possibile in modo che non dipenda troppo dal tipo di dati che ho? Attualmente ho una lista, ma le cose cambiano, potrei avere un database con le informazioni al suo interno presto.