Как я реализую сканер с двумя передачами с помощью Flex?

Вы также можете установить часовой пояс по умолчанию в своем коде, используя следующий код.

TimeZone.setDefault(TimeZone.getTimeZone("UTC"));

To Your

 TimeZone.setDefault(TimeZone.getTimeZone("Europe/Sofia"));
8
задан Brian Tompsett - 汤莱恩 22 June 2016 в 08:37
поделиться

2 ответа

Вы хотите посмотреть на условия запуска. Например:

"<?"            { BEGIN (PHP); }
<PHP>[a-zA-Z]*  { return PHP_TOKEN; }
<PHP>">?"       { BEGIN (0); }
[a-zA-Z]*       { return HTML_TOKEN; }

Вы начинаетесь в состоянии 0, используете НАЧАТЬ макрос для изменения состояний. Для соответствия РЕ только в то время как в конкретном состоянии снабдите префиксом РЕ имя состояния, окруженное угловыми скобками.

В примере выше, "PHP" является состоянием. "PHP_TOKEN" и "HTML_TOKEN" _ %token_s определены Вашим yacc файлом.

7
ответ дан 5 December 2019 в 19:04
поделиться

PHP не дифференцируется между сканированием и Разметкой. Это просто производит для буферизации когда в режиме Markup, и затем переключается на парсинг когда в режиме кода. Вам не нужны два сканера передачи, и можно сделать это только с единственным лексическим анализатором гибкого провода.

Если Вы интересуетесь тем, как сам PHP работает, загрузите источник (попробуйте источник PHP4, который намного легче понять). То, на что Вы хотите посмотреть, находится в Каталоге Зенда, zend_language_scanner.l.

Записав что-то подобное самостоятельно, я действительно рекомендовал бы заново продумать движение Flex и маршрута Бизона, и пошел бы с чем-то современным как Antlr. Это намного легче, легче понять (макросы, используемые в грамматике закона, становятся очень сбивающими с толку и твердыми читать), и это имеет созданный в отладчике (AntlrWorks), таким образом, Вы не должны проводить часы, смотря на 3 файла отладки Meg. Это также поддерживает много языков (Java, c#, C, Python, Actionscript) и имеет превосходную книгу и очень хороший веб-сайт, который должен смочь разбудить Вас и работающий в мгновение ока.

2
ответ дан 5 December 2019 в 19:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: