2015-02-28 6 views
0

Я пытаюсь выполнить генерацию кода следующим образом: представление определено в разметке XML, теги относятся к компонентам, которые являются частью библиотеки, которая импортирует dart:html.Могу ли я отражать HTML-библиотеки в автономной Dart VM?

В идеале я хотел бы запустить скрипт vm (т. Е. Через трансформатор), который анализирует разметку до инструкций кода.

Отражения используются для частичного проверки XML и обнаруживать любые необходимые связывания, например <DataGrid id='grid' dataProvider='data' />

Отражения бы проверить, что DataProvider сеттер существует и что данные на самом деле правильного типа. Если данные наблюдаемы, он также генерирует код, который grid.dataProvider привязан к данным через прослушиватели.

Все это отлично работает, но, к сожалению, только когда я запускаю скрипт в браузере, это не идея.

Нижняя линия, можно ли достичь через автономную виртуальную машину? Что-то вроде mirrors.reflectLibrary(String uri), без указания строки импорта?

ответ

0

Я не понимаю, что вам нужно для размышлений, но я предполагаю, что вы ищете https://pub.dartlang.org/packages/html5lib, https://pub.dartlang.org/packages/html5plus или один из пакетов xml, доступных на pub.dartlang.org.
Вы не можете импортировать dart:html в приложения командной строки, и вы не можете отразить код, который не импортируется.
Я видел исходные зеркала, упомянутые несколько раз, но так и не узнал, что это такое, но это похоже на то, что вы ищете, может быть, кто-то еще знает больше. Другим вариантом работы с исходным кодом является анализатор. Он создает AST из источника и позволяет вам проверять результат.

+1

Возможно, стоит упомянуть, что html5lib предназначен для api, совместимого с dart: html. Но это не полный набор функций, например, селектора css довольно простые. –