Парсер для языка программирования
Мне необходимо написать парсер для языка программирования с досточно сложным синтаксисом. (Ориентиры: Ruby, Smalltalk). Необходимо разбирать операторы с различным приоритетом.
Как это сделать проще и удобнее? Скорость не так важна.
UPD:
Список фич синтаксиса, которые придётся разбирать:
- Необязательность скобок при вызове метода.
- Операторы с приоритетами (Приоритеты жёстко заданы заранее)
- Используются отступы для обозначения аргументов оператора, перенесённых на новую строку.
Пример кода, который необходимо распарсить: здесь
UPD: Книга дракона ещё не прочтена, но уже в пути.
UPD: Ещё вопрос, насколько это будет плохо, если мой парсер будет разбирать код лишь загрузив весь исходник в память? Для языка программирования это фатально?