From 765b8f9fb94dc831f3190222594ce04a486ded80 Mon Sep 17 00:00:00 2001 From: "Hong, Yang A" Date: Wed, 13 May 2020 16:37:57 +0000 Subject: [PATCH] literal API: remove HS_FLAG_MULTILINE flag support fixes github issue #237 --- doc/dev-reference/compilation.rst | 4 ++-- src/compiler/compiler.cpp | 11 +++++------ src/hs_compile.h | 4 +--- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/doc/dev-reference/compilation.rst b/doc/dev-reference/compilation.rst index e78552b40..205b7348b 100644 --- a/doc/dev-reference/compilation.rst +++ b/doc/dev-reference/compilation.rst @@ -110,8 +110,8 @@ Hyperscan needs to locate the end position of the input expression via clearly knowing each literal's length, not by simply identifying character ``\0`` of a string. -Supported flags: :c:member:`HS_FLAG_CASELESS`, :c:member:`HS_FLAG_MULTILINE`, -:c:member:`HS_FLAG_SINGLEMATCH`, :c:member:`HS_FLAG_SOM_LEFTMOST`. +Supported flags: :c:member:`HS_FLAG_CASELESS`, :c:member:`HS_FLAG_SINGLEMATCH`, +:c:member:`HS_FLAG_SOM_LEFTMOST`. .. note:: We don't support literal compilation API with :ref:`extparam`. And for runtime implementation, traditional runtime APIs can still be diff --git a/src/compiler/compiler.cpp b/src/compiler/compiler.cpp index de6909e76..666eefc9c 100644 --- a/src/compiler/compiler.cpp +++ b/src/compiler/compiler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019, Intel Corporation + * Copyright (c) 2015-2020, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -125,7 +125,7 @@ ParsedLitExpression::ParsedLitExpression(unsigned index_in, : expr(index_in, false, flags & HS_FLAG_SINGLEMATCH, false, false, SOM_NONE, report, 0, MAX_OFFSET, 0, 0, 0, false) { // For pure literal expression, below 'HS_FLAG_'s are unuseful: - // DOTALL/ALLOWEMPTY/UTF8/UCP/PREFILTER/COMBINATION/QUIET + // DOTALL/ALLOWEMPTY/UTF8/UCP/PREFILTER/COMBINATION/QUIET/MULTILINE if (flags & ~HS_FLAG_ALL) { DEBUG_PRINTF("Unrecognised flag, flags=%u.\n", flags); @@ -409,12 +409,11 @@ void addLitExpression(NG &ng, unsigned index, const char *expression, // filter out flags not supported by pure literal API. u64a not_supported = HS_FLAG_DOTALL | HS_FLAG_ALLOWEMPTY | HS_FLAG_UTF8 | HS_FLAG_UCP | HS_FLAG_PREFILTER | HS_FLAG_COMBINATION | - HS_FLAG_QUIET; + HS_FLAG_QUIET | HS_FLAG_MULTILINE; if (flags & not_supported) { - throw CompileError("Only HS_FLAG_CASELESS, HS_FLAG_MULTILINE, " - "HS_FLAG_SINGLEMATCH and HS_FLAG_SOM_LEFTMOST are " - "supported in literal API."); + throw CompileError("Only HS_FLAG_CASELESS, HS_FLAG_SINGLEMATCH and " + "HS_FLAG_SOM_LEFTMOST are supported in literal API."); } // This expression must be a pure literal, we can build ue2_literal diff --git a/src/hs_compile.h b/src/hs_compile.h index 8f48a7925..081d46387 100644 --- a/src/hs_compile.h +++ b/src/hs_compile.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019, Intel Corporation + * Copyright (c) 2015-2020, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -563,7 +563,6 @@ hs_error_t HS_CDECL hs_compile_ext_multi(const char *const *expressions, * be used by ORing them together. Compared to @ref hs_compile(), fewer * valid values are provided: * - HS_FLAG_CASELESS - Matching will be performed case-insensitively. - * - HS_FLAG_MULTILINE - `^` and `$` anchors match any newlines in data. * - HS_FLAG_SINGLEMATCH - Only one match will be generated for the * expression per stream. * - HS_FLAG_SOM_LEFTMOST - Report the leftmost start of match offset @@ -637,7 +636,6 @@ hs_error_t HS_CDECL hs_compile_lit(const char *expression, unsigned flags, * in place of an array will set the flags value for all patterns to zero. * Compared to @ref hs_compile_multi(), fewer valid values are provided: * - HS_FLAG_CASELESS - Matching will be performed case-insensitively. - * - HS_FLAG_MULTILINE - `^` and `$` anchors match any newlines in data. * - HS_FLAG_SINGLEMATCH - Only one match will be generated for the * expression per stream. * - HS_FLAG_SOM_LEFTMOST - Report the leftmost start of match offset