Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions maldoca/astgen/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ cc_library(
":ast_def_cc_proto",
":symbol",
":type_cc_proto",
"//maldoca/base:status",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/base:nullability",
"@abseil-cpp//absl/container:btree",
Expand All @@ -63,6 +62,7 @@ cc_library(
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/memory",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
Expand Down Expand Up @@ -247,9 +247,9 @@ cc_library(
name = "ast_from_json_utils",
hdrs = ["ast_from_json_utils.h"],
deps = [
"//maldoca/base:status",
"@abseil-cpp//absl/functional:any_invocable",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@nlohmann_json//:json",
Expand All @@ -260,8 +260,8 @@ cc_library(
name = "ir_to_ast_util",
hdrs = ["ir_to_ast_util.h"],
deps = [
"//maldoca/base:status",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings:string_view",
"@llvm-project//llvm:Support",
Expand All @@ -284,8 +284,9 @@ cc_binary(
":ir_to_ast_source_printer",
"//maldoca/base:filesystem",
"//maldoca/base:path",
"//maldoca/base:status",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
],
)
Expand Down
16 changes: 8 additions & 8 deletions maldoca/astgen/ast_def.cc
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@
#include "absl/log/log.h"
#include "absl/memory/memory.h"
#include "absl/status/status.h"
#include "absl/status/status_macros.h"
#include "absl/status/statusor.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "absl/types/span.h"
#include "maldoca/astgen/ast_def.pb.h"
#include "maldoca/astgen/symbol.h"
#include "maldoca/astgen/type.h"
#include "maldoca/base/status_macros.h"

namespace maldoca {
namespace {
Expand Down Expand Up @@ -175,8 +175,8 @@ absl::StatusOr<EnumDef> EnumDef::FromEnumDefPb(const EnumDefPb& enum_pb) {

std::vector<EnumMemberDef> members;
for (const EnumMemberDefPb& member_pb : enum_pb.members()) {
MALDOCA_ASSIGN_OR_RETURN(auto member,
EnumMemberDef::FromEnumMemberDefPb(member_pb));
ABSL_ASSIGN_OR_RETURN(auto member,
EnumMemberDef::FromEnumMemberDefPb(member_pb));
members.push_back(std::move(member));
}

Expand All @@ -194,7 +194,7 @@ absl::StatusOr<FieldDef> FieldDef::FromFieldDefPb(const FieldDefPb& field_pb,
absl::StrCat("Field '", field_pb.name(), "' is not in camelCase."));
}

MALDOCA_ASSIGN_OR_RETURN(field.type_, FromTypePb(field_pb.type(), lang_name));
ABSL_ASSIGN_OR_RETURN(field.type_, FromTypePb(field_pb.type(), lang_name));

if (field_pb.optionalness() == OPTIONALNESS_UNSPECIFIED) {
return absl::InvalidArgumentError(
Expand Down Expand Up @@ -284,8 +284,8 @@ std::optional<Symbol> NodeDef::ir_op_mnemonic(FieldKind kind) const {
absl::StatusOr<AstDef> AstDef::FromProto(const AstDefPb& pb) {
std::vector<EnumDef> enum_defs;
for (const EnumDefPb& enum_def_pb : pb.enums()) {
MALDOCA_ASSIGN_OR_RETURN(EnumDef enum_def,
EnumDef::FromEnumDefPb(enum_def_pb));
ABSL_ASSIGN_OR_RETURN(EnumDef enum_def,
EnumDef::FromEnumDefPb(enum_def_pb));
enum_defs.push_back(std::move(enum_def));
}

Expand All @@ -307,8 +307,8 @@ absl::StatusOr<AstDef> AstDef::FromProto(const AstDefPb& pb) {
}

for (const FieldDefPb& field_pb : node_pb.fields()) {
MALDOCA_ASSIGN_OR_RETURN(
FieldDef field, FieldDef::FromFieldDefPb(field_pb, pb.lang_name()));
ABSL_ASSIGN_OR_RETURN(FieldDef field,
FieldDef::FromFieldDefPb(field_pb, pb.lang_name()));
node->fields_.push_back(std::move(field));
}

Expand Down
7 changes: 3 additions & 4 deletions maldoca/astgen/ast_from_json_printer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -112,11 +112,11 @@ void AstFromJsonPrinter::PrintAst(const AstDef& ast,
"absl/container/flat_hash_set.h",
"absl/memory/memory.h",
"absl/status/status.h",
"absl/status/status_macros.h",
"absl/status/statusor.h",
"absl/strings/str_cat.h",
"absl/strings/string_view.h",
"maldoca/astgen/ast_from_json_utils.h",
"maldoca/base/status_macros.h",
"nlohmann/json.hpp",
});
Println();
Expand Down Expand Up @@ -465,8 +465,7 @@ void AstFromJsonPrinter::PrintFromJsonFunction(const NodeDef& node,
// function.

Println(
"MALDOCA_ASSIGN_OR_RETURN"
"(std::string type, GetType($json_variable$));");
"ABSL_ASSIGN_OR_RETURN(std::string type, GetType($json_variable$));");
Println();

IfStmtPrinter if_stmt_printer(this);
Expand Down Expand Up @@ -514,7 +513,7 @@ void AstFromJsonPrinter::PrintFromJsonFunction(const NodeDef& node,
{"FieldName", node_field_pair.field_name.ToPascalCase()},
});
Println(
"MALDOCA_ASSIGN_OR_RETURN(auto $field_name$, "
"ABSL_ASSIGN_OR_RETURN(auto $field_name$, "
"$NodeType$::Get$FieldName$($json_variable$));");
}

Expand Down
6 changes: 3 additions & 3 deletions maldoca/astgen/ast_from_json_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@
#include <vector>

#include "absl/status/status.h"
#include "absl/status/status_macros.h"
#include "absl/status/statusor.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "nlohmann/json.hpp"
#include "maldoca/base/status_macros.h"

namespace maldoca {

Expand Down Expand Up @@ -169,7 +169,7 @@ Converter<std::vector<T>> List(Converter<T> elem_converter) {
}
std::vector<T> result;
for (const nlohmann::json& element : json) {
MALDOCA_ASSIGN_OR_RETURN(T value, elem_converter(element));
ABSL_ASSIGN_OR_RETURN(T value, elem_converter(element));
result.push_back(std::move(value));
}
return result;
Expand Down Expand Up @@ -202,7 +202,7 @@ absl::StatusOr<Variant> JsonToVariantRecursive(const nlohmann::json& json,
VariantOption<T> option,
VariantOption<Rest>... rest) {
if (option.predicate(json)) {
MALDOCA_ASSIGN_OR_RETURN(T value, option.converter(json));
ABSL_ASSIGN_OR_RETURN(T value, option.converter(json));
return Variant(std::move(value));
}
return JsonToVariantRecursive<Variant>(json, std::move(rest)...);
Expand Down
26 changes: 11 additions & 15 deletions maldoca/astgen/ast_gen_main.cc
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@
#include "maldoca/astgen/ir_to_ast_source_printer.h"
#include "maldoca/base/filesystem.h"
#include "maldoca/base/path.h"
#include "maldoca/base/status_macros.h"
#include "absl/status/status_macros.h"
#include "absl/status/statusor.h"

ABSL_FLAG(std::string, ast_def_path, "",
"The path to the ast_def.textproto file.");
Expand All @@ -60,57 +61,52 @@ absl::Status AstGenMain() {
auto ir_path = absl::GetFlag(FLAGS_ir_path);

AstDefPb ast_def_pb;
MALDOCA_RETURN_IF_ERROR(ParseTextProtoFile(ast_def_path, &ast_def_pb));
MALDOCA_ASSIGN_OR_RETURN(AstDef ast_def, AstDef::FromProto(ast_def_pb));
ABSL_RETURN_IF_ERROR(ParseTextProtoFile(ast_def_path, &ast_def_pb));
ABSL_ASSIGN_OR_RETURN(AstDef ast_def, AstDef::FromProto(ast_def_pb));

std::string ast_hdr = PrintAstHeader(ast_def, cc_namespace, ast_path);
auto ast_hdr_path = JoinPath(ast_path, "ast.generated.h");
std::cout << "Writing ast_hdr to " << ast_hdr_path << "\n";
MALDOCA_RETURN_IF_ERROR(SetFileContents(ast_hdr_path, ast_hdr));
ABSL_RETURN_IF_ERROR(SetFileContents(ast_hdr_path, ast_hdr));

std::string ast_src = PrintAstSource(ast_def, cc_namespace, ast_path);
auto ast_src_path = JoinPath(ast_path, "ast.generated.cc");
std::cout << "Writing ast_src to " << ast_src_path << "\n";
MALDOCA_RETURN_IF_ERROR(SetFileContents(ast_src_path, ast_src));
ABSL_RETURN_IF_ERROR(SetFileContents(ast_src_path, ast_src));

std::string ast_to_json = PrintAstToJson(ast_def, cc_namespace, ast_path);
auto ast_to_json_path = JoinPath(ast_path, "ast_to_json.generated.cc");
std::cout << "Writing ast_to_json to " << ast_to_json_path << "\n";
MALDOCA_RETURN_IF_ERROR(
SetFileContents(ast_to_json_path, ast_to_json));
ABSL_RETURN_IF_ERROR(SetFileContents(ast_to_json_path, ast_to_json));

std::string ast_from_json = PrintAstFromJson(ast_def, cc_namespace, ast_path);
auto ast_from_json_path =
JoinPath(ast_path, "ast_from_json.generated.cc");
std::cout << "Writing ast_from_json to " << ast_from_json_path << "\n";
MALDOCA_RETURN_IF_ERROR(
SetFileContents(ast_from_json_path, ast_from_json));
ABSL_RETURN_IF_ERROR(SetFileContents(ast_from_json_path, ast_from_json));

if (!ir_path.empty()) {
std::string ir_tablegen = PrintIrTableGen(ast_def, ir_path);
auto ir_tablegen_path = JoinPath(
ir_path, absl::StrCat(ast_def.lang_name(), "ir_ops.generated.td"));
std::cout << "Writing ir_tablegen to " << ir_tablegen_path << "\n";
MALDOCA_RETURN_IF_ERROR(
SetFileContents(ir_tablegen_path, ir_tablegen));
ABSL_RETURN_IF_ERROR(SetFileContents(ir_tablegen_path, ir_tablegen));

std::string ast_to_ir =
PrintAstToIrSource(ast_def, cc_namespace, ast_path, ir_path);
auto ast_to_ir_path = JoinPath(
ir_path, "conversion",
absl::StrCat("ast_to_", ast_def.lang_name(), "ir.generated.cc"));
std::cout << "Writing ast_to_ir to " << ast_to_ir_path << "\n";
MALDOCA_RETURN_IF_ERROR(
SetFileContents(ast_to_ir_path, ast_to_ir));
ABSL_RETURN_IF_ERROR(SetFileContents(ast_to_ir_path, ast_to_ir));

std::string ir_to_ast =
PrintIrToAstSource(ast_def, cc_namespace, ast_path, ir_path);
auto ir_to_ast_path = JoinPath(
ir_path, "conversion",
absl::StrCat(ast_def.lang_name(), "ir_to_ast.generated.cc"));
std::cout << "Writing ir_to_ast to " << ir_to_ast_path << "\n";
MALDOCA_RETURN_IF_ERROR(
SetFileContents(ir_to_ast_path, ir_to_ast));
ABSL_RETURN_IF_ERROR(SetFileContents(ir_to_ast_path, ir_to_ast));
}

return absl::OkStatus();
Expand Down
1 change: 0 additions & 1 deletion maldoca/astgen/ast_serialize_printer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ void AstSerializePrinter::PrintAst(const AstDef& ast,
"absl/status/status.h",
"absl/strings/string_view.h",
"nlohmann/json.hpp",
"maldoca/base/status_macros.h",
});
Println();

Expand Down
1 change: 0 additions & 1 deletion maldoca/astgen/ast_source_printer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ void AstSourcePrinter::PrintAst(const AstDef& ast,
PrintIncludeHeader("absl/strings/str_cat.h");
PrintIncludeHeader("absl/strings/string_view.h");
PrintIncludeHeader("nlohmann/json.hpp");
PrintIncludeHeader("maldoca/base/status_macros.h");
Println();

PrintEnterNamespace(cc_namespace);
Expand Down
6 changes: 3 additions & 3 deletions maldoca/astgen/ir_to_ast_source_printer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -102,12 +102,12 @@ void IrToAstSourcePrinter::PrintAst(const AstDef& ast,
"absl/log/check.h",
"absl/log/log.h",
"absl/status/status.h",
"absl/status/status_macros.h",
"absl/status/statusor.h",
"absl/strings/str_cat.h",
"absl/types/optional.h",
"absl/types/variant.h",
"maldoca/astgen/ir_to_ast_util.h",
"maldoca/base/status_macros.h",
std::string(ast_header_path),
absl::StrCat(ir_path, "/ir.h"),
});
Expand Down Expand Up @@ -285,7 +285,7 @@ void IrToAstSourcePrinter::PrintField(const AstDef& ast, const NodeDef& node,
{"rhs", rhs},
});

Println("MALDOCA_ASSIGN_OR_RETURN(");
Println("ABSL_ASSIGN_OR_RETURN(");
{
auto indent = WithIndent(4);
Println("auto $lhs$,");
Expand Down Expand Up @@ -340,7 +340,7 @@ void IrToAstSourcePrinter::PrintRegion(const AstDef& ast, const NodeDef& node,
{"mlirGetter", field.name().ToMlirGetter()},
});

Println("MALDOCA_ASSIGN_OR_RETURN(");
Println("ABSL_ASSIGN_OR_RETURN(");
{
auto indent = WithIndent(4);
Println("auto $lhs$,");
Expand Down
17 changes: 8 additions & 9 deletions maldoca/astgen/ir_to_ast_util.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@
#include "mlir/IR/Value.h"
#include "mlir/IR/ValueRange.h"
#include "absl/status/status.h"
#include "absl/status/status_macros.h"
#include "absl/status/statusor.h"
#include "absl/strings/string_view.h"
#include "maldoca/base/status_macros.h"

namespace maldoca {

Expand Down Expand Up @@ -397,7 +397,7 @@ inline absl::StatusOr<mlir::Block*> GetStmtsRegionBlock(mlir::Region& region) {
template <typename EndOpT, typename OpT, typename T>
ToRegionConverter<T> ExprRegion(ToOpConverter<OpT, T> converter) {
return ToRegionConverter<T>([=](mlir::Region& region) -> absl::StatusOr<T> {
MALDOCA_ASSIGN_OR_RETURN(auto val, GetExprRegionValue<EndOpT>(region));
ABSL_ASSIGN_OR_RETURN(auto val, GetExprRegionValue<EndOpT>(region));
return Convert(val, converter);
});
}
Expand All @@ -406,16 +406,15 @@ template <typename EndOpT, typename T>
ToRegionConverter<std::vector<T>> ExprsRegion(ToOpsConverter<T> converter) {
return ToRegionConverter<std::vector<T>>(
[=](mlir::Region& region) -> absl::StatusOr<std::vector<T>> {
MALDOCA_ASSIGN_OR_RETURN(auto vals,
GetExprsRegionValues<EndOpT>(region));
ABSL_ASSIGN_OR_RETURN(auto vals, GetExprsRegionValues<EndOpT>(region));
return Convert(vals, converter);
});
}

template <typename OpT, typename T>
ToRegionConverter<T> StmtRegion(ToOpConverter<OpT, T> converter) {
return ToRegionConverter<T>([=](mlir::Region& region) -> absl::StatusOr<T> {
MALDOCA_ASSIGN_OR_RETURN(auto op, GetStmtRegionOperation(region));
ABSL_ASSIGN_OR_RETURN(auto op, GetStmtRegionOperation(region));
return Convert(op, converter);
});
}
Expand All @@ -424,7 +423,7 @@ template <typename T>
ToRegionConverter<std::vector<T>> StmtsRegion(ToOpsConverter<T> converter) {
return ToRegionConverter<std::vector<T>>(
[=](mlir::Region& region) -> absl::StatusOr<std::vector<T>> {
MALDOCA_ASSIGN_OR_RETURN(auto block, GetStmtsRegionBlock(region));
ABSL_ASSIGN_OR_RETURN(auto block, GetStmtsRegionBlock(region));
return Convert(block, converter);
});
}
Expand Down Expand Up @@ -475,7 +474,7 @@ ToAttrConverter<mlir::ArrayAttr, std::vector<T>> List(
std::vector<T> result;
result.reserve(attr.size());
for (mlir::Attribute element : attr.getValue()) {
MALDOCA_ASSIGN_OR_RETURN(T value, elem_converter(element));
ABSL_ASSIGN_OR_RETURN(T value, elem_converter(element));
result.push_back(std::move(value));
}
return result;
Expand All @@ -490,7 +489,7 @@ ToOpsConverter<T> List(ToOpConverter<OpT, T> elem_converter) {
std::vector<T> result;
result.reserve(values.size());
for (mlir::Value element : values) {
MALDOCA_ASSIGN_OR_RETURN(T value, elem_converter(element));
ABSL_ASSIGN_OR_RETURN(T value, elem_converter(element));
result.push_back(std::move(value));
}
return result;
Expand All @@ -512,7 +511,7 @@ ToOpsConverter<T> List(ToOpConverter<OpT, T> elem_converter) {
if (!casted) {
continue;
}
MALDOCA_ASSIGN_OR_RETURN(T value, elem_converter(casted));
ABSL_ASSIGN_OR_RETURN(T value, elem_converter(casted));
result.push_back(std::move(value));
}
return result;
Expand Down
2 changes: 1 addition & 1 deletion maldoca/astgen/test/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ cc_library(
"//maldoca/astgen:ts_interface_printer",
"//maldoca/base:filesystem",
"//maldoca/base:get_runfiles_dir",
"//maldoca/base:status",
"//maldoca/base/testing:status_matchers",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:optional",
Expand Down
2 changes: 1 addition & 1 deletion maldoca/astgen/test/assign/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,12 @@ cc_library(
hdrs = ["ast.generated.h"],
deps = [
"//maldoca/astgen:ast_from_json_utils",
"//maldoca/base:status",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/memory",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@nlohmann_json//:json",
Expand Down
Loading
Loading