|
|||||||
To Do
Время создания: 29.09.2011 02:42
Раздел: Development - UNEX
Запись: xintrea/mytetra_db_rarrugas/master/base/1317256939c59g57wev7/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Сделать инициализацию дифф.картины из Image ----------------------------------------------------- Сделать расчет zmat->xyz ----------------------------------------------------- Начать использовать стек execution scope. Это даст возможность правильно обрабатывать исключения: если исключение возникло в коде, где нет обработчика, то нужно разматывать стек до тех пор (выходить во внешние функции), пока не будет найден обработчик. Похоже что это автоматически у меня делается и без стека. Надо проверять. Возможно, нужно использовать стек для контроля локальных переменных. Если переменная не найдена в текущем коде=объекте, то ищем переменную в коде уровнем выше. ----------------------------------------------------- CMakeLists.txt нужно поправить чтобы grammar.y и lexer.l явно зависели от моих хидеров (unex_parser.h) и при компиляции перезапускался Бизон и Флекс автоматически. ----------------------------------------------------- При вызове методов и функций в unex_ast_traverse() нужно проверять, являются ли они публичными и только тогда их вызывать. ----------------------------------------------------- Закончить реализацию бинарных операций для встроенных типов: +, -, *, / и т.д. Закончить реализацию бинарных операций с присвоением вроде += (уже кое-что сделано). ----------------------------------------------------- Блоки в UNEX надо сделать похожими на Руби! Надо ввесли понятие "контекста исполнения" для Юнекс. Начинает работать функция или метод - контекст исполнения -- этот метод или функция. Для блоков важно, что они выполняются в контексте вызывающей их функции! Т.е. конструкции return и super выполняются для вызывающей функции, а не для блока! Нужно придумать команду, типа "insert func(var1,var2,var3)", чтобы встраивать блоки в контекст текущей функции. Что-то типа yield в Ruby При этом, надо обязательно обратить внимание на конструкции типа begin ... ensure ..., чтобы например return не сразу выводил из функции, а давал возможность выполнять кусок в ensure! Читать статью: http://habrahabr.ru/blogs/ruby/86882/ ---------------------------------------------------- Сделать raise: ruby> raise "test error" test error ruby> begin | raise "test2" | rescue | print "An error occurred: ",$!, "\n" | end An error occurred: test2 nil ----------------------------------------------------- Сделать countinue как в PHP,т.е. внешние циклы можно перезапускать. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|