mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-10-15 01:54:43 +00:00
Formatted src/services/xeger
This commit is contained in:
@@ -3,14 +3,14 @@
|
|||||||
* @brief Visitor that walks a regex AST and emits a random matching string.
|
* @brief Visitor that walks a regex AST and emits a random matching string.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "services/xeger/xeger_internal.h"
|
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
#include <random>
|
#include <random>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include "services/xeger/xeger_internal.h"
|
||||||
|
|
||||||
namespace xeger_internal {
|
namespace xeger_internal {
|
||||||
|
|
||||||
XegerGenerator::XegerGenerator(std::mt19937& rng, const int unbounded_cap)
|
XegerGenerator::XegerGenerator(std::mt19937& rng, const int unbounded_cap)
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
* @brief Recursive-descent parser that turns a regex pattern into an AST.
|
* @brief Recursive-descent parser that turns a regex pattern into an AST.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "services/xeger/xeger_internal.h"
|
|
||||||
|
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
#include <format>
|
#include <format>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
@@ -14,6 +12,8 @@
|
|||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "services/xeger/xeger_internal.h"
|
||||||
|
|
||||||
namespace xeger_internal {
|
namespace xeger_internal {
|
||||||
|
|
||||||
Parser::Parser(std::string_view pattern) : src_(StripAnchors(pattern)) {}
|
Parser::Parser(std::string_view pattern) : src_(StripAnchors(pattern)) {}
|
||||||
@@ -168,7 +168,8 @@ NodePtr Parser::ParseAtom() {
|
|||||||
// here (nothing back-references a group), so it's treated exactly
|
// here (nothing back-references a group), so it's treated exactly
|
||||||
// like a plain group once the "?:" marker is consumed.
|
// like a plain group once the "?:" marker is consumed.
|
||||||
if (!AtEnd() && Peek() == kNonCapturingMarker) {
|
if (!AtEnd() && Peek() == kNonCapturingMarker) {
|
||||||
if (pos_ + 1 < src_.size() && src_[pos_ + 1] == kNonCapturingColon) {
|
if (pos_ + 1 < src_.size() &&
|
||||||
|
src_[pos_ + 1] == kNonCapturingColon) {
|
||||||
pos_ += 2;
|
pos_ += 2;
|
||||||
} else {
|
} else {
|
||||||
throw std::runtime_error(std::format(
|
throw std::runtime_error(std::format(
|
||||||
@@ -231,11 +232,11 @@ NodePtr Parser::ParseEscape() {
|
|||||||
return MakeClass({{'a', 'z'}, {'A', 'Z'}, {'0', '9'}, {'_', '_'}},
|
return MakeClass({{'a', 'z'}, {'A', 'Z'}, {'0', '9'}, {'_', '_'}},
|
||||||
true);
|
true);
|
||||||
case 's':
|
case 's':
|
||||||
return MakeClass({{' ', ' '}, {'\t', '\t'}, {'\n', '\n'}, {'\r', '\r'}},
|
return MakeClass(
|
||||||
false);
|
{{' ', ' '}, {'\t', '\t'}, {'\n', '\n'}, {'\r', '\r'}}, false);
|
||||||
case 'S':
|
case 'S':
|
||||||
return MakeClass({{' ', ' '}, {'\t', '\t'}, {'\n', '\n'}, {'\r', '\r'}},
|
return MakeClass(
|
||||||
true);
|
{{' ', ' '}, {'\t', '\t'}, {'\n', '\n'}, {'\r', '\r'}}, true);
|
||||||
case 'n':
|
case 'n':
|
||||||
return std::make_unique<Literal>('\n');
|
return std::make_unique<Literal>('\n');
|
||||||
case 't':
|
case 't':
|
||||||
|
|||||||
Reference in New Issue
Block a user