Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Кроме того, самый важный для меня, порт Squeak Ometa допускает леворекурсивные правила.
От его наследия ШТЕПСЕЛЯ это получает отслеживание в обратном порядке и неограниченное предвидение. Memoization предыдущих результатов синтаксического анализа допускает линейные времена синтаксического анализа (почти все время (*)).
производство Высшего порядка позволяет тому легко осуществлять рефакторинг грамматику.
Данная статья - Packrat-парсеры Могут Поддерживать Левую рекурсию - объясняют леворекурсивные свойства.
(*) Раздел 5 из бумаги объясняет, что можно перенести сверхлинейные времена синтаксического анализа, но эта проблема не проявляет в практических грамматиках.
Это - метаязык, от того, что я могу сказать. Можно создать новые конструкции языка и создать DSLs; но самая востребованная вещь состоит в том, что можно разделить на подклассы из существующих синтаксических анализаторов для расширения языка. Это - то, что я могу помнить об этом, так или иначе.
я нашел, что это было интересно: http://www.moserware.com/2008/06/ometa-who-what-when-where-why.html