Non dovresti chiamare l'analisi dopo aver visto callSomething()
(presumo tu intendessi callSomething
piuttosto che doSomething
). La differenza tra a
e callSomething
è che una è una definizione di metodo mentre l'altra è una chiamata di metodo.
Quando vedi una nuova definizione, ti consigliamo di eseguire controlli correlati per assicurarti di poter aggiungere la definizione, quindi:
- Verifica se la funzione non esiste già con la stessa firma
- Assicurati che la dichiarazione del metodo sia eseguita nello scope appropriato (cioè i metodi possono essere dichiarati all'interno di altre dichiarazioni di metodo?)
Supponendo che questi controlli superino, puoi aggiungerlo alla tua mappa e iniziare a controllare il contenuto di quel metodo.
Quando trovi una chiamata al metodo come callSomething()
, dovresti eseguire i seguenti controlli:
- Esiste
callSomething
nella mappa?
- Viene chiamato correttamente (il numero di argomenti corrisponde alla firma che hai trovato)?
- Gli argomenti sono validi (se i nomi delle variabili sono usati, sono dichiarati? possono essere raggiunti in questo ambito?)?
- È possibile chiamare Qualcosa da cui si chiama (è privato, pubblico, protetto?)?
Se trovi che callSomething()
va bene, allora a questo punto ciò che vorresti fare in realtà dipende da come desideri affrontarlo. A rigor di termini, una volta che sai che una tale chiamata è a posto a questo punto, puoi solo salvare il nome del metodo e gli argomenti senza entrare in ulteriori dettagli. Quando esegui il tuo programma, invocherai il metodo con gli argomenti che dovresti avere in fase di runtime.
Se vuoi andare oltre, potresti salvare non solo la stringa ma un link al metodo attuale. Questo sarebbe più efficiente, ma se devi gestire la memoria, può diventare confuso. Ti consiglierei di tenere semplicemente la corda all'inizio. Più tardi puoi provare a ottimizzare.
Si noti che questo è tutto presupponendo che tu abbia scritto il tuo programma, il che significa che hai riconosciuto tutti i token nel tuo programma e sai cosa sono . Questo non vuol dire che tu sai se hanno ancora un senso insieme, che è la fase di analisi. Se non sai ancora quali sono i token, ti suggerisco di concentrarti prima sull'invio di tali informazioni.
Spero che questo aiuti! Benvenuto in Programmers SE!