mirror of
https://github.com/lisk77/lambda.git
synced 2025-10-24 02:08:49 +00:00
14 lines
618 B
C++
14 lines
618 B
C++
#ifndef EVALUATOR_HPP
|
|
#define EVALUATOR_HPP
|
|
|
|
#include "ast.hpp"
|
|
#include <unordered_map>
|
|
#include <string>
|
|
#include <stdexcept>
|
|
|
|
std::unique_ptr<Expr> normalize(const std::unique_ptr<Expr>&, const std::unordered_map<std::string, std::unique_ptr<Expr>>&);
|
|
std::unique_ptr<Expr> substitute(const std::string&, const std::unique_ptr<Expr>&, const std::unique_ptr<Expr>&);
|
|
std::unique_ptr<Expr> evaluate(const std::unique_ptr<Expr>&, const std::unordered_map<std::string, std::unique_ptr<Expr>>&);
|
|
std::unique_ptr<Expr> evaluateMain(const std::unordered_map<std::string, std::unique_ptr<Expr>>&);
|
|
|
|
#endif // EVALUATOR_HPP
|