Using sbprint since its nicer
This commit is contained in:
parent
44b6e4c222
commit
2cd03d7f35
1 changed files with 22 additions and 38 deletions
60
main.odin
60
main.odin
|
|
@ -96,11 +96,9 @@ program :: proc(project_dir, output_gml_path: string) -> Error {
|
||||||
gml_extract_enums(gml, info.name, &enums)
|
gml_extract_enums(gml, info.name, &enums)
|
||||||
}
|
}
|
||||||
|
|
||||||
f := os.open(output_gml_path, {.Write, .Trunc}) or_return
|
gml := strings.builder_make()
|
||||||
writer := io.Writer(os.to_stream(f))
|
gml_write_enums(&gml, enums)
|
||||||
gml_write_enums(writer, enums)
|
os.write_entire_file(output_gml_path, strings.to_string(gml)) or_return
|
||||||
os.close(f)
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -161,50 +159,36 @@ gml_extract_enums :: proc(gml, filename: string, enums_out: ^[dynamic]GmlEnum) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gml_write_enums :: proc(writer: io.Writer, enums: [dynamic]GmlEnum) {
|
gml_write_enums :: proc(gml: &strings.Builder, enums: [dynamic]GmlEnum) {
|
||||||
io.write_string(writer, "/*\n" + TAB + "This file was generated using enum_reflection tool\n*/\n")
|
fmt.sbprint(&gml, "/*\n" + TAB + "This file was generated using enum_reflection tool\n*/\n", sep = "")
|
||||||
io.write_string(writer, "enum " + ENUM_ENUM + " {\n")
|
fmt.sbprint(&gml, "enum " + ENUM_ENUM + " {\n", sep = "")
|
||||||
for e in enums {
|
for e in enums {
|
||||||
io.write_string(writer, TAB)
|
fmt.sbprint(&gml, TAB, e.name, ",\n", sep = "")
|
||||||
io.write_string(writer, e.name)
|
|
||||||
io.write_string(writer, ",\n")
|
|
||||||
}
|
}
|
||||||
io.write_string(writer, TAB + "_Count\n}\n\n")
|
fmt.sbprint(&gml, TAB + "_Count\n}\n\n", sep = "")
|
||||||
|
fmt.sbprint(&gml, ENUM_NAMES_GLOBAL, " = [\n", sep = "")
|
||||||
io.write_string(writer, ENUM_NAMES_GLOBAL + " = [\n")
|
|
||||||
for e in enums {
|
for e in enums {
|
||||||
io.write_string(writer, TAB + "\"")
|
fmt.sbprint(&gml, TAB, "\"", e.name, "\",\n", sep = "")
|
||||||
io.write_string(writer, e.name)
|
|
||||||
io.write_string(writer, "\",\n")
|
|
||||||
}
|
}
|
||||||
io.write_string(writer, "];\n\n")
|
fmt.sbprint(&gml, "];\n\n", sep = "")
|
||||||
|
|
||||||
io.write_string(writer, ENUM_MEMBER_NAMES_GLOBAL + " = [\n")
|
fmt.sbprint(&gml, ENUM_MEMBER_NAMES_GLOBAL, " = [\n", sep = "")
|
||||||
for e in enums {
|
for e in enums {
|
||||||
io.write_string(writer, TAB + "[")
|
fmt.sbprint(&gml, TAB, "[", sep = "")
|
||||||
for entry in e.members {
|
for entry in e.members {
|
||||||
io.write_string(writer, "\"")
|
fmt.sbprint(&gml, "\"", entry, "\", ", sep = "")
|
||||||
io.write_string(writer, entry)
|
|
||||||
io.write_string(writer, "\", ")
|
|
||||||
}
|
}
|
||||||
io.write_string(writer, "],\n")
|
fmt.sbprint(&gml, "],\n", sep = "")
|
||||||
}
|
}
|
||||||
io.write_string(writer, "];\n\n")
|
fmt.sbprint(&gml, "];\n\n", sep = "")
|
||||||
|
|
||||||
io.write_string(writer, "function " + ENUM_GET_NAME_FUNCTION + "(index) {\n")
|
fmt.sbprint(&gml, "function ", ENUM_GET_NAME_FUNCTION, "(index) {return ", ENUM_NAMES_GLOBAL, "[index];}\n", sep = "")
|
||||||
io.write_string(writer, TAB + "return " + ENUM_NAMES_GLOBAL + "[index];\n")
|
|
||||||
io.write_string(writer, "}\n\n")
|
|
||||||
|
|
||||||
io.write_string(writer, "function " + ENUM_GET_MEMBER_NAME_FUNCTION + "(index, member) {\n")
|
fmt.sbprint(&gml, "function ", ENUM_GET_MEMBER_NAME_FUNCTION, "(index, member) {return ", ENUM_MEMBER_NAMES_GLOBAL, "[index][member];}\n", sep = "")
|
||||||
io.write_string(writer, TAB + "return " + ENUM_MEMBER_NAMES_GLOBAL + "[index][member];\n")
|
|
||||||
io.write_string(writer, "}\n\n")
|
|
||||||
|
|
||||||
io.write_string(writer, "function " + ENUM_GET_MEMBER_NAMES_FUNCTION + "(index) {\n")
|
fmt.sbprint(&gml, "function ", ENUM_GET_MEMBER_NAMES_FUNCTION, "(index) {return ", ENUM_MEMBER_NAMES_GLOBAL, "[index];}", sep = "")
|
||||||
io.write_string(writer, TAB + "return " + ENUM_MEMBER_NAMES_GLOBAL + "[index];\n")
|
|
||||||
io.write_string(writer, "}\n\n")
|
|
||||||
|
|
||||||
io.write_string(writer, "function " + ENUM_GET_MEMBER_NAME_FULL_FUNCTION + "(index, member) {\n")
|
fmt.sbprint(&gml, "function ", ENUM_GET_MEMBER_NAME_FULL_FUNCTION, "(index, member) {\n", sep = "")
|
||||||
io.write_string(writer, TAB + "return $\"{" + ENUM_NAMES_GLOBAL + "[index]}.{" + ENUM_MEMBER_NAMES_GLOBAL + "[index][member]}\";\n")
|
fmt.sbprint(&gml, TAB, "return $\"{", ENUM_NAMES_GLOBAL, "[index]}.{" + ENUM_MEMBER_NAMES_GLOBAL, "[index][member]}\";\n", sep = "")
|
||||||
io.write_string(writer, "}\n\n")
|
fmt.sbprint(&gml, "}\n\n", sep = "")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue