Основная идея 2,6 состоит в том, чтобы обеспечить миграционный путь к 3,0. Таким образом, можно использовать from __future__ import X
медленно миграция одной функции за один раз, пока Вы не закрепили всех их и можете переместиться в 3,0. Многие из этих 3,0 функций будут течь в 2,6 также, таким образом, можно будет сделать разрыв языка меньшим постепенно вместо того, чтобы иметь необходимость переместить все сразу.
На работе, мы планируем обновить от 2,5 до 2,6 сначала. Тогда мы начинаем активировать 3,0 опции медленно один модуль за один раз. В какой-то момент целое подразделение системы, вероятно, будет готово к 3.x.
единственная проблема библиотеки. Если библиотека никогда не перемещается, мы застреваем со старой библиотекой. Но я довольно уверен, что мы получим прекрасную альтернативу в установленный срок для той части.
С помощью ANTLR вы кодируете приоритет в правилах грамматики. Например:
expr: mult ('+' mult)* ;
mult: atom ('*' atom)* ;
atom: INT | '(' expr ')' ;
Это будет разбирать "1 + 2 * 3 + (4 * 5 + 6)" как "(1 + (2 * 3)) + ((4 * 5) + 6)"