Il problema dell'interpetrazione dei comandi è senz'altro un campo esteso e complesso per comprimerlo in un post di un forum , comunque cerchero' di darti almeno uno spunto .
Supposto che il tuo file sia formato nel modo seguente:
codice:
comando1 var1,..,varm
comando2 var1,..,varl
.....................
comandon var1,..,varp
mediante un linguaggio C-like il cuore dell'interprete avrà un aspetto simile al seguente:
codice:
while ((!EOF) && (!Error)) // leggi tutto il file
{
leggi_riga() // leggi la riga del file
estrai_comando() // estrai il comando dalla riga
switch (comando) // attiva la procedura specifica adatta
{
case 'comando1'
com1_proc();
break;
case 'comando2'
com2_proc();
break;
.................
case 'comandon'
comn_proc();
break;
default
error();
break;
}
}
dove EOF è un flag di fine file ed Error è una variabile d'errore .
Ogni procedura comx _proc() si incaricherà di leggere i parametri dello specifico comando , ossia , sapra' quanti parametri il comando accetta in ingresso , ne verifichera' la correttezza , e nel caso corretto lo eseguirà oppure attiverà una procedura di errore .
codice:
int comx_proc();
{
int npar,i;
npar=get_num_par(); // legge da una tabella il numero dei parametri
while ((i<npar) && (!Error))
{
read_par() // legge i parametri del comando
if verify_par() // ne verifica la correttezza
return error(); // skip dal ciclo e ritorna l'errore
i++;
}
execute_com() // esegue lo specifico comando
return 0;
}
Dovrai quindi crearti un bel po di strutture , quali la tabella dei comandi con i relativi campi , quella degli errori e altre , che in questa sede , lungi dall'essere esaustiva per quanto riguarda la complessità del discorso , non sono chiaramente emerse , ed inoltre scriverti per ogni comando la particolare procedura di esecuzione .
Spero di averti fatto un po di chiarezza riguardo l'argomento . Buon lavoro