Как выглядит метод accept () в коде для парсера?
Это грамматика:
E --> T + E | T
T --> F * T | F
F --> (E) | a
Я понимаю псевдокод по большей части, но мне нужно лучше понять его, чтобы написать собственный синтаксический анализатор.
Вот псевдокод, который дал мне мой профессор:
main(){
E
}
E(){
T
if (next == +){
accept +
E
}
}
T(){
F
if (next == *){
accept *
T
}
}
F(){
if (next == "("){
accept "("
E
accept ")"
else
accept a
}
Итак, я все понимаю, кроме того, что должен делать «принять». Я думаю, что он должен принять токен и затем увеличить его до следующего токена, но я могу ошибаться? Может кто-нибудь показать мне псевдокод для этого?