Лексический анализатор записан в JavaScript?

Порядок устанавливается SQL-сервером, единственная вещь, которую можно сделать, использовать системный SP (sp_settriggerorder) для установки, какой триггер будет стрелять сначала и который будет стрелять в последний раз.

установка Beyond первые и последние триггеры для увольнения Вы не можете изменить или сказать, который будет использовать SQL-сервер порядка. Поэтому Вы захотите создать свои триггеры, таким образом, они не будут полагаться, какой порядок они уволены. Даже если Вы определяете порядок, в который они стреляют сегодня, он может измениться завтра.

Эта информация основана на SQL-сервере 2000, однако я не верю действию 2005/2008 по-другому в этом отношении.

28
задан Phobis 1 December 2009 в 02:16
поделиться

6 ответов

Что-то вроде http://jscc.phorward-software.com/ , может быть?

JS / CC - первая доступная система разработки парсеров для JavaScript и ECMAScript - производные. Он был разработан как с целью создания продуктивной системы разработки компиляторов, так и с целью создания простой в использовании академической среды для людей, заинтересованных в том, как генерация таблицы синтаксического анализа выполняется в целом в восходящий синтаксический анализ.

Независимое от платформы программное обеспечение объединяет: основанный на регулярных выражениях лексический анализатор генератор , сопоставляющий отдельные токены из входного потока символов и LALR (1) генератор синтаксического анализатора , вычисляющий таблицы синтаксического анализа для данной спецификации контекстно-свободной грамматики и построение автономного работающего анализатора. Контекстно-свободная грамматика, передаваемая в JS / CC, определена на метаязыке на основе Backus-Naur-Form и позволяет оценивать вставку индивидуального семантического кода при сокращении правила.

JS Сам / CC полностью написан на ECMAScript , поэтому его можно выполнять множеством разных способов: как платформенно-независимый, основанный на браузере JavaScript, встроенный на веб-сайт, как хост-приложение Windows Script, как скомпилированный исполняемый файл JScript.NET, как интерпретируемое приложение Mozilla / Rhino или Mozilla / Spidermonkey или сценарий оболочки V8 в Windows, * nix, Linux и Mac OSX. Однако для продуктивного выполнения рекомендуется использовать версии для командной строки. Эти версии позволяют собрать полный компилятор из спецификации парсера JS / CC, который затем сохраняется в исходном файле JavaScript .js.

23
ответ дан 28 November 2019 в 03:11
поделиться

Если вы хотите создать парсеры JavaScript и генераторы кода, ознакомьтесь с реализацией MetaII в Javascript.

Учебное пособие по MetaII Compiler проведет вас через построение полностью автономной системы компилятора, которая может переводить себя и другие языки:

Учебное пособие по компилятору MetaII

Все это основано на удивительном небольшая 10-страничная техническая статья Вала Шорре: META II: язык написания синтаксически ориентированного компилятора от честного до бога 1964 года. Полное самоописание компилятора MetaII занимает около 30 строк! Я научился создавать компиляторы из этого еще в 1970 году. Наступает умопомрачительный момент, когда вы, наконец, понимаете, как компилятор может регенерировать себя ....

В учебном пособии объясняется, как это работает, и реализуется MetaII, компилирующий MetaII в JavaScript. Вы можете легко изменить этот компилятор, чтобы анализировать другие языки и создавать другой Javascript.

13
ответ дан 28 November 2019 в 03:11
поделиться

Для простых задач синтаксического анализа я очень люблю использовать вариант синтаксического анализатора Pratt's Top Down Operator Precedence . Хотя Пратт написал исходную статью, используя старый диалект Лиспа, одни и те же концепции можно легко использовать в большинстве языков. Фактически, Дуглас Крокфорд написал отличную статью о синтаксическом анализе приоритета операторов сверху вниз в JavaScript , что может быть именно тем, что вам нужно.

4
ответ дан 28 November 2019 в 03:11
поделиться

Я искал нечто подобное, в котором не было бы дыр в безопасности, и я наткнулся на два ресурса. Они не анализируют сценарий, а фактически запускают его в «безопасной» среде - чего нельзя гарантировать при использовании функции eval . Итак, я не знаю, именно то, что вы ищете, но взгляните:

  1. jsandbox - Песочница Javascript
  2. Google Caja - виртуальный iframe.
0
ответ дан 28 November 2019 в 03:11
поделиться

В зависимости от конструкции набора ' инструкций », вы можете использовать встроенную функцию Javascript eval , которая анализирует исходный код Javascript; вы можете написать простой переводчик для преобразования инструкций в код Javascript.

Кстати, будьте очень осторожны с дырами XSS.

1
ответ дан 28 November 2019 в 03:11
поделиться

если вам действительно нужен лексер, попробуйте prettify .

1
ответ дан 28 November 2019 в 03:11
поделиться
Другие вопросы по тегам:

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