#pragma once #include "ast/ast.hpp" #include "ast/expressions/identifier.hpp" #include "ast/statements/block.hpp" #include "token/token.hpp" #include namespace ast { struct function_literal : expression { function_literal(token::token); token::token token; std::vector parameters; ast::block_stmt* body; std::string token_literal() const override; std::string str() const override; ~function_literal(); }; struct function_call : expression { function_call(token::token, expression*); token::token token; expression* target; std::vector parameters; std::string token_literal() const override; std::string str() const override; ~function_call(); }; } // namespace ast