From c796275b6c0848e2d52660b5c99cb95130a6791b Mon Sep 17 00:00:00 2001 From: Alexander Delman Date: Mon, 6 Nov 2023 18:03:12 +0300 Subject: [PATCH] (#271) eps and conc Lexemes for bregex --- libs/Objects/src/AlgExpression.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/libs/Objects/src/AlgExpression.cpp b/libs/Objects/src/AlgExpression.cpp index 5f5eb3f7..552a7be2 100644 --- a/libs/Objects/src/AlgExpression.cpp +++ b/libs/Objects/src/AlgExpression.cpp @@ -321,20 +321,24 @@ vector AlgExpression::parse_string(string str) { // AlgExpression::Lexeme left lexemes.back().type == Lexeme::Type::symb || lexemes.back().type == Lexeme::Type::star || - lexemes.back().type == Lexeme::Type::parR) && + lexemes.back().type == Lexeme::Type::parR || + lexemes.back().type == Lexeme::Type::squareBrR || + lexemes.back().type == Lexeme::Type::ref) && ( // AlgExpression::Lexeme right - lexeme.type == Lexeme::Type::symb || lexeme.type == Lexeme::Type::parL)) { - + lexeme.type == Lexeme::Type::symb || lexeme.type == Lexeme::Type::parL || + lexeme.type == Lexeme::Type::squareBrL || lexeme.type == Lexeme::Type::ref)) { // We place . between lexemes.emplace_back(Lexeme::Type::conc); } if (!lexemes.empty() && - ((lexemes.back().type == Lexeme::Type::parL && - (lexeme.type == Lexeme::Type::parR || lexeme.type == Lexeme::Type::alt)) || - (lexemes.back().type == Lexeme::Type::alt && lexeme.type == Lexeme::Type::parR) || - (lexemes.back().type == Lexeme::Type::alt && lexeme.type == Lexeme::Type::alt))) { + ((lexeme.type == Lexeme::Type::alt && + (lexemes.back().type == Lexeme::Type::parL || + lexemes.back().type == Lexeme::Type::squareBrL)) || + (lexemes.back().type == Lexeme::Type::alt && + (lexeme.type == Lexeme::Type::parR || lexeme.type == Lexeme::Type::squareBrR || + lexeme.type == Lexeme::Type::alt)))) { // We place eps between lexemes.emplace_back(Lexeme::Type::eps); }