четверг, 24 ноября 2011 г.

ANTLR и java.lang.OutOfMemoryError

Если при разработке парсера с помощью ANTLR у вас появилась ошибка java.lang.OutOfMemoryError, то проверьте, нет ли у вас "пустых" правил. То есть таких правил, которые порождают пустые строки. Например, можно сделать ошибку в часто встречаемом правиле для пробелов и табуляций:

WS: (' ' | '\t')*        { $channel = HIDDEN; };