Nie powinieneś nazywać parsowaniem po zobaczeniu callSomething()
(zakładam, że miałeś na myśli callSomething
raczej niż doSomething
). Różnica między a
i callSomething
polega na tym, że jedna jest definicją metody, a druga jest wywołaniem metody.
Gdy zobaczysz nową definicję, będziesz chciał sprawdzić, czy możesz dodać tę definicję, więc:
- Sprawdź, czy funkcja nie istnieje jeszcze z tym samym podpisem
- Upewnij się, że deklaracja metody jest wykonywana we właściwym zakresie (tzn. Czy metody mogą być deklarowane w innych deklaracjach metod?)
Zakładając, że testy zostaną zaliczone, możesz dodać je do mapy i rozpocząć sprawdzanie zawartości tej metody.
Po znalezieniu takiego wywołania metody callSomething()
należy wykonać następujące kontrole:
- Czy
callSomething
istnieje na twojej mapie?
- Czy jest poprawnie wywoływany (liczba argumentów pasuje do znalezionego podpisu)?
- Czy argumenty są poprawne (jeśli używane są nazwy zmiennych, czy są zadeklarowane? Czy można uzyskać do nich dostęp w tym zakresie?)?
- Czy callCoś można wywołać z miejsca, w którym się znajdujesz (czy to prywatne, publiczne, chronione?)?
Jeśli uznasz, że callSomething()
jest to w porządku, to w tym momencie to, co chcesz zrobić, naprawdę zależy od tego, jak chcesz do tego podejść. Ściśle mówiąc, kiedy już wiesz, że takie wywołanie jest w tej chwili w porządku, możesz zapisać nazwę metody i argumenty bez wchodzenia w dalsze szczegóły. Po uruchomieniu programu wywołujesz metodę z argumentami, które powinieneś mieć w czasie wykonywania.
Jeśli chcesz pójść dalej, możesz zapisać nie tylko ciąg znaków, ale link do faktycznej metody. Byłoby to bardziej wydajne, ale jeśli musisz zarządzać pamięcią, może to być mylące. Radziłbym najpierw po prostu trzymać się sznurka. Później możesz spróbować zoptymalizować.
Zauważ, że wszystko to zakłada, że leksykowałeś swój program, co oznacza, że rozpoznałeś wszystkie tokeny w swoim programie i wiesz, czym one są . Nie oznacza to, że wiesz, czy mają one jeszcze sens razem, co jest fazą analizy. Jeśli jeszcze nie wiesz, jakie są tokeny, sugeruję, abyś najpierw skupił się na uzyskaniu tych informacji.
Mam nadzieję że to pomogło! Witamy w Programmers SE!