Я создал Script-Interpreter для .Net, используя Antlr. Он работает довольно хорошо, но синтаксические ошибки, которые он генерирует, ужасны. Библиотеку на ранней стадии разработки можно найти здесь, а используемая грамматика на основе этой грамматики ecma-Script.
Теперь большая проблема заключается в том, что когда у меня есть большой файл сценария и у меня есть определение объекта, которое говорит
obj = { var1 = "hello"
var2 = "world};
я бы ожидал сообщения «Ошибка синтаксиса в строке xyz», «ожидается». Но вместо этого я получаю список из сотен нежизнеспособных альтернатив в xyz для каждой последующей ошибки, вызванной моей отсутствующей запятой.
Есть ли способ получить одну ошибку, вызванную отсутствующей запятой? также было бы совершенно нормально, если бы он жаловался на неожиданный токен var2.