Может кто объяснить чем отличаются терминалы не терминалы токены и символы
Терминал это минимальное значение в программе — литералы, ключевые слова Нетерминалы — правила грамматики конкретные — expressions, statements, и т. п.
Вообще, rule - это некоторое правило, которое выполняет виртуальная машина, а нетерминал - это символ. То есть, вы про себя говорите "здрасте", когда читаете слово "здравствуйте" в книге. Вот примерно так они и соотносятся.