Ho una quantità limitata di tipi di input:
34:56 = sensorA#, sensorA#, sensorB#
2:5 = { led# }
66 = otherSensor
2,3,4,5 = greenRelay#, redRelay#, relayA#, relayA#
- a: b implica intervallo.
- {name} implica un nome globale per il set di dati.
- # rappresenta l'enumerazione automatica nel nome (non rilevante per il domanda)
- Valori singoli o valori separati da virgola indica ciò che ti aspetti da questo.
- Meno nomi dei valori implicano l'assegnazione automatica del nome (non rilevante per la domanda)
Ho bisogno di estrarre i valori numerici dal lato sinistro dell'espressione e i nomi dal lato destro in modo da poter iterare per assegnare i nomi ai valori. Non so come affrontare questo compito, ho letto e ho cercato una soluzione, ma mi piacerebbe raggiungere una buona metodologia per questo caso.
Devo sostituire tutti gli spazi e le schede prima dell'elaborazione?
Dovrei usare regex solo per verificare la correttezza dell'ingresso o qualcosa di più?
Devo usare solo una semplice manipolazione delle stringhe? Sto usando Golang e le stringhe sono immutabili, la manipolazione delle stringhe implica allocazioni e molto codice (la velocità non è DAVVERO importante qui, ma mi piacerebbe trovare il modo corretto per risolverlo).
Dovrei scrivere un lexer e un parser per questo?