Skip to content

Lab_1#1

Open
SHISH82 wants to merge 6 commits into
mainfrom
Lab_1
Open

Lab_1#1
SHISH82 wants to merge 6 commits into
mainfrom
Lab_1

Conversation

@SHISH82

@SHISH82 SHISH82 commented Nov 1, 2025

Copy link
Copy Markdown
Owner

No description provided.

@azya0

azya0 commented Nov 22, 2025

Copy link
Copy Markdown
image

Не скомпилировалось

Когда/если исправите, пришлите новое письмо мне на почту

@azya0

azya0 commented Nov 25, 2025

Copy link
Copy Markdown

Ваш код было физически больно тестировать. Я не понимаю, почему вы выбрали способ ввода, при котором одно нажатие на кнопку DELETE приводит к удалению строки до пробела, а фичи shell'a, такие как буфер прошлых команд становятся недоступными.

Теперь к архитектуре:

OperatorTable::OperatorTable() {
    tbl.emplace("+", OperatorInfo{10, false, 2, [](double a,double b){return a+b;}, {}});
    tbl.emplace("-", OperatorInfo{10, false, 2, [](double a,double b){return a-b;}, {}});
    tbl.emplace("*", OperatorInfo{20, false, 2, [](double a,double b){return a*b;}, {}});
    tbl.emplace("/", OperatorInfo{20, false, 2, [](double a,double b){ if (b==0.0) throw std::runtime_error("Деление на ноль"); return a/b; }, {}});
    tbl.emplace("^", OperatorInfo{30, true , 2, [](double a,double b){return std::pow(a,b);}, {}});
    tbl.emplace("u-",OperatorInfo{40, true , 1, {}, [](double x){return -x;}});
    tbl.emplace("u+",OperatorInfo{40, true , 1, {}, [](double x){return x;}});
}

Что это? Вы зачем примитивные операции захардкодили? Почему они не в .dll?

Функцию std::vector<Token> RpnCompiler::compile(const std::vector<Token>& tokens) вообще оценивать не буду. Я просто не могу прочитать, что там происходит:

case TokenType::LeftParen:
                ops.push_back(tok); prev = tok; break;
case TokenType::Number:
                out.push_back(tok); prev = tok; break;
            case TokenType::Function:
                ops.push_back(tok); prev = tok; break;

Это кошмар, а не архитектура

16 баллов

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants