Checked out the code, tried to build following the instructions, failed with errors:
[ 61%] Built target ExpressionParser
[ 66%] Building CXX object Examples/MatrixExample/CMakeFiles/MatrixExample.dir/main.cpp.o
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/Examples/MatrixExample/main.cpp: In function ‘int main(int, char**)’:
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/Examples/MatrixExample/main.cpp:20:68: error: no matching function for call to ‘ExpressionParser::ExpressionParser(std::string&, std::map<std::__cxx11::basic_string<char>, std::shared_ptr<Node> >&)’
20 | ExpressionParser expression_parser(expression_str, node_map);
| ^
In file included from /home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/Examples/MatrixExample/main.cpp:5:
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_parser.hpp:55:5: note: candidate: ‘ExpressionParser::ExpressionParser(const string&, const std::map<std::__cxx11::basic_string<char>, std::variant<std::shared_ptr<Node>, Matrix> >&, const std::shared_ptr<ExpressionParserContext>&)’
55 | ExpressionParser(std::string const &expression_str, std::map<std::string, std::variant<Scalar, Matrix>> const &node_map = { }, std::shared_ptr<ExpressionParserContext> const &parser_context = ExpressionParserContext::default_context);
| ^~~~~~~~~~~~~~~~
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_parser.hpp:55:116: note: no known conversion for argument 2 from ‘std::map<std::__cxx11::basic_string<char>, std::shared_ptr<Node> >’ to ‘const std::map<std::__cxx11::basic_string<char>, std::variant<std::shared_ptr<Node>, Matrix> >&’
55 | ExpressionParser(std::string const &expression_str, std::map<std::string, std::variant<Scalar, Matrix>> const &node_map = { }, std::shared_ptr<ExpressionParserContext> const &parser_context = ExpressionParserContext::default_context);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
In file included from /home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/Examples/MatrixExample/main.cpp:5:
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_parser.hpp:52:5: note: candidate: ‘ExpressionParser::ExpressionParser(const string&, const std::map<std::__cxx11::basic_string<char>, std::variant<std::shared_ptr<Node>, Matrix> >&, const std::shared_ptr<ExpressionParserContext>&, const bool&)’
52 | ExpressionParser(std::string const &expression_str, std::map<std::string, std::variant<Scalar, Matrix>> const &node_map, std::shared_ptr<ExpressionParserContext> const &parser_context, bool const &clean_and_verify);
| ^~~~~~~~~~~~~~~~
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_parser.hpp:52:5: note: candidate expects 4 arguments, 2 provided
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_parser.hpp:44:7: note: candidate: ‘ExpressionParser::ExpressionParser(const ExpressionParser&)’
44 | class ExpressionParser
| ^~~~~~~~~~~~~~~~
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_parser.hpp:44:7: note: candidate expects 1 argument, 2 provided
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_parser.hpp:44:7: note: candidate: ‘ExpressionParser::ExpressionParser(ExpressionParser&&)’
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_parser.hpp:44:7: note: candidate expects 1 argument, 2 provided
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/Examples/MatrixExample/main.cpp:22:68: error: conversion from ‘std::variant<std::shared_ptr<Node>, Matrix>’ to non-scalar type ‘std::shared_ptr<Node>’ requested
22 | std::shared_ptr<Node> matrix_node = expression_parser.Parse();
| ~~~~~~~~~~~~~~~~~~~~~~~^~
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/Examples/MatrixExample/main.cpp:31:22: error: ‘ExpressionVisualizer’ was not declared in this scope; did you mean ‘ExpressionSimplifier’?
31 | std::cout << ExpressionVisualizer(matrix_node, node_map) << std::endl << std::endl;
| ^~~~~~~~~~~~~~~~~~~~
| ExpressionSimplifier
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/Examples/MatrixExample/main.cpp:34:62: error: no matching function for call to ‘ExpressionComposer::ExpressionComposer(std::shared_ptr<Node>&, std::map<std::__cxx11::basic_string<char>, std::shared_ptr<Node> >&)’
34 | std::cout << ExpressionComposer(matrix_node, node_map) << std::endl << std::endl;
| ^
In file included from /home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/Examples/MatrixExample/main.cpp:6:
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_composer.hpp:24:5: note: candidate: ‘ExpressionComposer::ExpressionComposer(const std::variant<std::shared_ptr<Node>, Matrix>&, const std::map<std::__cxx11::basic_string<char>, std::variant<std::shared_ptr<Node>, Matrix> >&)’
24 | ExpressionComposer(std::variant<Scalar, Matrix> const &node_variant, std::map<std::string, std::variant<Scalar, Matrix>> const &node_map = { });
| ^~~~~~~~~~~~~~~~~~
In file included from /home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/Examples/MatrixExample/main.cpp:6:
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_composer.hpp:24:133: note: no known conversion for argument 2 from ‘std::map<std::__cxx11::basic_string<char>, std::shared_ptr<Node> >’ to ‘const std::map<std::__cxx11::basic_string<char>, std::variant<std::shared_ptr<Node>, Matrix> >&’
24 | ExpressionComposer(std::variant<Scalar, Matrix> const &node_variant, std::map<std::string, std::variant<Scalar, Matrix>> const &node_map = { });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
In file included from /home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/Examples/MatrixExample/main.cpp:6:
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_composer.hpp:17:7: note: candidate: ‘ExpressionComposer::ExpressionComposer(const ExpressionComposer&)’
17 | class ExpressionComposer
| ^~~~~~~~~~~~~~~~~~
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_composer.hpp:17:7: note: candidate expects 1 argument, 2 provided
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_composer.hpp:17:7: note: candidate: ‘ExpressionComposer::ExpressionComposer(ExpressionComposer&&)’
/home/menmonic/Workspace/personal/scratchpad/ParserExample/ExpressionParser/expression_composer.hpp:17:7: note: candidate expects 1 argument, 2 provided
make[2]: *** [Examples/MatrixExample/CMakeFiles/MatrixExample.dir/build.make:76: Examples/MatrixExample/CMakeFiles/MatrixExample.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:195: Examples/MatrixExample/CMakeFiles/MatrixExample.dir/all] Error 2
make: *** [Makefile:91: all] Error 2