дерево разбора строится в ЛЮБОЙ распознающей грамматике для ЛЮБОГО языка контестно-свободного языка во время синтаксического анализа. Для контекстно-зависимых языков это тоже делается - но там через декомпозицию МП-автоматов ( двухуровневые грамматики и т.д. )
Почему вас переклинило на 48 , а не на 36 или 12 или 9 или 7 ? Правда 48 = 7*7 - 1.
В поинципе все ваши 48 чего-то там можно было бы даже считать терминальным алфавитом , из которого в вашей системе строятся "слова". Но поскольку каждый из ваших 48 элементов может в "слово" входить только один раз - то этот элемент логичнее считать "аттрибутом" ( свойством ) чего-то , которое в этом случае не является словом.