1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright 2017 Intel Corporation, 2022 IBM Corp. 3 4 #pragma once 5 6 #include <optional> 7 #include <string> 8 #include <vector> 9 10 namespace expression 11 { 12 enum class Operation 13 { 14 addition, 15 division, 16 multiplication, 17 subtraction, 18 modulo, 19 }; 20 21 std::optional<Operation> parseOperation(const std::string& op); 22 int evaluate(int a, Operation op, int b); 23 int evaluate(int substitute, std::vector<std::string>::iterator curr, 24 std::vector<std::string>::iterator& end); 25 } // namespace expression 26