Sto lentamente creando un semplice linguaggio di programmazione (un po 'come Lua).
L'interprete ha 2 metodi importanti, exec
e evaluate
.
exec
legge i token 1 per 1 e fa cose come dice come creare nuove variabili, ecc.
evaluate
fondamentalmente interpreta un po 'diversamente.
Comprende ==
, nuovi numeri ( 5.3
), +-*/^%
e nuove stringhe con ""
.
Comprende anche le variabili e ne utilizza il valore.
Alla fine di evaluate
, restituisce un valore per exec
da utilizzare.
Un buco di design gigantesco in questo interprete è il fatto che non puoi creare nuove stringhe in exec
senza creare una variabile.
Significato:
string a = "some string";
a.someStringMethod();
Funziona, ma questo:
"some string".someStringMethod();
no.
Questo significa anche che gli array multidimensionali non funzionano, anche se prevedo di usare .
invece di [
e ]
.
Se continui a non capire come l'interprete in questo momento è la pagina GitHub su di esso:
link
Quindi la domanda generale è: come potrei unire questi due metodi?