diff --git a/examples/README.md b/examples/README.md index e5e8c766..ed00dd7e 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,9 +1,12 @@ # Examples -There are two example programs in this directory, `buffer-parser` and +The first two example programs in this directory are `buffer-parser` and `reader-parser` corresponding to the [two API styles][1]. They demonstrate parsing a log file and printing out the timestamp and log-level of each message, -as well as any multiline log messages. +as well as any multiline log messages. + +The third example is `intersect-test` which demonstrates the result of taking +the intersection between a schema DFA and a search query DFA. ## Building @@ -24,6 +27,7 @@ The example programs can be run as follows: ```shell ./examples/build/buffer-parser ./examples/schema.txt log.txt ./examples/build/reader-parser ./examples/schema.txt log.txt +./examples/build/intersect-test ``` where: diff --git a/examples/intersect-test.cpp b/examples/intersect-test.cpp index 933f708a..9b22dbd1 100644 --- a/examples/intersect-test.cpp +++ b/examples/intersect-test.cpp @@ -29,7 +29,7 @@ auto get_intersect_for_query( processed_search_string.push_back(c); } log_surgeon::Schema schema; - schema.add_variable("search", processed_search_string, -1); + schema.add_variable(string("search:") + processed_search_string, -1); RegexNFA nfa; auto schema_ast = schema.release_schema_ast_ptr(); for (unique_ptr const& parser_ast : schema_ast->m_schema_vars) { @@ -51,20 +51,20 @@ auto main() -> int { log_surgeon::Schema schema; if (0 == i) { std::cout << "--Schema1--" << std::endl; - schema.add_variable("int", "\\-{0,1}[0-9]+", -1); - schema.add_variable("float", "\\-{0,1}[0-9]+\\.[0-9]+", -1); - schema.add_variable("hex", "[a-fA-F]+", -1); - schema.add_variable("hasNumber", ".*\\d.*", -1); - schema.add_variable("equals", ".*=.*[a-zA-Z0-9].*", -1); - schema.add_variable("logLevel", "(INFO)|(DEBUG)|(WARN)|(ERROR)|(TRACE)|(FATAL)", -1); + schema.add_variable("int:\\-{0,1}[0-9]+", -1); + schema.add_variable("float:\\-{0,1}[0-9]+\\.[0-9]+", -1); + schema.add_variable("hex:[a-fA-F]+", -1); + schema.add_variable("hasNumber:.*\\d.*", -1); + schema.add_variable("equals:.*=.*[a-zA-Z0-9].*", -1); + schema.add_variable("logLevel:(INFO)|(DEBUG)|(WARN)|(ERROR)|(TRACE)|(FATAL)", -1); } else { std::cout << "--Schema2--" << std::endl; - schema.add_variable("v1", "1", -1); - schema.add_variable("v2", "2", -1); - schema.add_variable("v3", "3", -1); - schema.add_variable("v4", "abc12", -1); - schema.add_variable("v5", "23def", -1); - schema.add_variable("v6", "123", -1); + schema.add_variable("v1:1", -1); + schema.add_variable("v2:2", -1); + schema.add_variable("v3:3", -1); + schema.add_variable("v4:abc12", -1); + schema.add_variable("v5:23def", -1); + schema.add_variable("v6:123", -1); } std::map m_id_symbol; RegexNFA nfa;