Написал на асм небольшую программу сохранения всех нажатых клавиш и мониторнга запуска программ. Теперь хотелось бы узнать есть ли доступные реализации библиотек регулярных выражений в асм. Слишком огромные текстовые данные получаются. Кроме как использование регулярных выражений в голову больше ничего не лезет. Я заранее извиняюсь, если эта тема уже была в форуме.
Тоже раньше интересовался этой темой, походу ничего нет, наверное проще будет на ЯВУ заюзать готовый компонент, написать несколько экспортируемых функций с нужными параметрами и собрать из этого всего dll.
Но какие тогда будут размеры.... По крайней мере на ЯВУ реализация в Boost есть. Других языков кроме С/С++ увы не знаю... Я тут просматриваю python прикрутить к С. И скомпилить в dll, а потом выдрать код... Где то здесь я статью видел... Надо порробовать.
RegExp можно использовать в скриптах (JS, VB), значит, можно достать из интерфейсов и использовать в других языках.
Смотри TypeLib. В принципе, разобраться не сложно - написать пару скриптов для понимания работы регекспа в скриптах и использовать движок через СОМ. Вот кусок typelib, синтаксис Delphi. Код (Text): Dispatch RegExpObj; GUID = {3EEF9758-35FC-11D1-8CE4-00C04FC2B090}; index: Variant; input: Variant; lastIndex: Variant; Dispatch RegExpInstance; GUID = {3EEF9758-35FC-11D1-8CE4-00C04FC2B099}; source: ^StringInstance; global: Variant; ignoreCase: Variant; multiline: Variant; lastIndex: Variant; function toString: ^StringInstance; stdcall; function toLocaleString: ^StringInstance; stdcall; function hasOwnProperty(out propertyName: Variant): Variant; stdcall; function propertyIsEnumerable(out propertyName: Variant): Variant; stdcall; function isPrototypeOf(out obj: Variant): Variant; stdcall; function exec(out String: Variant): ^ArrayInstance; stdcall;
С таким же успехом можно и /Fa в сях включить. Всё же я думаю, что если не реализовать самому регулярные выражения (можно переписать, например, из сорцов MS (re_mi.c - machine independent regular expression compiler), то проще использовать их из СОМ.