Если есть время, почитайте классику: «Алгоритмы + структуры данных = программы» Никлауса Вирта (легко гуглится). Там есть целая глава, посвящённая автоматическому разбору LR(1)-грамматики, и дан пример программы, делающей именно то, что вам нужно. (Теоретическую часть можно при первом чтении пропустить или быстро пробежать.)
Я учился писать парсеры по этой книге.
Обновление
Ох. Я перепутал LR(1) и LL(1). Если вам нужна именно LR(1)-грамматика, это гораздо сложнее. Тогда почитайте про lex/yacc (опять-таки, книги есть в интернете), эти утилиты работают с LALR(1), что является упрощённым вариантом LR(1). Если вам нужно написать подобные утилиты самому и поддерживать именно LR(1), придётся постараться.
И «быстро» разобраться с проблемой не получится. Потребуйте с заказчика много денег, это серьёзная задача. Если вы работаете за зарплату, потребуйте позицию сениора.