Boris Nagaev

Results 67 issues of Boris Nagaev

pire2hyperscan converts Pire pattern to Hyperscan pattern. It throws NHyperscan::TCompileException if the pattern can not be converted.

Fix the following warning: ``` '*((void*)& s +72)' may be used uninitialized in this function /multi.h:243:11: note: '*((void*)& s +72)' was declared here Scanner s; ```

This is needed to build Debian package using `dpkg-buildpackage` or `debuild`.

Other scanner types have this method. SlowScanner can implement it easily. I write template code parametrized with scanner type, in which I need `LettersCount`.

1. LongestSuffix [uses](https://github.com/yandex/pire/blob/f122306506c22f000f599e7030e8d12f2bc47ba4/pire/run.h#L306) Step. Step [calls](https://github.com/yandex/pire/blob/f122306506c22f000f599e7030e8d12f2bc47ba4/pire/run.h#L56) scanner.Next and scanner.TakeAction. 2. ShortestSuffix [uses](https://github.com/yandex/pire/blob/f122306506c22f000f599e7030e8d12f2bc47ba4/pire/run.h#L326) scanner.Next. Can both of them use same function?

``` cpp #include int main() { Pire::Lexer lexer("abc"); Pire::Scanner s1 = lexer.Parse().Compile(); Pire::Scanner s2 = lexer.Parse().Compile(); const char* text = "abc"; std::cout

1. There are two functions called `Matches`. - from `pire/run.h`: ``` cpp bool Matches(const Scanner& scanner, const char* begin, const char* end) { return Runner(scanner).Run(begin, end); } ``` - from...

This method is trivial to implement. It would return length of the pattern, which is useful information.

Github now has [Downloads](https://github.com/yandex/pire/downloads) and [Releases](https://github.com/yandex/pire/releases) as two separate entities. There are no links to Downloads from the main page of the repo. "Releaes" currently are simple snapshots of tags....