112 узел в действительности не перемещается, но повторно оттягивается и дает иллюзию того, что он перемещен, подобно мультипликациям, дающим иллюзию непрерывности и движения. Однако, различие с мультипликацией состоит в том, что анимация не является прогнозирующей, а зависит от действия пользователя. Есть два компонента: рисунок и интерпретация действия пользователя, 1 £ empty_statement: local_constant_declaration "const” "type” constant_declarators ; declaration^statement: local_var iab le_dec lar at ion I local_constant__declaration statement_list::• (statement, ; :: Рис. 4.2.9. Разбор файла C# SPACE -space.symbol $ Также библиотека используется для визуализации графов ОП МГ (рис.4.2.12), с помощью которых тоже можно визуализировать деревья разбора, типы данных и многое другое. |
275 можно сделать с помощью программ lua, можно сделать и с помощью моделирования. t using System; Parse gtadc Step: 14460 Ф constructor body using System.Collections; SPACE-space, symbol ФЫоА-Ч.Г «MATCHCASEXIDELJTERALSXIDERE й O class.member.declaration class VordCountNoStorage *. HordCount A Parse Tree .•• • * methodjdedaration { £ «conjunction? «С method.header public HordCountNoStorage(stri I «disjunction? S Ф method .modifiers { О name sp ace. mem be i_ declarations Ф method .modifier "public ) ( i (namespace.member.declaration) ■return Jtype <■ namespace.member.declaration Ф type public TimeSpan DoCount{) i «dwjunction? “6 value.type ► 0 type.declaralion £ struct .type string line * null; & «conjunction? Ф type.name Hashtable wordTable • ne ■ «disjunction? ~ О namespao DateTlme startTime Dat class.declarat ion О cs.ide int wordCount 0; S «conjunction? й member .name while ((line stream.Re О class.body О qualified.identifier { S «conjunction? CS.ident . "DoCount" j foreach (string wo I «diejunction? Ф method.body < О class.membei.declar ations p ► jjordCount++; <) (ctass.membet.declar ation} class, member, declaration .................................... //Console,¥r & 6.9. Разбор файла C# Основная составная часть программы моделирования (рис.6.11) это модифицированная библиотека NAF , позволяющая всесторонне работать с графическими примитивами, придавая программе гибкость для создания логических, функциональных связей. Библиотека все о рисунке и модифицировании рисунков в функции пользовательского взаимодействия. Когда пользователь перемещает узел, то узел в действительности не перемещается, но повторно оттягивается и дает иллюзию того, что он перемещен, подобно мультипликациям, дающим иллюзию непрерывности и движения. Однако, различие с мультипликацией состоит в том, что анимация не является прогнозирующей, а зависит от 276 ч * действия пользователя. Есть два компонента: рисунок и интерпретация действия пользователя. > Ctf.CS Ф namespace jnemberjjedaratlon а using System; Ф type_declaration using System.Collections; Ф с lass-declaration О cs Jdent = “WordCountNoStorage" class VordCountNoStorage: WordCount Ф class J>ase { Ф classjtype Ф type_name Ф namespace_or„type„name i^Hr Ф cs Jdent "WordCount" Ф dass_body public TimeSpan DoCount() Ф class_member_dedarations < Ф c las S-member-declaration string line * null; Ф constructor-declaration Hashtable wordTable ■ nee Hashtable(); Ф constructor „modifiers DateTime startTime • DateTime. Now; Ф constructor_modifier "public int wordCount ■ 0; Ф constructor-declarator while ((line * stream.ReadLine()) !null) Ф cs Jdent = "WordCountNoStor ( iФ formaljjarameterJst ioreach (string word in regexSpllt.Split(l: Ф fixed-parameters < Ф fixed-parameter wordCount++; cs О type //Console.Writebine("Word; IO)*, wort Ф dassjype = " ) Ф rank_specifier: > Ф rank_spec stream.Close(); ф cs Jdent "ergs" f.Close (); Ф constructor Jnitializer DateTime endTime ■ DateTime.How; Ф argument Jist Ф argument return(endTime startTime); < > < I ... . . . . . L7J ' class_roember_declaration: [attributes] ( constant_declaration field_declaration I roethod_declaration property_declaration I event declaration Рис 6.10 Дерево разбора Таким образом, первая часть только использует библиотеку графического интерфейса устройств, в то время как вторая часть более сложна и требует организации элементов и интерпретации событий от нажатия мыши к изменениям рисунка. Также библиотека используется для визуализации графов ГС (рис.6.12), с помощью которых тоже можно визуализировать деревья разбора, типы данных и многое другое. С помощью механизма плагинов можно создавать свои элементы и включать их в проект, создавая таким образом целые библиотеки пакетов разработчика. В составе СПО разработан механизм подготовки полученных результатов работы для публикации. На основе библиотеки, написанной на С#, оператор |