From f1cff2024962c446422e99d992bc593f393b0aff Mon Sep 17 00:00:00 2001 From: phillvancejr Date: Mon, 24 Jan 2022 10:02:56 -0500 Subject: [PATCH 001/137] moved mac os glfw static lib to lib/darwin subdirectory --- vendor/glfw/bindings/bindings.odin | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/vendor/glfw/bindings/bindings.odin b/vendor/glfw/bindings/bindings.odin index 84905f603..52dc10a13 100644 --- a/vendor/glfw/bindings/bindings.odin +++ b/vendor/glfw/bindings/bindings.odin @@ -4,7 +4,14 @@ import "core:c" import vk "vendor:vulkan" when ODIN_OS == "linux" { foreign import glfw "system:glfw" } // TODO: Add the billion-or-so static libs to link to in linux -when ODIN_OS == "darwin" { foreign import glfw "system:glfw" } +when ODIN_OS == "darwin" { + foreign import glfw { + "../lib/darwin/libglfw3.a", + "system:Cocoa.framework", + "system:IOKit.framework", + "system:OpenGL.framework", + } +} when ODIN_OS == "windows" { foreign import glfw { "../lib/glfw3_mt.lib", From f28c268d97c80f840777007262a0bd43b3086652 Mon Sep 17 00:00:00 2001 From: phillvancejr Date: Mon, 24 Jan 2022 10:03:38 -0500 Subject: [PATCH 002/137] move libgflw3.a to lib/darwin --- vendor/glfw/lib/darwin/libglfw3.a | Bin 0 -> 281384 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 vendor/glfw/lib/darwin/libglfw3.a diff --git a/vendor/glfw/lib/darwin/libglfw3.a b/vendor/glfw/lib/darwin/libglfw3.a new file mode 100644 index 0000000000000000000000000000000000000000..242197e413e1cb6f476b4c8b9b03f7d5b3c1d5f3 GIT binary patch literal 281384 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�StA-{aHurn2Vd?r=|!Rq5H%*kyECBLz; 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 literal 0 HcmV?d00001 From 8f600798ef201ce3f34e29d7cdbf07b9bfc5db21 Mon Sep 17 00:00:00 2001 From: phillvancejr Date: Fri, 4 Feb 2022 13:03:20 -0500 Subject: [PATCH 003/137] stb_image --- Makefile | 2 +- vendor/stb/image/stb_image.odin | 1 + vendor/stb/image/stb_image_resize.odin | 3 ++- vendor/stb/image/stb_image_write.odin | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index d3d3c6a2d..df5fe0605 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ ifeq ($(OS), Darwin) LLVM_VERSIONS = "13.%.%" else # allow for x86 / amd64 all llvm versions begining from 11 - LLVM_VERSIONS = "13.%.%" "12.0.1" "11.1.0" + LLVM_VERSIONS = "13.%.%" "12.0.1" "11.0.0" endif LLVM_VERSION_PATTERN_SEPERATOR = )|( diff --git a/vendor/stb/image/stb_image.odin b/vendor/stb/image/stb_image.odin index 9e72760ab..12f7aea9f 100644 --- a/vendor/stb/image/stb_image.odin +++ b/vendor/stb/image/stb_image.odin @@ -6,6 +6,7 @@ import c "core:c/libc" when ODIN_OS == "windows" { foreign import stbi "../lib/stb_image.lib" } when ODIN_OS == "linux" { foreign import stbi "../lib/stb_image.a" } +when ODIN_OS == "darwin" { foreign import stbi "../lib/darwin/stb_image.a" } #assert(size_of(b32) == size_of(c.int)) diff --git a/vendor/stb/image/stb_image_resize.odin b/vendor/stb/image/stb_image_resize.odin index bee29a15e..c75a95fc9 100644 --- a/vendor/stb/image/stb_image_resize.odin +++ b/vendor/stb/image/stb_image_resize.odin @@ -4,6 +4,7 @@ import c "core:c/libc" when ODIN_OS == "windows" { foreign import lib "../lib/stb_image_resize.lib" } when ODIN_OS == "linux" { foreign import lib "../lib/stb_image_resize.a" } +when ODIN_OS == "darwin" { foreign import lib "../lib/darwin/stb_image_resize.a" } ////////////////////////////////////////////////////////////////////////////// // @@ -184,4 +185,4 @@ foreign lib { space: colorspace, alloc_context: rawptr, s0, t0, s1, t1: f32) -> c.int --- -} \ No newline at end of file +} diff --git a/vendor/stb/image/stb_image_write.odin b/vendor/stb/image/stb_image_write.odin index 1f0cfce85..2a2ec240c 100644 --- a/vendor/stb/image/stb_image_write.odin +++ b/vendor/stb/image/stb_image_write.odin @@ -4,6 +4,7 @@ import c "core:c/libc" when ODIN_OS == "windows" { foreign import stbiw "../lib/stb_image_write.lib" } when ODIN_OS == "linux" { foreign import stbiw "../lib/stb_image_write.a" } +when ODIN_OS == "darwin" { foreign import stbiw "../lib/darwin/stb_image_write.a" } write_func :: proc "c" (ctx: rawptr, data: rawptr, size: c.int) From 42364f2fcee1f0f588b006bf2b7e9bc6f88acb93 Mon Sep 17 00:00:00 2001 From: phillvancejr Date: Fri, 4 Feb 2022 13:15:43 -0500 Subject: [PATCH 004/137] sync with main --- core/bindgen/c-parser-evaluate.odin | 266 +++++++ core/bindgen/c-parser-helpers.odin | 267 +++++++ core/bindgen/c-parser-nodes.odin | 132 ++++ core/bindgen/c-parser.odin | 840 +++++++++++++++++++++++ core/bindgen/errors.odin | 44 ++ core/bindgen/generator-clean.odin | 284 ++++++++ core/bindgen/generator-export.odin | 166 +++++ core/bindgen/generator-helpers.odin | 392 +++++++++++ core/bindgen/generator.odin | 205 ++++++ vendor/stb/lib/darwin/libstb_image.a | Bin 0 -> 55744 bytes vendor/stb/lib/darwin/stb_image.a | Bin 0 -> 97544 bytes vendor/stb/lib/darwin/stb_image_resize.a | Bin 0 -> 36824 bytes vendor/stb/lib/darwin/stb_image_write.a | Bin 0 -> 32896 bytes vendor/stb/lib/darwin/stb_rect_pack.a | Bin 0 -> 5064 bytes vendor/stb/lib/darwin/stb_truetype.a | Bin 0 -> 67008 bytes wasm-ld | 1 + 16 files changed, 2597 insertions(+) create mode 100644 core/bindgen/c-parser-evaluate.odin create mode 100644 core/bindgen/c-parser-helpers.odin create mode 100644 core/bindgen/c-parser-nodes.odin create mode 100644 core/bindgen/c-parser.odin create mode 100644 core/bindgen/errors.odin create mode 100644 core/bindgen/generator-clean.odin create mode 100644 core/bindgen/generator-export.odin create mode 100644 core/bindgen/generator-helpers.odin create mode 100644 core/bindgen/generator.odin create mode 100644 vendor/stb/lib/darwin/libstb_image.a create mode 100644 vendor/stb/lib/darwin/stb_image.a create mode 100644 vendor/stb/lib/darwin/stb_image_resize.a create mode 100644 vendor/stb/lib/darwin/stb_image_write.a create mode 100644 vendor/stb/lib/darwin/stb_rect_pack.a create mode 100644 vendor/stb/lib/darwin/stb_truetype.a create mode 120000 wasm-ld diff --git a/core/bindgen/c-parser-evaluate.odin b/core/bindgen/c-parser-evaluate.odin new file mode 100644 index 000000000..13cb5042c --- /dev/null +++ b/core/bindgen/c-parser-evaluate.odin @@ -0,0 +1,266 @@ +package bindgen + +import "core:fmt" +import "core:strconv" + +// Evaluates an expression to a i64, without checking. +evaluate_i64 :: proc(data : ^ParserData) -> i64 { + ok : bool; + value : LiteralValue; + + value, ok = evaluate(data); + return value.(i64); +} + +// Evaluate an expression, returns whether it succeeded. +evaluate :: proc(data : ^ParserData) -> (LiteralValue, bool) { + return evaluate_level_5(data); +} + +// @note Evaluate levels numbers are based on +// https://en.cppreference.com/w/c/language/operator_precedence. + +// Bitwise shift level. +evaluate_level_5 :: proc(data : ^ParserData) -> (value : LiteralValue, ok : bool) { + value, ok = evaluate_level_4(data); + if !ok do return; + + invalid_value : LiteralValue; + token := peek_token(data); + + if token == "<<" { + v : LiteralValue; + eat_token(data); + + v, ok = evaluate_level_5(data); + if is_i64(v) do value = value.(i64) << cast(u64) v.(i64); + else do invalid_value = v; + } else if token == ">>" { + v : LiteralValue; + eat_token(data); + + v, ok = evaluate_level_5(data); + if is_i64(v) do value = value.(i64) >> cast(u64) v.(i64); + else do invalid_value = v; + } + + if invalid_value != nil { + print_warning("Invalid operand for bitwise shift ", invalid_value); + } + + return; +} + +// Additive level. +evaluate_level_4 :: proc(data : ^ParserData) -> (value : LiteralValue, ok : bool) { + value, ok = evaluate_level_3(data); + if !ok do return; + + token := peek_token(data); + if token == "+" { + v : LiteralValue; + eat_token(data); + v, ok = evaluate_level_4(data); + if is_i64(v) do value = value.(i64) + v.(i64); + else if is_f64(v) do value = value.(f64) + v.(f64); + } + else if token == "-" { + v : LiteralValue; + eat_token(data); + v, ok = evaluate_level_4(data); + if is_i64(v) do value = value.(i64) - v.(i64); + else if is_f64(v) do value = value.(f64) - v.(f64); + } + + return; +} + +// Multiplicative level. +evaluate_level_3 :: proc(data : ^ParserData) -> (value : LiteralValue, ok : bool) { + value, ok = evaluate_level_2(data); + if !ok do return; + + token := peek_token(data); + if token == "*" { + v : LiteralValue; + eat_token(data); + v, ok = evaluate_level_3(data); + if is_i64(v) do value = value.(i64) * v.(i64); + else if is_f64(v) do value = value.(f64) * v.(f64); + } + else if token == "/" { + v : LiteralValue; + eat_token(data); + v, ok = evaluate_level_3(data); + if is_i64(v) do value = value.(i64) / v.(i64); + else if is_f64(v) do value = value.(f64) / v.(f64); + } + + return; +} + +// Prefix level. +evaluate_level_2 :: proc(data : ^ParserData) -> (value : LiteralValue, ok : bool) { + token := peek_token(data); + + // Bitwise not + if token == "~" { + check_and_eat_token(data, "~"); + value, ok = evaluate_level_2(data); + value = ~value.(i64); + } + else { + // @note Should call evaluate_level_1, but we don't have that because we do not dereferenciation. + value, ok = evaluate_level_0(data); + } + + return; +} + +// Does not try to compose with arithmetics, it just evaluates one single expression. +evaluate_level_0 :: proc(data : ^ParserData) -> (value : LiteralValue, ok : bool) { + ok = true; + value = 0; + token := peek_token(data); + + // Parentheses + if token == "(" { + value, ok = evaluate_parentheses(data); + } // Number literal + else if (token[0] == '-') || (token[0] >= '0' && token[0] <= '9') { + value, ok = evaluate_number_literal(data); + } // String literal + else if token[0] == '"' { + value = evaluate_string_literal(data); + } // Function-like + else if token == "sizeof" { + value = evaluate_sizeof(data); + } // Knowned literal + else if token in data.knownedLiterals { + value = evaluate_knowned_literal(data); + } // Custom expression + else if token in data.options.customExpressionHandlers { + value = data.options.customExpressionHandlers[token](data); + } + else { + print_warning("Unknown token ", token, " for expression evaluation."); + ok = false; + } + + return; +} + +evaluate_sizeof :: proc(data : ^ParserData) -> LiteralValue { + print_warning("Using 'sizeof()'. Currently not able to precompute that. Please check generated code."); + + check_and_eat_token(data, "sizeof"); + check_and_eat_token(data, "("); + for data.bytes[data.offset] != ')' { + data.offset += 1; + } + check_and_eat_token(data, ")"); + return 1; +} + +evaluate_parentheses :: proc(data : ^ParserData) -> (value : LiteralValue, ok : bool) { + check_and_eat_token(data, "("); + + // Cast to int (via "(int)" syntax) + token := peek_token(data); + if token == "int" { + check_and_eat_token(data, "int"); + check_and_eat_token(data, ")"); + value, ok = evaluate(data); + return; + } // Cast to enum value (via "(enum XXX)" syntax) + else if token == "enum" { + check_and_eat_token(data, "enum"); + eat_token(data); + check_and_eat_token(data, ")"); + value, ok = evaluate(data); + return; + } + + value, ok = evaluate(data); + check_and_eat_token(data, ")"); + return; +} + +evaluate_number_literal :: proc(data : ^ParserData, loc := #caller_location) -> (value : LiteralValue, ok : bool) { + token := parse_any(data); + + // Unary - before numbers + numberLitteral := token; + for token == "-" { + token = parse_any(data); + numberLitteral = tcat(numberLitteral, token); + } + token = numberLitteral; + + // Check if any point or scientific notation in number + foundPointOrExp := false; + for c in token { + if c == '.' || c == 'e' || c == 'E' { + foundPointOrExp = true; + break; + } + } + + isHexadecimal := len(token) >= 2 && token[:2] == "0x"; + + // Computing postfix + tokenLength := len(token); + l := tokenLength - 1; + for l > 0 { + c := token[l]; + if c >= '0' && c <= '9' { break; } + if isHexadecimal && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')) { break; } + l -= 1; + } + + postfix : string; + if l != tokenLength - 1 { + postfix = token[l+1:]; + token = token[:l+1]; + } + + if postfix != "" && (postfix[0] == 'u' || postfix[0] == 'U') { + print_warning("Found number litteral '", token, "' with unsigned postfix, we cast it to an int64 internally."); + } + + // Floating point + if !isHexadecimal && (foundPointOrExp || postfix == "f") { + value, ok = strconv.parse_f64(token); + } // Integer + else { + value, ok = strconv.parse_i64(token); + } + + if !ok { + print_error(data, loc, "Expected number litteral but got '", token, "'."); + } + + return value, ok; +} + +evaluate_string_literal :: proc(data : ^ParserData) -> string { + token := parse_any(data); + return token; +} + +evaluate_knowned_literal :: proc(data : ^ParserData) -> LiteralValue { + token := parse_any(data); + return data.knownedLiterals[token]; +} + +is_i64 :: proc(value : LiteralValue) -> (ok : bool) { + v : i64; + v, ok = value.(i64); + return ok; +} + +is_f64 :: proc(value : LiteralValue) -> (ok : bool) { + v : f64; + v, ok = value.(f64); + return ok; +} diff --git a/core/bindgen/c-parser-helpers.odin b/core/bindgen/c-parser-helpers.odin new file mode 100644 index 000000000..a99d83dd2 --- /dev/null +++ b/core/bindgen/c-parser-helpers.odin @@ -0,0 +1,267 @@ +package bindgen + +import "core:os" +import "core:fmt" +import "core:strings" +import "core:strconv" + +// Extract from start (included) to end (excluded) offsets +extract_string :: proc(data : ^ParserData, startOffset : u32, endOffset : u32) -> string { + return strings.string_from_ptr(&data.bytes[startOffset], cast(int) (endOffset - startOffset)); +} + +// Peek the end offset of the next token +peek_token_end :: proc(data : ^ParserData) -> u32 { + offset : u32; + + for true { + eat_whitespaces_and_comments(data); + if data.offset >= data.bytesLength { + return data.bytesLength; + } + offset = data.offset; + + // Identifier + if (data.bytes[offset] >= 'a' && data.bytes[offset] <= 'z') || + (data.bytes[offset] >= 'A' && data.bytes[offset] <= 'Z') || + (data.bytes[offset] == '_') { + offset += 1; + for (data.bytes[offset] >= 'a' && data.bytes[offset] <= 'z') || + (data.bytes[offset] >= 'A' && data.bytes[offset] <= 'Z') || + (data.bytes[offset] >= '0' && data.bytes[offset] <= '9') || + (data.bytes[offset] == '_') { + offset += 1; + } + } + if offset != data.offset { + // Nothing to do: we found an identifier + } // Number literal + else if (data.bytes[offset] >= '0' && data.bytes[offset] <= '9') { + offset += 1; + // Hexademical literal + if data.bytes[offset - 1] == '0' && data.bytes[offset] == 'x' { + offset += 1; + for (data.bytes[offset] >= '0' && data.bytes[offset] <= '9') || + (data.bytes[offset] >= 'a' && data.bytes[offset] <= 'f') || + (data.bytes[offset] >= 'A' && data.bytes[offset] <= 'F') { + offset += 1; + } + } // Basic number literal + else { + for (data.bytes[offset] >= '0' && data.bytes[offset] <= '9') || + data.bytes[offset] == '.' { + offset += 1; + } + + if (data.bytes[offset] == 'e' || data.bytes[offset] == 'E') { + offset += 1; + if data.bytes[offset] == '-' { + offset += 1; + } + } + + for (data.bytes[offset] >= '0' && data.bytes[offset] <= '9') { + offset += 1; + } + } + + // Number suffix? + for (data.bytes[offset] == 'u' || data.bytes[offset] == 'U') || + (data.bytes[offset] == 'l' || data.bytes[offset] == 'L') || + (data.bytes[offset] == 'f') { + offset += 1; + } + } // String literal + else if data.bytes[offset] == '"' { + offset += 1; + for data.bytes[offset-1] == '\\' || data.bytes[offset] != '"' { + offset += 1; + } + offset += 1; + } // Possible shifts + else if data.bytes[offset] == '<' || data.bytes[offset] == '>' { + offset += 1; + if data.bytes[offset] == data.bytes[offset-1] { + offset += 1; + } + } // Single character + else { + offset += 1; + } + + token := extract_string(data, data.offset, offset); + + // Ignore __attribute__ + if token == "__attribute__" { + print_warning("__attribute__ is ignored."); + + for data.bytes[offset] != '(' { + offset += 1; + } + + parenthesesCount := 1; + for true { + offset += 1; + if data.bytes[offset] == '(' do parenthesesCount += 1; + else if data.bytes[offset] == ')' do parenthesesCount -= 1; + if parenthesesCount == 0 do break; + } + offset += 1; + + data.offset = offset; + } // Ignore certain keywords + else if (token == "inline" || token == "__inline" || token == "static" + || token == "restrict" || token == "__restrict" + || token == "volatile" + || token == "__extension__") { + data.offset = offset; + } // Ignore ignored tokens ;) + else { + for ignoredToken in data.options.ignoredTokens { + if token == ignoredToken { + data.offset = offset; + break; + } + } + } + + if data.offset != offset { + break; + } + } + + return offset; +} + +// Peek the next token (just eating whitespaces and comment) +peek_token :: proc(data : ^ParserData) -> string { + tokenEnd := peek_token_end(data); + if tokenEnd == data.bytesLength { + return "EOF"; + } + return extract_string(data, data.offset, tokenEnd); +} + +// Find the end of the define directive (understanding endline backslashes) +// @note Tricky cases like comments hiding a backslash effect are not handled. +peek_define_end :: proc(data : ^ParserData) -> u32 { + defineEndOffset := data.offset; + for data.bytes[defineEndOffset-1] == '\\' || data.bytes[defineEndOffset] != '\n' { + defineEndOffset += 1; + } + return defineEndOffset; +} + +eat_comment :: proc(data : ^ParserData) { + if data.offset >= data.bytesLength || data.bytes[data.offset] != '/' { + return; + } + + // Line comment + if data.bytes[data.offset + 1] == '/' { + eat_line(data); + } // Range comment + else if data.bytes[data.offset + 1] == '*' { + data.offset += 2; + for data.bytes[data.offset] != '*' || data.bytes[data.offset + 1] != '/' { + data.offset += 1; + } + data.offset += 2; + } +} + +// Eat whitespaces +eat_whitespaces :: proc(data : ^ParserData) { + // Effective whitespace + for data.offset < data.bytesLength && + (data.bytes[data.offset] == ' ' || data.bytes[data.offset] == '\t' || + data.bytes[data.offset] == '\r' || data.bytes[data.offset] == '\n') { + if data.bytes[data.offset] == '\n' && data.bytes[data.offset] != '\\' { + data.foundFullReturn = true; + } + data.offset += 1; + } +} + +// Removes whitespaces and comments +eat_whitespaces_and_comments :: proc(data : ^ParserData) { + startOffset : u32 = 0xFFFFFFFF; + for startOffset != data.offset { + startOffset = data.offset; + eat_whitespaces(data); + eat_comment(data); + } +} + +// Eat full line +eat_line :: proc(data : ^ParserData) { + for ; data.bytes[data.offset] != '\n'; data.offset += 1 { + } +} + +// Eat a line, and repeat if it ends with a backslash +eat_define_lines :: proc(data : ^ParserData) { + for data.bytes[data.offset-1] == '\\' || data.bytes[data.offset] != '\n' { + data.offset += 1; + } +} + +// Eat next token +eat_token :: proc(data : ^ParserData) { + data.offset = peek_token_end(data); +} + +// Eat next token +check_and_eat_token :: proc(data : ^ParserData, expectedToken : string, loc := #caller_location) { + token := peek_token(data); + if token != expectedToken { + print_error(data, loc, "Expected ", expectedToken, " but found ", token, "."); + } + data.offset += cast(u32) len(token); +} + +// Check whether the next token is outside #define range +is_define_end :: proc(data : ^ParserData) -> bool { + defineEnd := peek_define_end(data); + tokenEnd := peek_token_end(data); + + return (defineEnd < tokenEnd); +} + +// Check if the current #define is a macro definition +is_define_macro :: proc(data : ^ParserData) -> bool { + startOffset := data.offset; + defer data.offset = startOffset; + + token := parse_any(data); + if token != "(" do return false; + + // Find the other parenthesis + parenthesesCount := 1; + for parenthesesCount != 0 { + token = parse_any(data); + if token == "(" do parenthesesCount += 1; + else if token == ")" do parenthesesCount -= 1; + } + + // Its a macro if after the parentheses, it's not the end + return !is_define_end(data); +} + +// @note Very slow function to get line number, +// use only for errors. +// @todo Well, this does not seem to work properly, UTF-8 problem? +get_line_column :: proc(data : ^ParserData) -> (u32, u32) { + line : u32 = 1; + column : u32 = 0; + for i : u32 = 0; i < data.offset; i += 1 { + if data.bytes[i] == '\n' { + column = 0; + line += 1; + } + else { + column += 1; + } + } + return line, column; +} diff --git a/core/bindgen/c-parser-nodes.odin b/core/bindgen/c-parser-nodes.odin new file mode 100644 index 000000000..0620e0187 --- /dev/null +++ b/core/bindgen/c-parser-nodes.odin @@ -0,0 +1,132 @@ +package bindgen + +DefineNode :: struct { + name : string, + value : LiteralValue, +} + +StructDefinitionNode :: struct { + name : string, + members : [dynamic]StructOrUnionMember, + forwardDeclared : bool, +} + +UnionDefinitionNode :: struct { + name : string, + members : [dynamic]StructOrUnionMember, +} + +EnumDefinitionNode :: struct { + name : string, + members : [dynamic]EnumMember, +} + +FunctionDeclarationNode :: struct { + name : string, + returnType : Type, + parameters : [dynamic]FunctionParameter, +} + +TypedefNode :: struct { + name : string, + type : Type, +} + +Nodes :: struct { + defines : [dynamic]DefineNode, + enumDefinitions : [dynamic]EnumDefinitionNode, + unionDefinitions : [dynamic]UnionDefinitionNode, + structDefinitions : [dynamic]StructDefinitionNode, + functionDeclarations : [dynamic]FunctionDeclarationNode, + typedefs : [dynamic]TypedefNode, +} + +LiteralValue :: union { + i64, + f64, + string, +} + +// Type, might be an array +Type :: struct { + base : BaseType, + dimensions : [dynamic]u64, // Array dimensions +} + +BaseType :: union { + BuiltinType, + PointerType, + IdentifierType, + FunctionType, + FunctionPointerType, +} + +BuiltinType :: enum { + Unknown, + Void, + Int, + UInt, + LongInt, + ULongInt, + LongLongInt, + ULongLongInt, + ShortInt, + UShortInt, + Char, + SChar, + UChar, + Float, + Double, + LongDouble, + + // Not defined by C language but in + Int8, + Int16, + Int32, + Int64, + UInt8, + UInt16, + UInt32, + UInt64, + Size, + SSize, + PtrDiff, + UIntPtr, + IntPtr, +} + +PointerType :: struct { + type : ^Type, // Pointer is there to prevent definition cycle. Null means void. +} + +IdentifierType :: struct { + name : string, + anonymous : bool, // An anonymous identifier can be hard-given a name in some contexts. +} + +FunctionType :: struct { + returnType : ^Type, // Pointer is there to prevent definition cycle. Null means void. + parameters : [dynamic]FunctionParameter, +} + +FunctionPointerType :: struct { + name : string, + returnType : ^Type, // Pointer is there to prevent definition cycle. Null means void. + parameters : [dynamic]FunctionParameter, +} + +EnumMember :: struct { + name : string, + value : i64, + hasValue : bool, +} + +StructOrUnionMember :: struct { + name : string, + type : Type, +} + +FunctionParameter :: struct { + name : string, + type : Type, +} diff --git a/core/bindgen/c-parser.odin b/core/bindgen/c-parser.odin new file mode 100644 index 000000000..c3ef4937f --- /dev/null +++ b/core/bindgen/c-parser.odin @@ -0,0 +1,840 @@ +package bindgen + +import "core:os" +import "core:fmt" +import "core:strings" +import "core:strconv" + +// Global counters +anonymousStructCount := 0; +anonymousUnionCount := 0; +anonymousEnumCount := 0; + +knownTypeAliases : map[string]Type; + +CustomHandler :: proc(data : ^ParserData); +CustomExpressionHandler :: proc(data : ^ParserData) -> LiteralValue; + +ParserOptions :: struct { + ignoredTokens : []string, + + // Handlers + customHandlers : map[string]CustomHandler, + customExpressionHandlers : map[string]CustomExpressionHandler, +} + +ParserData :: struct { + bytes : []u8, + bytesLength : u32, + offset : u32, + + // References + nodes : Nodes, + options : ^ParserOptions, + + // Knowned values + knownedLiterals : map[string]LiteralValue, + + // Whether we have eaten a '\n' character that has no backslash just before + foundFullReturn : bool, +} + +is_identifier :: proc(token : string) -> bool { + return (token[0] >= 'a' && token[0] <= 'z') || + (token[0] >= 'A' && token[0] <= 'Z') || + (token[0] == '_'); +} + +parse :: proc(bytes : []u8, options : ParserOptions, loc := #caller_location) -> Nodes { + options := options; + + data : ParserData; + data.bytes = bytes; + data.bytesLength = cast(u32) len(bytes); + data.options = &options; + + for data.offset = 0; data.offset < data.bytesLength; { + token := peek_token(&data); + if data.offset == data.bytesLength do break; + + if token in options.customHandlers { + options.customHandlers[token](&data); + } + else if token == "{" || token == "}" || token == ";" { + eat_token(&data); + } + else if token == "extern" { + check_and_eat_token(&data, "extern"); + } + else if token == "\"C\"" { + check_and_eat_token(&data, "\"C\""); + } + else if token == "#" { + parse_directive(&data); + } + else if token == "typedef" { + parse_typedef(&data); + } + else if is_identifier(token) { + parse_variable_or_function_declaration(&data); + } + else { + print_error(&data, loc, "Unexpected token: ", token, "."); + return data.nodes; + } + } + + return data.nodes; +} + +parse_any :: proc(data : ^ParserData) -> string { + offset := peek_token_end(data); + identifier := extract_string(data, data.offset, offset); + data.offset = offset; + return identifier; +} + +parse_identifier :: proc(data : ^ParserData, loc := #caller_location) -> string { + identifier := parse_any(data); + + if (identifier[0] < 'a' || identifier[0] > 'z') && + (identifier[0] < 'A' || identifier[0] > 'Z') && + (identifier[0] != '_') { + print_error(data, loc, "Expected identifier but found ", identifier, "."); + } + + return identifier; +} + +parse_type_dimensions :: proc(data : ^ParserData, type : ^Type) { + token := peek_token(data); + for token == "[" { + eat_token(data); + token = peek_token(data); + if token == "]" { + pointerType : PointerType; + pointerType.type = new(Type); + pointerType.type^ = type^; // Copy + type.base = pointerType; + delete(type.dimensions); + } else { + dimension := evaluate_i64(data); + append(&type.dimensions, cast(u64) dimension); + } + check_and_eat_token(data, "]"); + token = peek_token(data); + } +} + +// This will parse anything that look like a type: +// Builtin: char/int/float/... +// Struct-like: struct A/struct { ... }/enum E +// Function pointer: void (*f)(...) +// +// Definition permitted: If a struct-like definition is found, it will generate +// the according Node and return a corresponding type. +parse_type :: proc(data : ^ParserData, definitionPermitted := false) -> Type { + type : Type; + + // Eat qualifiers + token := peek_token(data); + if token == "const" { + eat_token(data); + token = peek_token(data); + } + + // Parse main type + if token == "struct" { + type.base = parse_struct_type(data, definitionPermitted); + } + else if token == "union" { + type.base = parse_union_type(data); + } + else if token == "enum" { + type.base = parse_enum_type(data); + } + else { + // Test builtin type + type.base = parse_builtin_type(data); + if type.base.(BuiltinType) == BuiltinType.Unknown { + // Basic identifier type + identifierType : IdentifierType; + identifierType.name = parse_identifier(data); + type.base = identifierType; + } + } + + // Eat qualifiers + token = peek_token(data); + if token == "const" { + eat_token(data); + token = peek_token(data); + } + + // Check if pointer + for token == "*" { + check_and_eat_token(data, "*"); + token = peek_token(data); + + pointerType : PointerType; + pointerType.type = new(Type); + pointerType.type^ = type; // Copy + + type.base = pointerType; + + // Eat qualifiers + if token == "const" { + eat_token(data); + token = peek_token(data); + } + } + + // Parse array dimensions if any. + parse_type_dimensions(data, &type); + + // ----- Function pointer type + + if token == "(" { + check_and_eat_token(data, "("); + check_and_eat_token(data, "*"); + + functionPointerType : FunctionPointerType; + functionPointerType.returnType = new(Type); + functionPointerType.returnType^ = type; + functionPointerType.name = parse_identifier(data); + + check_and_eat_token(data, ")"); + parse_function_parameters(data, &functionPointerType.parameters); + + type.base = functionPointerType; + } + + return type; +} + +parse_builtin_type :: proc(data : ^ParserData) -> BuiltinType { + previousBuiltinType := BuiltinType.Unknown; + intFound := false; + shortFound := false; + signedFound := false; + unsignedFound := false; + longCount := 0; + + for true { + token := peek_token(data); + + // Attribute + attributeFound := true; + if token == "long" do longCount += 1; + else if token == "short" do shortFound = true; + else if token == "unsigned" do unsignedFound = true; + else if token == "signed" do signedFound = true; + else do attributeFound = false; + if attributeFound { eat_token(data); continue; } + + // Known type alias + if token in knownTypeAliases { + builtinType, ok := knownTypeAliases[token].base.(BuiltinType); + if ok { + eat_token(data); + previousBuiltinType = builtinType; + } + break; + } + + // Classic type and standard types + if token == "void" { eat_token(data); return BuiltinType.Void; } + else if token == "int" { + eat_token(data); + intFound = true; + } + else if token == "float" { eat_token(data); return BuiltinType.Float; } + else if token == "double" { + eat_token(data); + if longCount == 0 do return BuiltinType.Double; + else do return BuiltinType.LongDouble; + } + else if token == "char" { + eat_token(data); + if signedFound do return BuiltinType.SChar; + else if unsignedFound do return BuiltinType.UChar; + else do return BuiltinType.Char; + } + else if token == "__int8" { + // @note :MicrosoftDumminess __intX are Microsoft's fixed-size integers + // https://docs.microsoft.com/fr-fr/cpp/cpp/int8-int16-int32-int64 + // and for unsigned version, they prefixed it with "unsigned"... + eat_token(data); + if unsignedFound do return BuiltinType.UInt8; + else do return BuiltinType.Int8; + } + else if token == "__int16" { + eat_token(data); + if unsignedFound do return BuiltinType.UInt16; + else do return BuiltinType.Int16; + } + else if token == "__int32" { + eat_token(data); + if unsignedFound do return BuiltinType.UInt32; + else do return BuiltinType.Int32; + } + else if token == "__int64" { + eat_token(data); + if unsignedFound do return BuiltinType.UInt64; + else do return BuiltinType.Int64; + } + else if token == "int8_t" { eat_token(data); return BuiltinType.Int8; } + else if token == "int16_t" { eat_token(data); return BuiltinType.Int16; } + else if token == "int32_t" { eat_token(data); return BuiltinType.Int32; } + else if token == "int64_t" { eat_token(data); return BuiltinType.Int64; } + else if token == "uint8_t" { eat_token(data); return BuiltinType.UInt8; } + else if token == "uint16_t" { eat_token(data); return BuiltinType.UInt16; } + else if token == "uint32_t" { eat_token(data); return BuiltinType.UInt32; } + else if token == "uint64_t" { eat_token(data); return BuiltinType.UInt64; } + else if token == "size_t" { eat_token(data); return BuiltinType.Size; } + else if token == "ssize_t" { eat_token(data); return BuiltinType.SSize; } + else if token == "ptrdiff_t" { eat_token(data); return BuiltinType.PtrDiff; } + else if token == "uintptr_t" { eat_token(data); return BuiltinType.UIntPtr; } + else if token == "intptr_t" { eat_token(data); return BuiltinType.IntPtr; } + + break; + } + + // Adapt previous builtin type + if previousBuiltinType == BuiltinType.ShortInt { + shortFound = true; + } + else if previousBuiltinType == BuiltinType.Int { + intFound = true; + } + else if previousBuiltinType == BuiltinType.LongInt { + longCount += 1; + } + else if previousBuiltinType == BuiltinType.LongLongInt { + longCount += 2; + } + else if previousBuiltinType == BuiltinType.UShortInt { + unsignedFound = true; + shortFound = true; + } + else if previousBuiltinType == BuiltinType.UInt { + unsignedFound = true; + } + else if previousBuiltinType == BuiltinType.ULongInt { + unsignedFound = true; + longCount += 1; + } + else if previousBuiltinType == BuiltinType.ULongLongInt { + unsignedFound = true; + longCount += 2; + } + else if (previousBuiltinType != BuiltinType.Unknown) { + return previousBuiltinType; // float, void, etc. + } + + // Implicit and explicit int + if intFound || shortFound || unsignedFound || signedFound || longCount > 0 { + if unsignedFound { + if shortFound do return BuiltinType.UShortInt; + if longCount == 0 do return BuiltinType.UInt; + if longCount == 1 do return BuiltinType.ULongInt; + if longCount == 2 do return BuiltinType.ULongLongInt; + } else { + if shortFound do return BuiltinType.ShortInt; + if longCount == 0 do return BuiltinType.Int; + if longCount == 1 do return BuiltinType.LongInt; + if longCount == 2 do return BuiltinType.LongLongInt; + } + } + + return BuiltinType.Unknown; +} + +parse_struct_type :: proc(data : ^ParserData, definitionPermitted : bool) -> IdentifierType { + check_and_eat_token(data, "struct"); + + type : IdentifierType; + token := peek_token(data); + + if !definitionPermitted || token != "{" { + type.name = parse_identifier(data); + token = peek_token(data); + } else { + type.name = tcat("AnonymousStruct", anonymousStructCount); + type.anonymous = true; + anonymousStructCount += 1; + } + + if token == "{" { + node := parse_struct_definition(data); + node.name = type.name; + } else if definitionPermitted { + // @note Whatever happens, we create a definition of the struct, + // as it might be used to forward declare it and then use it only with a pointer. + // This for instance the pattern for xcb_connection_t which definition + // is never known from user API. + node : StructDefinitionNode; + node.forwardDeclared = false; + node.name = type.name; + append(&data.nodes.structDefinitions, node); + } + + return type; +} + +parse_union_type :: proc(data : ^ParserData) -> IdentifierType { + check_and_eat_token(data, "union"); + + type : IdentifierType; + token := peek_token(data); + + if token != "{" { + type.name = parse_identifier(data); + token = peek_token(data); + } else { + type.name = tcat("AnonymousUnion", anonymousUnionCount); + type.anonymous = true; + anonymousUnionCount += 1; + } + + if token == "{" { + node := parse_union_definition(data); + node.name = type.name; + } + + return type; +} + +parse_enum_type :: proc(data : ^ParserData) -> IdentifierType { + check_and_eat_token(data, "enum"); + + type : IdentifierType; + token := peek_token(data); + + if token != "{" { + type.name = parse_identifier(data); + token = peek_token(data); + } else { + type.name = tcat("AnonymousEnum", anonymousEnumCount); + type.anonymous = true; + anonymousEnumCount += 1; + } + + if token == "{" { + node := parse_enum_definition(data); + node.name = type.name; + } + + return type; +} + +/** + * We only care about defines of some value + */ +parse_directive :: proc(data : ^ParserData) { + check_and_eat_token(data, "#"); + + token := peek_token(data); + if token == "define" { + parse_define(data); + } // We ignore all other directives + else { + eat_line(data); + } +} + +parse_define :: proc(data : ^ParserData) { + check_and_eat_token(data, "define"); + data.foundFullReturn = false; + + node : DefineNode; + node.name = parse_identifier(data); + + // Does it look like end? It might be a #define with no expression + if is_define_end(data) { + node.value = 1; + append(&data.nodes.defines, node); + data.knownedLiterals[node.name] = node.value; + } // Macros are ignored + else if is_define_macro(data) { + print_warning("Ignoring define macro for ", node.name, "."); + } + else { + literalValue, ok := evaluate(data); + if ok { + node.value = literalValue; + append(&data.nodes.defines, node); + data.knownedLiterals[node.name] = node.value; + } + else { + print_warning("Ignoring define expression for ", node.name, "."); + } + } + + // Evaluating the expression, we might have already eaten a full return, + // if so, do nothing. + if !data.foundFullReturn { + eat_define_lines(data); + } +} + +// @fixme Move +change_anonymous_node_name :: proc (data : ^ParserData, oldName : string, newName : string) -> bool { + for i := 0; i < len(data.nodes.structDefinitions); i += 1 { + if data.nodes.structDefinitions[i].name == oldName { + data.nodes.structDefinitions[i].name = newName; + return true; + } + } + + for i := 0; i < len(data.nodes.enumDefinitions); i += 1 { + if data.nodes.enumDefinitions[i].name == oldName { + data.nodes.enumDefinitions[i].name = newName; + return true; + } + } + + for i := 0; i < len(data.nodes.unionDefinitions); i += 1 { + if data.nodes.unionDefinitions[i].name == oldName { + data.nodes.unionDefinitions[i].name = newName; + return true; + } + } + + return false; +} + +/** + * Type aliasing. + * typedef ; + */ +parse_typedef :: proc(data : ^ParserData) { + check_and_eat_token(data, "typedef"); + + // @note Struct-like definitions (and such) + // are generated within type parsing. + // + // So that typedef struct { int foo; }* Ap; is valid. + + // Parsing type + node : TypedefNode; + node.type = parse_type(data, true); + + if sourceType, ok := node.type.base.(FunctionPointerType); ok { + node.name = sourceType.name; + } else { + node.name = parse_identifier(data); + } + + // Checking if function type + token := peek_token(data); + if token == "(" { + functionType : FunctionType; + functionType.returnType = new(Type); + functionType.returnType^ = node.type; + + parse_function_parameters(data, &functionType.parameters); + + node.type.base = functionType; + } + + // Checking if array + parse_type_dimensions(data, &node.type); + + // If the underlying type is anonymous, + // we just affect it the name. + addTypedefNode := true; + if identifierType, ok := node.type.base.(IdentifierType); ok { + if identifierType.anonymous { + addTypedefNode = !change_anonymous_node_name(data, identifierType.name, node.name); + } + } + + if addTypedefNode { + knownTypeAliases[node.name] = node.type; + append(&data.nodes.typedefs, node); + } + + check_and_eat_token(data, ";"); + + // @note Commented tool for debug + // fmt.println("Typedef: ", node.type, node.name); +} + +parse_struct_definition :: proc(data : ^ParserData) -> ^StructDefinitionNode { + node : StructDefinitionNode; + node.forwardDeclared = false; + parse_struct_or_union_members(data, &node.members); + + append(&data.nodes.structDefinitions, node); + return &data.nodes.structDefinitions[len(data.nodes.structDefinitions) - 1]; +} + +parse_union_definition :: proc(data : ^ParserData) -> ^UnionDefinitionNode { + node : UnionDefinitionNode; + parse_struct_or_union_members(data, &node.members); + + append(&data.nodes.unionDefinitions, node); + return &data.nodes.unionDefinitions[len(data.nodes.unionDefinitions) - 1]; +} + +parse_enum_definition :: proc(data : ^ParserData) -> ^EnumDefinitionNode { + node : EnumDefinitionNode; + parse_enum_members(data, &node.members); + + append(&data.nodes.enumDefinitions, node); + return &data.nodes.enumDefinitions[len(data.nodes.enumDefinitions) - 1]; +} + +/** + * { + * = , + * , + * } + */ +parse_enum_members :: proc(data : ^ParserData, members : ^[dynamic]EnumMember) { + check_and_eat_token(data, "{"); + + nextMemberValue : i64 = 0; + token := peek_token(data); + for token != "}" { + member : EnumMember; + member.name = parse_identifier(data); + member.hasValue = false; + + token = peek_token(data); + if token == "=" { + check_and_eat_token(data, "="); + + member.hasValue = true; + member.value = evaluate_i64(data); + nextMemberValue = member.value; + token = peek_token(data); + } else { + member.value = nextMemberValue; + } + + data.knownedLiterals[member.name] = member.value; + nextMemberValue += 1; + + // Eat until end, as this might be a complex expression that we couldn't understand + if token != "," && token != "}" { + print_warning("Parser cannot understand fully the expression of enum member ", member.name, "."); + for token != "," && token != "}" { + eat_token(data); + token = peek_token(data); + } + } + if token == "," { + check_and_eat_token(data, ","); + token = peek_token(data); + } + + append(members, member); + } + + check_and_eat_token(data, "}"); +} + +/** + * { + * ; + * , ; + * []; + * } + */ +parse_struct_or_union_members :: proc(data : ^ParserData, structOrUnionMembers : ^[dynamic]StructOrUnionMember) { + check_and_eat_token(data, "{"); + + // To ensure unique id + unamedCount := 0; + + token := peek_token(data); + for token != "}" { + member : StructOrUnionMember; + member.type = parse_type(data, true); + + for true { + // In the case of function pointer types, the name has been parsed + // during type inspection. + if type, ok := member.type.base.(FunctionPointerType); ok { + member.name = type.name; + } + else { + // Unamed (struct or union) + token = peek_token(data); + if !is_identifier(token) { + member.name = tcat("unamed", unamedCount); + unamedCount += 1; + } + else { + member.name = parse_identifier(data); + } + } + + parse_type_dimensions(data, &member.type); + + token = peek_token(data); + if token == ":" { + check_and_eat_token(data, ":"); + print_warning("Found bitfield in struct, which is not handled correctly."); + evaluate_i64(data); + token = peek_token(data); + } + + append(structOrUnionMembers, member); + + // Multiple declarations on one line + if token == "," { + check_and_eat_token(data, ","); + continue; + } + + break; + } + + check_and_eat_token(data, ";"); + token = peek_token(data); + } + + check_and_eat_token(data, "}"); +} + +parse_variable_or_function_declaration :: proc(data : ^ParserData) { + type := parse_type(data, true); + + // If it's just a type, it might be a struct definition + token := peek_token(data); + if token == ";" { + check_and_eat_token(data, ";"); + return; + } + + // Eat array declaration if any + // @fixme The return type of a function declaration will be wrong! + for data.bytes[data.offset] == '[' { + for data.bytes[data.offset] != ']' { + data.offset += 1; + } + data.offset += 1; + } + + name := parse_identifier(data); + + token = peek_token(data); + if token == "(" { + functionDeclarationNode := parse_function_declaration(data); + functionDeclarationNode.returnType = type; + functionDeclarationNode.name = name; + return; + } else if token == "[" { + // Eat whole array declaration + for data.bytes[data.offset] == '[' { + for data.bytes[data.offset] != ']' { + data.offset += 1; + } + data.offset += 1; + } + } + + // Global variable declaration (with possible multiple declarations) + token = peek_token(data); + + for true { + if token == "," { + print_warning("Found global variable declaration '", name, "', we won't generated any binding for it."); + check_and_eat_token(data, ","); + + name = parse_identifier(data); + token = peek_token(data); + continue; + } + else if token == ";" { + if name != "" { + print_warning("Found global variable declaration '", name, "', we won't generated any binding for it."); + } + check_and_eat_token(data, ";"); + break; + } + + // Global variable assignment, considered as constant define. + node : DefineNode; + + check_and_eat_token(data, "="); + literalValue, ok := evaluate(data); + if ok { + node.name = name; + node.value = literalValue; + append(&data.nodes.defines, node); + } + else { + print_warning("Ignoring global variable expression for '", name, "'."); + } + + name = ""; + token = peek_token(data); + } +} + +parse_function_declaration :: proc(data : ^ParserData) -> ^FunctionDeclarationNode { + node : FunctionDeclarationNode; + + parse_function_parameters(data, &node.parameters); + + // Function definition? Ignore it. + token := peek_token(data); + if token == "{" { + bracesCount := 1; + for true { + data.offset += 1; + if data.bytes[data.offset] == '{' do bracesCount += 1; + else if data.bytes[data.offset] == '}' do bracesCount -= 1; + if bracesCount == 0 do break; + } + data.offset += 1; + } // Function declaration + else { + check_and_eat_token(data, ";"); + } + + append(&data.nodes.functionDeclarations, node); + return &data.nodes.functionDeclarations[len(data.nodes.functionDeclarations) - 1]; +} + +parse_function_parameters :: proc(data : ^ParserData, parameters : ^[dynamic]FunctionParameter) { + check_and_eat_token(data, "("); + + token := peek_token(data); + for token != ")" { + parameter : FunctionParameter; + + token = peek_token(data); + if token == "." { + print_warning("A function accepts variadic arguments, this is currently not handled within generated code."); + + check_and_eat_token(data, "."); + check_and_eat_token(data, "."); + check_and_eat_token(data, "."); + break; + } else { + parameter.type = parse_type(data); + } + + // Check if named parameter + token = peek_token(data); + if token != ")" && token != "," { + parameter.name = parse_identifier(data); + parse_type_dimensions(data, ¶meter.type); + token = peek_token(data); + } + + if token == "," { + eat_token(data); + token = peek_token(data); + } + + append(parameters, parameter); + } + + check_and_eat_token(data, ")"); +} diff --git a/core/bindgen/errors.odin b/core/bindgen/errors.odin new file mode 100644 index 000000000..9564c5244 --- /dev/null +++ b/core/bindgen/errors.odin @@ -0,0 +1,44 @@ +package bindgen + +import "core:fmt" +import "core:os" + +seenWarnings : map[string]bool; + +print_warning :: proc(args : ..any) { + message := tcat(..args); + + if !seenWarnings[message] { + fmt.eprint("[bindgen] Warning: ", message, "\n"); + seenWarnings[message] = true; + } +} + +print_error :: proc(data : ^ParserData, loc := #caller_location, args : ..any) { + message := tcat(..args); + + min : u32 = 0; + for i := data.offset - 1; i > 0; i -= 1 { + if data.bytes[i] == '\n' { + min = i + 1; + break; + } + } + + max := min + 200; + for i := min + 1; i < max; i += 1 { + if data.bytes[i] == '\n' { + max = i; + break; + } + } + + line, _ := get_line_column(data); + + fmt.eprint("[bindgen] Error: ", message, "\n"); + fmt.eprint("[bindgen] ... from ", loc.procedure, "\n"); + fmt.eprint("[bindgen] ... at line ", line, " within this context:\n"); + fmt.eprint("> ", extract_string(data, min, max), "\n"); + + os.exit(1); +} diff --git a/core/bindgen/generator-clean.odin b/core/bindgen/generator-clean.odin new file mode 100644 index 000000000..8dd837b10 --- /dev/null +++ b/core/bindgen/generator-clean.odin @@ -0,0 +1,284 @@ +package bindgen + +import "core:fmt" + +// Prevent keywords clashes and other tricky cases +clean_identifier :: proc(name : string) -> string { + name := name; + + if name == "" { + return name; + } + + // Starting with _? Try removing that. + for true { + if name[0] == '_' { + name = name[1:]; + } + else { + break; + } + } + + // Number + if name[0] >= '0' && name[0] <= '9' { + return tcat("_", name); + } // Keywords clash + else if name == "map" || name == "proc" || name == "opaque" || name == "in" { + return tcat("_", name); + } // Jai keywords clash + else if name == "context" || + name == "float32" || name == "float64" || + name == "s8" || name == "s16" || name == "s32" || name == "s64" || + name == "u8" || name == "u16" || name == "u32" || name == "u64" { + return tcat("_", name); + } + + return name; +} + +clean_variable_name :: proc(name : string, options : ^GeneratorOptions) -> string { + name := name; + name = change_case(name, options.variableCase); + return clean_identifier(name); +} + +clean_pseudo_type_name :: proc(structName : string, options : ^GeneratorOptions) -> string { + structName := structName; + structName = remove_postfixes(structName, options.pseudoTypePostfixes, options.pseudoTypeTransparentPostfixes); + structName = remove_prefixes(structName, options.pseudoTypePrefixes, options.pseudoTypeTransparentPrefixes); + structName = change_case(structName, options.pseudoTypeCase); + return structName; +} + +// Clean up the enum name so that it can be used to remove the prefix from enum values. +clean_enum_name_for_prefix_removal :: proc(enumName : string, options : ^GeneratorOptions) -> (string, [dynamic]string) { + enumName := enumName; + + if !options.enumValueNameRemove { + return enumName, nil; + } + + // Remove postfix and use same case convention as the enum values + removedPostfixes : [dynamic]string; + enumName, removedPostfixes = remove_postfixes_with_removed(enumName, options.enumValueNameRemovePostfixes); + enumName = change_case(enumName, options.enumValueCase); + return enumName, removedPostfixes; +} + +clean_enum_value_name :: proc(valueName : string, enumName : string, postfixes : []string, options : ^GeneratorOptions) -> string { + valueName := valueName; + + valueName = remove_prefixes(valueName, options.enumValuePrefixes, options.enumValueTransparentPrefixes); + valueName = remove_postfixes(valueName, postfixes, options.enumValueTransparentPostfixes); + + if options.enumValueNameRemove { + valueName = remove_prefixes(valueName, []string{enumName}); + } + + valueName = change_case(valueName, options.enumValueCase); + + return clean_identifier(valueName); +} + +clean_function_name :: proc(functionName : string, options : ^GeneratorOptions) -> string { + functionName := functionName; + functionName = remove_prefixes(functionName, options.functionPrefixes, options.functionTransparentPrefixes); + functionName = remove_postfixes(functionName, options.definePostfixes, options.defineTransparentPostfixes); + functionName = change_case(functionName, options.functionCase); + return functionName; +} + +clean_define_name :: proc(defineName : string, options : ^GeneratorOptions) -> string { + defineName := defineName; + defineName = remove_prefixes(defineName, options.definePrefixes, options.defineTransparentPrefixes); + defineName = remove_postfixes(defineName, options.definePostfixes, options.defineTransparentPostfixes); + defineName = change_case(defineName, options.defineCase); + return defineName; +} + +// Convert to Odin's types +clean_type :: proc(data : ^GeneratorData, type : Type, baseTab : string = "", explicitSharpType := true) -> string { + output := ""; + + for dimension in type.dimensions { + output = tcat(output, "[", dimension, "]"); + } + output = tcat(output, clean_base_type(data, type.base, baseTab, explicitSharpType)); + + return output; +} + +clean_base_type :: proc(data : ^GeneratorData, baseType : BaseType, baseTab : string = "", explicitSharpType := true) -> string { + options := data.options; + + if _type, ok := baseType.(BuiltinType); ok { + if _type == BuiltinType.Void do return options.mode == "jai" ? "void" : ""; + else if _type == BuiltinType.Int do return options.mode == "jai" ? "s64" : "_c.int"; + else if _type == BuiltinType.UInt do return options.mode == "jai" ? "u64" :"_c.uint"; + else if _type == BuiltinType.LongInt do return options.mode == "jai" ? "s64" :"_c.long"; + else if _type == BuiltinType.ULongInt do return options.mode == "jai" ? "u64" :"_c.ulong"; + else if _type == BuiltinType.LongLongInt do return options.mode == "jai" ? "s64" :"_c.longlong"; + else if _type == BuiltinType.ULongLongInt do return options.mode == "jai" ? "u64" :"_c.ulonglong"; + else if _type == BuiltinType.ShortInt do return options.mode == "jai" ? "s16" :"_c.short"; + else if _type == BuiltinType.UShortInt do return options.mode == "jai" ? "u16" :"_c.ushort"; + else if _type == BuiltinType.Char do return options.mode == "jai" ? "u8" :"_c.char"; + else if _type == BuiltinType.SChar do return options.mode == "jai" ? "s8" :"_c.schar"; + else if _type == BuiltinType.UChar do return options.mode == "jai" ? "u8" :"_c.uchar"; + else if _type == BuiltinType.Float do return options.mode == "jai" ? "float32" :"_c.float"; + else if _type == BuiltinType.Double do return options.mode == "jai" ? "float64" :"_c.double"; + else if _type == BuiltinType.LongDouble { + print_warning("Found long double which is currently not supported. Fallback to double in generated code."); + return options.mode == "jai" ? "double" :"_c.double"; + } + else if _type == BuiltinType.Int8 do return options.mode == "jai" ? "s8" :"i8"; + else if _type == BuiltinType.Int16 do return options.mode == "jai" ? "s16" :"i16"; + else if _type == BuiltinType.Int32 do return options.mode == "jai" ? "s32" :"i32"; + else if _type == BuiltinType.Int64 do return options.mode == "jai" ? "s64" :"i64"; + else if _type == BuiltinType.UInt8 do return options.mode == "jai" ? "u8" :"u8"; + else if _type == BuiltinType.UInt16 do return options.mode == "jai" ? "u16" :"u16"; + else if _type == BuiltinType.UInt32 do return options.mode == "jai" ? "u32" :"u32"; + else if _type == BuiltinType.UInt64 do return options.mode == "jai" ? "u64" :"u64"; + else if _type == BuiltinType.Size do return options.mode == "jai" ? "u64" :"_c.size_t"; + else if _type == BuiltinType.SSize do return options.mode == "jai" ? "u64" :"_c.ssize_t"; + else if _type == BuiltinType.PtrDiff do return options.mode == "jai" ? "s64" :"_c.ptrdiff_t"; + else if _type == BuiltinType.UIntPtr do return options.mode == "jai" ? "u64" :"_c.uintptr_t"; + else if _type == BuiltinType.IntPtr do return options.mode == "jai" ? "s64" :"_c.intptr_t"; + } + else if _type, ok := baseType.(PointerType); ok { + if options.mode == "jai" { + // Hide pointers to types that were not declared. + if !is_known_base_type(data, _type.type.base) { + print_warning("*", _type.type.base.(IdentifierType).name, " replaced by *void as the pointed type is unknown."); + return "*void"; + } + } else { + if __type, ok := _type.type.base.(BuiltinType); ok { + if __type == BuiltinType.Void do return "rawptr"; + else if __type == BuiltinType.Char do return "cstring"; + } + } + name := clean_type(data, _type.type^, baseTab); + return tcat(options.mode == "jai" ? "*" :"^", name); + } + else if _type, ok := baseType.(IdentifierType); ok { + return clean_pseudo_type_name(_type.name, options); + } + else if _type, ok := baseType.(FunctionType); ok { + output : string; + if explicitSharpType { + output = "#type "; + } + output = tcat(output, options.mode == "jai" ? "(" :"proc("); + parameters := clean_function_parameters(data, _type.parameters, baseTab); + output = tcat(output, parameters, ")"); + + returnType := clean_type(data, _type.returnType^); + if len(returnType) > 0 && returnType != "void" { + output = tcat(output, " -> ", returnType); + } + return output; + } + else if _type, ok := baseType.(FunctionPointerType); ok { + output : string; + if explicitSharpType { + output = "#type "; + } + output = tcat(output, options.mode == "jai" ? "(" :"proc("); + parameters := clean_function_parameters(data, _type.parameters, baseTab); + output = tcat(output, parameters, ")"); + + returnType := clean_type(data, _type.returnType^); + if len(returnType) > 0 && returnType != "void" { + output = tcat(output, " -> ", returnType); + } + + if options.mode == "jai" { + output = tcat(output, " #foreign"); + } + return output; + } + + return ""; +} + +clean_function_parameters :: proc(data : ^GeneratorData, parameters : [dynamic]FunctionParameter, baseTab : string) -> string { + output := ""; + options := data.options; + + // Special case: function(void) does not really have a parameter + if len(parameters) == 1 { + if _type, ok := parameters[0].type.base.(BuiltinType); ok { + if _type == BuiltinType.Void { + return ""; + } + } + } + + tab := ""; + if options.mode == "jai" { // @note :OdinCodingStyle Odin forces a coding style, now. Ugh. + if (len(parameters) > 1) { + output = tcat(output, "\n"); + tab = tcat(baseTab, " "); + } + } + + unamedParametersCount := 0; + for parameter, i in parameters { + type := clean_type(data, parameter.type); + + name : string; + if len(parameter.name) != 0 { + name = clean_variable_name(parameter.name, options); + } else { + name = tcat("unamed", unamedParametersCount); + unamedParametersCount += 1; + } + + output = tcat(output, tab, name, " : ", type); + + if i != len(parameters) - 1 { + if options.mode == "jai" { // @note :OdinCodingStyle + output = tcat(output, ",\n"); + } else { + output = tcat(output, ", "); + } + } + } + + if (len(parameters) > 1) { + if options.mode == "jai" { // @note :OdinCodingStyle + output = tcat(output, "\n", baseTab); + } + } + + return output; +} + +is_known_base_type :: proc(data : ^GeneratorData, baseType : BaseType) -> bool { + if _type, ok := baseType.(IdentifierType); ok { + for it in data.nodes.typedefs { + if _type.name == it.name { + return true; + } + } + for it in data.nodes.structDefinitions { + if _type.name == it.name { + return true; + } + } + for it in data.nodes.enumDefinitions { + if _type.name == it.name { + return true; + } + } + for it in data.nodes.unionDefinitions { + if _type.name == it.name { + return true; + } + } + return false; + } + + return true; +} diff --git a/core/bindgen/generator-export.odin b/core/bindgen/generator-export.odin new file mode 100644 index 000000000..a04113ed9 --- /dev/null +++ b/core/bindgen/generator-export.odin @@ -0,0 +1,166 @@ +package bindgen + +import "core:os" +import "core:fmt" + +export_defines :: proc(data : ^GeneratorData) { + for node in data.nodes.defines { + defineName := clean_define_name(node.name, data.options); + + // @fixme fprint of float numbers are pretty badly handled, + // just has a 10^-3 precision. + fcat(data.handle, defineName, " :: ", node.value, ";\n"); + } + fcat(data.handle, "\n"); +} + +export_typedefs :: proc(data : ^GeneratorData) { + for node in data.nodes.typedefs { + name := clean_pseudo_type_name(node.name, data.options); + type := clean_type(data, node.type, "", true); + if name == type do continue; + fcat(data.handle, name, " :: ", type, ";\n"); + } + fcat(data.handle, "\n"); +} + +export_enums :: proc(data : ^GeneratorData) { + for node in data.nodes.enumDefinitions { + enumName := clean_pseudo_type_name(node.name, data.options); + + if data.options.mode == "jai" { + consideredFlags := false; + for postfix in data.options.enumConsideredFlagsPostfixes { + if ends_with(node.name, postfix) { + consideredFlags = true; + break; + } + } + + if consideredFlags { + fcat(data.handle, enumName, " :: enum_flags u32 {"); + } else { + fcat(data.handle, enumName, " :: enum s32 {"); + } + } else { + fcat(data.handle, enumName, " :: enum i32 {"); + } + + postfixes : [dynamic]string; + enumName, postfixes = clean_enum_name_for_prefix_removal(enumName, data.options); + + // Changing the case of postfixes to the enum value one, + // so that they can be removed. + enumValueCase := find_case(node.members[0].name); + for postfix, i in postfixes { + postfixes[i] = change_case(postfix, enumValueCase); + } + + // And changing the case of enumName to the enum value one + enumName = change_case(enumName, enumValueCase); + + // Merging enum value postfixes with postfixes that have been removed from the enum name. + for postfix in data.options.enumValuePostfixes { + append(&postfixes, postfix); + } + + export_enum_members(data, node.members, enumName, postfixes[:]); + fcat(data.handle, data.options.mode == "jai" ? "}\n" : "};\n"); + fcat(data.handle, "\n"); + } +} + +export_structs :: proc(data : ^GeneratorData) { + for node in data.nodes.structDefinitions { + structName := clean_pseudo_type_name(node.name, data.options); + fcat(data.handle, structName, " :: struct {"); + export_struct_or_union_members(data, node.members); + fcat(data.handle, data.options.mode == "jai" ? "}\n" : "};\n"); + fcat(data.handle, "\n"); + } +} + +export_unions :: proc(data : ^GeneratorData) { + for node in data.nodes.unionDefinitions { + unionName := clean_pseudo_type_name(node.name, data.options); + fcat(data.handle, unionName, data.options.mode == "jai" ? " :: union {" : " :: struct #raw_union {"); + export_struct_or_union_members(data, node.members); + fcat(data.handle, data.options.mode == "jai" ? "}\n" : "};\n"); + fcat(data.handle, "\n"); + } +} + +export_functions :: proc(data : ^GeneratorData) { + for node in data.nodes.functionDeclarations { + functionName := clean_function_name(node.name, data.options); + if data.options.mode == "jai" { + fcat(data.handle, functionName, " :: ("); + } else { + fcat(data.handle, " @(link_name=\"", node.name, "\")\n"); + fcat(data.handle, " ", functionName, " :: proc("); + } + parameters := clean_function_parameters(data, node.parameters, data.options.mode == "jai" ? "" : " "); + fcat(data.handle, parameters, ")"); + returnType := clean_type(data, node.returnType); + if len(returnType) > 0 { + fcat(data.handle, " -> ", returnType); + } + if data.options.mode == "jai" { + fcat(data.handle, " #foreign ", data.foreignLibrary, " \"", node.name ,"\";\n"); + } else { + fcat(data.handle, " ---;\n"); + } + fcat(data.handle, "\n"); + } +} + +export_enum_members :: proc(data : ^GeneratorData, members : [dynamic]EnumMember, enumName : string, postfixes : []string) { + if (len(members) > 0) { + fcat(data.handle, "\n"); + } + + cleanedMembers : [dynamic]EnumMember; + for member in members { + cleanedMember : EnumMember; + cleanedMember.hasValue = member.hasValue; + cleanedMember.value = member.value; + cleanedMember.name = clean_enum_value_name(member.name, enumName, postfixes, data.options); + + if len(cleanedMember.name) == 0 { + // print_warning("Enum member ", member.name, " resolves to an empty name. Ignoring it."); + continue; + } + + // Ensuring that we don't collide with an other enum member. + foundCopy := false; + for existingCleanedMember in cleanedMembers { + if cleanedMember.name == existingCleanedMember.name && + cleanedMember.hasValue == existingCleanedMember.hasValue && + cleanedMember.value == existingCleanedMember.value { + print_warning("Enum member ", member.name, " is duplicated once cleaned. Keeping only one copy."); + foundCopy = true; + break; + } + } + if foundCopy do continue; + + fcat(data.handle, " ", cleanedMember.name); + if member.hasValue { + fcat(data.handle, data.options.mode == "jai" ? " :: " : " = ", member.value); + } + fcat(data.handle, data.options.mode == "jai" ? ";\n" : ",\n"); + + append(&cleanedMembers, cleanedMember); + } +} + +export_struct_or_union_members :: proc(data : ^GeneratorData, members : [dynamic]StructOrUnionMember) { + if (len(members) > 0) { + fcat(data.handle, "\n"); + } + for member in members { + type := clean_type(data, member.type, " "); + name := clean_variable_name(member.name, data.options); + fcat(data.handle, " ", name, " : ", type, data.options.mode == "jai" ? ";\n" : ",\n"); + } +} diff --git a/core/bindgen/generator-helpers.odin b/core/bindgen/generator-helpers.odin new file mode 100644 index 000000000..a3b37f4f6 --- /dev/null +++ b/core/bindgen/generator-helpers.odin @@ -0,0 +1,392 @@ +package bindgen + +import "core:fmt" +import "core:os" +import "core:io" +import "core:strings" +import "core:unicode/utf8" + +Case :: enum { + Unknown, + Camel, + Constant, + Kebab, + Pascal, + Snake, +} + +WordCase :: enum { + Unknown, + Up, + Low, + FirstUp, + // When first upping, numbers are followed always by a capital + FirstUpNumberReset, +} + +// Change a character to a capital. +to_uppercase :: proc(c : rune) -> rune { + c := c; + if c >= 'a' && c <= 'z' { + c = c - 'a' + 'A'; + } + return c; +} + +// Change a character to lowercase. +to_lowercase :: proc(c : rune) -> rune { + c := c; + if c >= 'A' && c <= 'Z' { + c = c - 'A' + 'a'; + } + return c; +} + +// @note Stolen tprint and fprint from fmt package, because it was confusing due to args: ..any and sep default parameter. +tcat :: proc(args: ..any) -> string { + return fmt.tprint(args=args, sep=""); +} + +fcat :: proc(fd: os.Handle, args: ..any) -> int { + return fmt.fprint(fd=fd, args=args, sep=""); +} + +// Change the case convention of a word. +change_word_case :: proc(str : string, targetCase : WordCase) -> string { + newStr : string; + if targetCase == WordCase.Up { + for c in str { + newStr = tcat(newStr, to_uppercase(c)); + } + } + else if targetCase == WordCase.Low { + for c in str { + newStr = tcat(newStr, to_lowercase(c)); + } + } + else if targetCase == WordCase.FirstUp { + for c, i in str { + if i == 0 { + newStr = tcat(newStr, to_uppercase(c)); + } else { + newStr = tcat(newStr, to_lowercase(c)); + } + } + } + else if targetCase == WordCase.FirstUpNumberReset { + for c, i in str { + if i == 0 || (str[i - 1] >= '0' && str[i - 1] <= '9') { + newStr = tcat(newStr, to_uppercase(c)); + } else { + newStr = tcat(newStr, to_lowercase(c)); + } + } + } + return newStr; +} + +// Change the case convention of a string by detecting original convention, +// then splitting it into words. +change_case :: proc(str : string, targetCase : Case) -> string { + if targetCase == Case.Unknown { + return str; + } + + // Split + parts := autosplit_string(str); + + // Join + newStr : string; + if targetCase == Case.Pascal { + for part, i in parts { + newStr = tcat(newStr, change_word_case(part, WordCase.FirstUpNumberReset)); + } + } + else if targetCase == Case.Snake { + for part, i in parts { + newStr = tcat(newStr, change_word_case(part, WordCase.Low), (i != len(parts) - 1) ? "_" : ""); + } + } + else if targetCase == Case.Kebab { + for part, i in parts { + newStr = tcat(newStr, change_word_case(part, WordCase.Low), (i != len(parts) - 1) ? "-" : ""); + } + } + else if targetCase == Case.Camel { + for part, i in parts { + if i == 0 { + newStr = tcat(newStr, change_word_case(part, WordCase.Low)); + } else { + newStr = tcat(newStr, change_word_case(part, WordCase.FirstUpNumberReset)); + } + } + } + else if targetCase == Case.Constant { + for part, i in parts { + newStr = tcat(newStr, change_word_case(part, WordCase.Up), (i != len(parts) - 1) ? "_" : ""); + } + } + + return newStr; +} + +// Identify the case of the provided string. +// Full lowercase with no separator is identified as camelCase. +find_case :: proc(str : string) -> Case { + refuted : bool; + + // CONSTANT_CASE + refuted = false; + for c in str { + if (c != '_') && (c < 'A' || c > 'Z') && (c < '0' || c > '9') { + refuted = true; + break; + } + } + if !refuted do return Case.Constant; + + for c in str { + // snake_case + if c == '_' { + return Case.Snake; + } // kebab-case + else if c == '-' { + return Case.Kebab; + } + } + + // PascalCase + if str[0] >= 'A' && str[0] <= 'Z' { + return Case.Pascal; + } + + // camelCase + return Case.Camel; +} + +// Splits the string according to detected case. +// HeyBuddy -> {"Hey", "Buddy"} +// hey-buddy -> {"hey", "buddy"} +// _hey_buddy -> {"", "hey", "buddy"} +// and such... +autosplit_string :: proc(str : string) -> [dynamic]string { + lowCount := 0; + upCount := 0; + for c in str { + // If any '_', split according to that (CONSTANT_CASE or snake_case) + if c == '_' { + return split_from_separator(str, '_'); + } // If any '-', split according to that (kebab-case) + else if c == '-' { + return split_from_separator(str, '-'); + } + else if c >= 'a' && c <= 'z' { + lowCount += 1; + } + else if c >= 'A' && c <= 'Z' { + upCount += 1; + } + } + + // If it seems to be only one word + if lowCount == 0 || upCount == 0 { + parts : [dynamic]string; + append(&parts, str); + return parts; + } + + // Split at each uppercase letter (PascalCase or camelCase) + return split_from_capital(str); +} + +split_from_separator :: proc(str : string, sep : rune) -> [dynamic]string { + parts : [dynamic]string; + + lastI := 0; + + // Empty strings for starting separators in string + for c in str { + if c == sep { + append(&parts, ""); + lastI += 1; + } else { + break; + } + } + + // Ignore non letter prefix + if lastI == 0 { + for c in str { + if (c < 'a' || c > 'z') && (c < 'A' || c > 'Z') { + lastI += 1; + } + else { + break; + } + } + } + + for c, i in str { + if i > lastI + 1 && c == sep { + append(&parts, str[lastI:i]); + lastI = i + 1; + } + } + + append(&parts, str[lastI:]); + + return parts; +} + +split_from_capital :: proc(str : string) -> [dynamic]string { + parts : [dynamic]string; + + // Ignore non letter prefix + lastI := 0; + for c in str { + if (c < 'a' || c > 'z') && (c < 'A' || c > 'Z') { + lastI += 1; + } + else { + break; + } + } + + // We want to handle: + // myBrainIsCRAZY -> my Brain Is Crazy + // myCRAZYBrain -> my CRAZY Brain + // SOLO -> SOLO + + // Do split + for i := 1; i < len(str); i += 1 { + if str[i] >= 'A' && str[i] <= 'Z' { + // Do not split too much if it seems to be a capitalized word + if (lastI == i - 1) && (str[lastI] >= 'A' && str[lastI] <= 'Z') { + for ; i + 1 < len(str); i += 1 { + if str[i + 1] < 'A' || str[i + 1] > 'Z' { + break; + } + } + if (i + 1 == len(str)) && (str[i] >= 'A' && str[i] <= 'Z') { + i += 1; + } + } + + append(&parts, str[lastI:i]); + lastI = i; + } + } + + if lastI != len(str) { + append(&parts, str[lastI:]); + } + + return parts; +} + +// Check if str if prefixed with any of the provided strings, +// even combinaisons of those, and remove them. +remove_prefixes :: proc(str : string, prefixes : []string, transparentPrefixes : []string = nil) -> string { + str := str; + transparentStr := ""; + + found := true; + for found { + found = false; + + // Remove effective prefixes + for prefix in prefixes { + if len(str) >= len(prefix) && + str[:len(prefix)] == prefix { + str = str[len(prefix):]; + if len(str) != 0 && (str[0] == '_' || str[0] == '-') { + str = str[1:]; + } + found = true; + break; + } + } + + if found do continue; + + // Remove transparent ones, only one by one, + // as we want effective ones to be fully removed. + for prefix in transparentPrefixes { + if len(str) >= len(prefix) && + str[:len(prefix)] == prefix { + str = str[len(prefix):]; + transparentStr = tcat(transparentStr, prefix); + if len(str) != 0 && (str[0] == '_' || str[0] == '-') { + str = str[1:]; + transparentStr = tcat(transparentStr, '_'); + } + found = true; + break; + } + } + } + + return tcat(transparentStr, str); +} + +// Check if str if postfixes with any of the provided strings, +// even combinaisons of those, and remove them. +remove_postfixes_with_removed :: proc( + str : string, + postfixes : []string, + transparentPostfixes : []string = nil) -> (string, [dynamic]string) { + str := str; + removedPostfixes : [dynamic]string; + transparentStr := ""; + + found := true; + for found { + found = false; + + // Remove effective postfixes + for postfix in postfixes { + if ends_with(str, postfix) { + str = str[:len(str) - len(postfix)]; + if len(str) != 0 && (str[len(str)-1] == '_' || str[len(str)-1] == '-') { + str = str[:len(str)-1]; + } + append(&removedPostfixes, postfix); + found = true; + break; + } + } + + if found do continue; + + // Remove transparent ones, only one by one, + // as we want effective ones to be fully removed. + for postfix in transparentPostfixes { + if ends_with(str, postfix) { + str = str[:len(str) - len(postfix)]; + transparentStr = tcat(postfix, transparentStr); + if len(str) != 0 && (str[len(str)-1] == '_' || str[len(str)-1] == '-') { + str = str[:len(str)-1]; + transparentStr = tcat('_', transparentStr); + } + found = true; + break; + } + } + } + + return tcat(str, transparentStr), removedPostfixes; +} + +remove_postfixes :: proc( + str : string, + postfixes : []string, + transparentPostfixes : []string = nil) -> string { + str := str; + removedPostfixes : [dynamic]string; + str, removedPostfixes = remove_postfixes_with_removed(str, postfixes, transparentPostfixes); + return str; +} + +ends_with :: proc(str : string, postfix : string) -> bool { + return len(str) >= len(postfix) && str[len(str) - len(postfix):] == postfix; +} diff --git a/core/bindgen/generator.odin b/core/bindgen/generator.odin new file mode 100644 index 000000000..3ef3d69c0 --- /dev/null +++ b/core/bindgen/generator.odin @@ -0,0 +1,205 @@ +/** + * Odin binding generator from C header data. + */ + +package bindgen + +import "core:os" +import "core:fmt" +import "core:runtime" + +GeneratorOptions :: struct { + mode : string, // "odin" or "jai" + + // Variable + variableCase : Case, + + // Defines + definePrefixes : []string, + defineTransparentPrefixes : []string, + definePostfixes : []string, + defineTransparentPostfixes : []string, + defineCase : Case, + + // Pseudo-types + pseudoTypePrefixes : []string, + pseudoTypeTransparentPrefixes : []string, + pseudoTypePostfixes : []string, + pseudoTypeTransparentPostfixes : []string, + pseudoTypeCase : Case, + + // Enums + enumConsideredFlagsPostfixes : []string, + + // Functions + functionPrefixes : []string, + functionTransparentPrefixes : []string, + functionPostfixes : []string, + functionTransparentPostfixes : []string, + functionCase : Case, + + // Enum values + enumValuePrefixes : []string, + enumValueTransparentPrefixes : []string, + enumValuePostfixes : []string, + enumValueTransparentPostfixes : []string, + enumValueCase : Case, + enumValueNameRemove : bool, + enumValueNameRemovePostfixes : []string, + + parserOptions : ParserOptions, +} + +GeneratorData :: struct { + handle : os.Handle, + nodes : Nodes, + + // References + foreignLibrary : string, + options : ^GeneratorOptions, +} + +generate :: proc( + packageName : string, + foreignLibrary : string, + outputFile : string, + headerFiles : []string, + options : GeneratorOptions, +) { + options := options; + data : GeneratorData; + data.options = &options; + data.foreignLibrary = foreignLibrary; + + if options.mode == "" { + options.mode = "odin"; + } + + // Outputing odin file + errno : os.Errno; + + // chmod 664 when creating file + mode: int = 0; + when os.OS == "linux" || os.OS == "darwin" { + mode = os.S_IRUSR | os.S_IWUSR | os.S_IRGRP | os.S_IWGRP | os.S_IROTH; + } + + data.handle, errno = os.open(outputFile, os.O_WRONLY | os.O_CREATE | os.O_TRUNC, mode); + if errno != 0 { + fmt.eprint("[bindgen] Unable to write to output file ", outputFile, " (", errno ,")\n"); + return; + } + defer os.close(data.handle); + + if options.mode == "jai" { + fcat(data.handle, foreignLibrary, " :: #foreign_library \"", foreignLibrary, "\";\n"); + fcat(data.handle, "\n"); + } else { + fcat(data.handle, "package ", packageName, "\n"); + fcat(data.handle, "\n"); + fcat(data.handle, "foreign import \"", foreignLibrary, "\"\n"); + fcat(data.handle, "\n"); + fcat(data.handle, "import _c \"core:c\"\n"); + fcat(data.handle, "\n"); + } + + // Parsing header files + anonymousStructCount = 0; + anonymousUnionCount = 0; + anonymousEnumCount = 0; + + for headerFile in headerFiles { + bytes, ok := os.read_entire_file(headerFile); + if !ok { + fmt.eprint("[bindgen] Unable to read file ", headerFile, "\n"); + return; + } + + // We fuse the SOAs + headerNodes := parse(bytes, options.parserOptions); + merge_generic_nodes(&data.nodes.defines, &headerNodes.defines); + merge_generic_nodes(&data.nodes.enumDefinitions, &headerNodes.enumDefinitions); + merge_generic_nodes(&data.nodes.unionDefinitions, &headerNodes.unionDefinitions); + merge_forward_declared_nodes(&data.nodes.structDefinitions, &headerNodes.structDefinitions); + merge_generic_nodes(&data.nodes.functionDeclarations, &headerNodes.functionDeclarations); + merge_generic_nodes(&data.nodes.typedefs, &headerNodes.typedefs); + } + + // Exporting + export_defines(&data); + export_typedefs(&data); + export_enums(&data); + export_structs(&data); + export_unions(&data); + + // Foreign block for functions + if options.mode != "jai" { + foreignLibrarySimple := simplify_library_name(foreignLibrary); + fcat(data.handle, "@(default_calling_convention=\"c\")\n"); + fcat(data.handle, "foreign ", foreignLibrarySimple, " {\n"); + fcat(data.handle, "\n"); + } + + export_functions(&data); + + if options.mode != "jai" { + fcat(data.handle, "}\n"); + } +} + +// system:foo.lib -> foo +simplify_library_name :: proc(libraryName : string) -> string { + startOffset := 0; + endOffset := len(libraryName); + + for c, i in libraryName { + if startOffset == 0 && c == ':' { + startOffset = i + 1; + } + else if c == '.' { + endOffset = i; + break; + } + } + + return libraryName[startOffset:endOffset]; +} + +merge_generic_nodes :: proc(nodes : ^$T, headerNodes : ^T) { + for headerNode in headerNodes { + // Check that there are no duplicated nodes (due to forward declaration or such) + duplicatedIndex := -1; + for i := 0; i < len(nodes); i += 1 { + node := nodes[i]; + if node.name == headerNode.name { + duplicatedIndex = i; + break; + } + } + + if duplicatedIndex < 0 { + append(nodes, headerNode); + } + } +} + +merge_forward_declared_nodes :: proc(nodes : ^$T, headerNodes : ^T) { + for headerNode in headerNodes { + // Check that there are no duplicated nodes (due to forward declaration or such) + duplicatedIndex := -1; + for i := 0; i < len(nodes); i += 1 { + node := nodes[i]; + if node.name == headerNode.name { + duplicatedIndex = i; + break; + } + } + + if duplicatedIndex < 0 { + append(nodes, headerNode); + } + else if !headerNode.forwardDeclared && len(headerNode.members) > 0 { + nodes[duplicatedIndex] = headerNode; + } + } +} diff --git a/vendor/stb/lib/darwin/libstb_image.a b/vendor/stb/lib/darwin/libstb_image.a new file mode 100644 index 0000000000000000000000000000000000000000..06ce4432192e21268b40c487d33f54d0d4ec0007 GIT binary patch literal 55744 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 NM4g=;br$D{{|6{&o+bbQ literal 0 HcmV?d00001 diff --git a/vendor/stb/lib/darwin/stb_image.a b/vendor/stb/lib/darwin/stb_image.a new file mode 100644 index 0000000000000000000000000000000000000000..1379d6f9e70c8dd9a853de55e1f5346d8d17f244 GIT binary patch literal 97544 zcmeFa3wTsTwlChDZjufJDk^GJggC|-qK*7<+ylPZo?_bHaqpxe#O)um8qT^3#U%Lb(%-D;cteWer+~a zw#`;#J}H6T?=zp(=JQGO`3Lj)s`=byK0h#@$INFwU=y4|^Lc~${E_(#n9mjF^Iy&9 zM)SGHeE!XRo;061SrYEq=JP7^=`){|=JQeW`OoI_x8`$)`P^$hKQ^CP4hi>s^I2*> z=a|p1`TSS&x!HWaZ9ZL2S^iS zfV^=2gJ#*e_f!$E`|-GU_5%;hJ~et_#q9g%n9=hdn0@b@^2(|?sfY(F=UZtAB5D2u z9kPprHP%S)~;zk8m)@B3*$TiIoDI{eI(zLlWe zy)_UK`p0}>c`7Xvb}BjpFp&||q{MV;rbVYylX}`jLUek`wV7}I<78%)iJ7$%=k(hS zQAVVswIVYTWKXYMWIh%8z4IzhQ*mWlX){k>KA;NCq&{f$2Xx^ae|hEo^A?m7@6RJx zso`N(^$j^PIiE82JI+i%kK8}+?(%!)RLs9;PWjz|%E~zwZ=@$Y01W0=^ix76l;0be zvvA?Ud5>5_0}v_4os9c@f#x(`ohcqRK~l^as@|i891fGrYxYJm@LZgUbs-ctI9ORER2Um_X~TY zGT@z=7Ei$xyoYC35y0~DOn3z*e$ScZ3V|Q}O_^%9QCrUvZ@oX|7Gh>pUwBcIFY}BY_?d>q(6_^FP0gret3i|csJ<4(_yv+9IcS%6A%yCw5 z^4sxyV8QGP5{ZlEJ$O%fxlff4Gfx1wsVlpHa7(ffvfP3Xd_CofwpY?qd%fQq11l6-BySvAwl_E zP*j`ojND_ljRZ3To^1;L(O<~?cNw1R@sDKIfAw#=#{Z`2-_!Uu zjW_xDr#}9kk00~!4w2^NjT%2Bf^t~->O%ALwxN_n4J zwVIE+QHRRIANM4aUjCYwzp3$~Uf!eWf_cz7jeA<~MugT3V`MU!)VR`)7#GEGrOnF9 zl~#@aq(iHxeyWy<-Ay$VqCbuEr{p7ohtFu}K$Sk8lr7O$H6zx`SG7_iM;-6__(wi| zSk(n?A{UVXMsjy&|*glwXS!ySWlskcfClp%3QsukM*5N559(aZmV@fK$=)id43~1OGnvR`duEUcR01zrqvlTz0m~J4$xePP^HzM26;R z$(ZJD4s=-EnYhqX@3`%@A zI1c@lwD~V2oN_eX)2!+v75zFzKgY*E1g-)vA8!MfjQnQu{6AJXl~wj={0+$}G(0j` z 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 VgvCIU*OUwPCyoSGl89s9wlAP9^WFde literal 0 HcmV?d00001 diff --git a/vendor/stb/lib/darwin/stb_image_resize.a b/vendor/stb/lib/darwin/stb_image_resize.a new file mode 100644 index 0000000000000000000000000000000000000000..f39c507a6c92d777f16c781d44a9dd3b623c42f9 GIT binary patch literal 36824 zcmch=3tUvy+CM%6gQB7vOv_3W(+tuv$xBYa45KqT*kGO%#S4x&f>H<`VDgd|ibmOI zJ7}FKJEd{zc=A}Lz2zm#1SQ2=;iXcsqAZi6mAAa4Ilu3-*4o1`g3#xE|Ns4A@9$pg zdDgR@^{i)I_S$O?-Qv=6ozso2yT?5EP~XV9BW7U#eg?z9fiZ(3BM0=20fCca`t}{z zzkg(8zX1aU^W@eJN1svSk}TGtk)s}ae6-b~!7-99I96*lnsx&36=)PVO5hU$7Ylq< z;3k1p0xUc}SvhI>4aGU8rDvz-W;z3Cx#`m~bFu>>^ITJA zX3kE}3W#=PX6MHYY(x+d2Q`pj(5?6#dAZZ3G?<78j`XS1(r4sMO-GsOp!z{o_zqwF zplTYdpMm}Q^ZK0J8YXjO&Pbb^hs&hv=fD4aqoqcp4aPmHN)v)}H3cGZ;dr7S|EpXBijWZl)e#4}BS+zQ!fPJ$gvLC|{P-!#%vM-2d4hRT>JBDpta*$%**tob?U^%` z5RxQU$VrD2Wv@lCj#QFtHYGJunIEoLqvQ?KZ+N|ONfxda*;7D)t5*=S!lkGqbaOOZnt15E)c%+hb(q2j!s&WAlCEF&rRz=>^C^qj)mMtzBaN$+CRLr6 z!VgH34oMLul$R8>JwxiaUD|o@Cs?X&Rf0wnQzrE(mtHE{LJr@m%Dr2%mdEUt`W%p6 zDsOeb>Mk=&)=Haa>trOChfS0po6Ia|mUr6a%iNgmGU>Vg!LX{l!!FNXZ&7A+vhxIX z*~__=$Lxjk4{KaqloB$bwC;f7O0aq2sWPOE{f*MP^Rnx()%~-pvry=c13RVK807!lIIz^+4?bt>t0liNVCuD8iOQ|JXLr3`-2x~%mDsdt&|4)u~ivI+@YEd-LJJ(!~W8A)Lz ziP;^g-J}{bf$R=v1d)ZCvJiw0jie|qukETWKX6s{bZR7N9Y<&4@JxqLi{dT-D6Gwy zrFCWHH9@jFis){VbaR3NEO$g6PLS&!MAC6j#|8oG0qO!dh~pu1ge8-VJ|=5$YI zv?{xN-WHs^*=E?DKZ+SArn+_sx<@dR5YFr;nF(^1@YJLoiG;YUKyi{=ftX$HK_Jkf zl&HQ#?Ov@YUz1g~vT`dMsI*Fnf1QEXQ%bQO*3Bty>fo5JMBzqg`%)ZyCOWA=TD%hd zhDBLROx(T5Po=1G?t{Jr>6Bpc8T9%VWfiYWCSLoU`SNjUYf-5MQgJ+l!J~KBJiI9t z?1M#Q>tW=qzaJ9Nn+UFT?|4&Yzp&##nT%CFzDHw9;%x}=V6<6kKNh1%I36G>Cn+tnhiUs zibx6>n=0fbh@lE;$15hDP+B@2lK_jHzFJ|!BQjv^302)RrmO1<5N$5_9yiUR(Pj#wO2SZujUs)IjW>utcb|%vM-Ns+ErL^xw)F zj-0%Hut#^7ZMjWJ-V6;pJc}-PxkY>AmCN%FLo`XWIS(Rona!hH=9%OzycR4io`f+U zL(!9=0B7gdZQ5(z6BuZUpF@1iL3mTRy#!u4ZV!AZY#H1wY?;lw-DWu8I#D|rJj9#A zc;!R3@)JQUMHgQRjQ9~@ojl{UEPjPAez|9E5RsO%_^rNpXdV%^*;cqcI1yRAQ~L+X zMp^s@j5#QOWh?)QXA$p9GKi!j)u6yEn0(5I3gMT9XM8Zrr9pmVtxGgixn8V&mSw$Q z0W4NZ78BO^Le1D-bsb{pO7g$ZsYb%66cJV>jI{5x(Y<@YBX;?})|i7TPtX+FP(Xhw0&mNmvndF(EMXj!vmfS^d zq0Fejhz=j4CU5pum<{_RxAr=!m(M$tSv^>bsqNYV!#^AKs9SW1BNd;(6kdu-DuAlx7o_%OQnWh~6x^2Mwl8k2F<#N|FzJLL9@qsx z37NyP0e@7b6jee=q?A3^kB;IH&vRJL^Ue3`x}TU<}Ra zpeA~h#dwaC79B_Ljqa@gWiiXYiN3|Acz6$xw9L-CK8t)o@vH}voK&iKHseOSJJ_?2 zMHFBdW%COUbqD2FgXE;;iO$c_TOP2<$*YGdJ+9d0t<;bQE0!xd3=J3zix31yImT-0 zn=r~J01~Bjm#BwT+^loM{7hkUF>sOB*p;npEajaL`jO2F8$5AWsj!mE)(YSJ)icyv zcm;jMN%U?uPumAsNp;WIw3Xf(OKkdKi;`4|N09=XlC)Y{nog5p%>H^=D@dHpxjW_( zg)Q0|bVchi&0P>HtxH~R^Tf5YIk!`Hh319cDjD5NxNZyD8JY*~$5q0iQo>%wH6rX~ zG^j+w7p@aF?@m-)4=rVEmMiA{tM(#wx;Lru4JlivhTU2Is3(7h2F)-)nOsulQBPP< z1Iqjjea-<}`FH56!ox7D6e>wfCCM`!9Zz^zkuQEJ?`GY5z(`u>j#t zdjs8RN$o1w(WaD8E4o?LB1ZH%H@r&zG7;_UX15x7E4Q-CzsKx$S1;%iLz4;NDe(0z zGgX0(ZhUDA@_zk9u`zsDTS1~OxnkJz56poM@5=85K1^CYt)bq6E- zZ!XJ@UGsXwkVP6sspvnv-j$cV-qlyU-aSA)@YZV@ePZC*_0}|=2yS{&V|2YG5{oiF zik^d6fn&;G^^Vn8wW$+33X3Hpu`q`9kek*@CUQIY)=L@|t)vd(f*1J}Q~ zpUq@`UsNp_Clae+Be70_(I^2{MBgx(%oXCF$w>3#=24^gs+V~z7Pdw{p;4@zMk?0u zk<7`lKGvw&Y=vh!sd?EHOhc%zz}kAq8|Yox$rEm$`DfdQ439o?R*6e;gB=EQ5}t}Ck^(F z9)!B|Ur@rjO9idF6kdc#WKKEO<#UDQ!)+iY-dz-y!CpMxS7O2H2o|gkNy!JK(MO~) zSk>Hdt30kloK<_t5}X&RJZe|+CSon{oEc+|MSh@onl|m{sSjsJO zVJKo`B@9>hrTixgZ?wpJQpuZ)`%JpeWY&$j6hjL;|LvvGBuFpqlJ`hMzm$fa+x6Tv zl1B%s)T-TS34Wgp2w;T{exHhI)?PAezqH6_;ftYxzR2pS?n17K<`eGr=8rG*w#XZg zrvv#4TQKPpl7s9qwWRE9iX}93R!6L&paCUa_hRr)DTCpx*H5>ny0U;3!E#Q(BZ64v zg9_pPV-@9x?wv1lBVm`@kWlJ#G}nxPK8ONQ=P)t&O^P}xjSl&diN$)!*n?7^io83p z8uE+O=M*X`uMJ;3nS^zk!&pQXnUH))YFqXIiLJ~f<=SpS05YL^O1U2&n4wi`DOYD9U^jFntix_{k zYDoZB>k?jrNPV_Hb+1sX%T+|+{uos0a*p30MNT_>s#LNRT$PY*oP+7G$?txh?|vd4 zA%!a3CiChtFJYp#Kh;yUNvSVcO2~44&up>`_ow58Eu1XXo~Qbg703Ifc--%PxZnL? zc0Vb^2;^pMrgT5pZ1UEb6pE&m@eMRhlNO)Ab5o-HTcUj3 zBD)IYucRpJdO5kwEPu{>v>oNAyJ~k7p16VWq70KtEO_$)Mt0K@ZlYpo5lU(3sfwIG z!dgT@i@bF@$QJE2srUk#EJ~GB#5PMDyHuwVo|o8b{YDs??fjm5AMDywiH^lB5aJT$%xtA-)Bqwr{x zZOYi1;uU7{@#RF()lsD0N6_inl^K<0?-zFY6qTjQEPri{{)0*s*s{%rPoTS$2s9G&lKq(lV*28ufv7HrZMVRg<7^xRpxf_dWpnvbw_4 zIT;qq(sm`ry93YIRnofcSV5E7BXE*uo*S=Bexnr|^hC>scr5qPgb`-KnG!POelqsN za;%W7H+#Qi*&|Eq`U^v(2;Ez3J?DgLw_+`Im)Vt7WX?r%|xd{tUksoiUH?!fa^iruZjvxeR9yX$?a zPuuQ2;ZBQI!TXUqB!WVC>9*(<5pm@{B1|GLvsU?KKa^+xuqZ%NnTA{35Hk*SjR!p3 z3kBXYdv{u5T?LZ6D~!QQdjl&JP=)4e{)LdOWwe|HulxwCxZ&*B3II);=89iow%}P-_?rO7S`$oHWsHaCiJeiixpCFRgXC~b+ zqe^sE2ye40Q{8CKXjfE!{&I=cg2&6{Rv9e3J?^v^Tve`D=~+>6ElV_97OpF~Pm-r4 z7kKx?l$jNKh0bt5dTftb#+}VuW;5(`)zEj+?nnIYv^OEb*U zf?c>ga(ji=D*s`PrkMb`FzN;B8JK#m3Uta?exvqpk$W7m$n%cqEb{zPtKlbU$#ULf zTLWswCa0E3>vqs;K3nFsd*YtK%9&JDO1>0DB}-w3po!6XDk^dyOWT#cXvHzrWZ+87 zNxQQ*IuDTewlCbPrlmd|4H^3K78{{k>@IUf!-?mD#}zsE9;_=1ow2G{2EBQspk$S& zTQPvhO3x5DbE#S04-;4nr{x{<7M%`8mZIO!fW+&R>!JvFtQ>afl)-K2%*j-R2 zEm{d03OAdk<{`D+n1_^`JyvbZZZzg_T1{hXI#^f3l8DVv={iO1dW(Dto@e&%Coaq4 z>&WaQq;_?f+g=GfX3^Hl_G3DbZQja-$8G4~V^fPH_ZL`yz#0b)+fB?^S$`UEp(zn| zU(iI>EaRQ(HAaWxLoC#Row3Q^s&A$c$-;O|PIFUe*A3duYDIf5YLPp#7dK3(Z%R>k zW_F_dhs`<6ZkBghlvyJcM~d=Ts7+2wRY{+2k$;k1MNH{LB?;-0HrwSH%gjm%6N438PgrYu z878y$uJVD)N6m%Tb*{S#=NDb&OmP(%a>JzJ)yTW>T1#p1E7;1C==>4`OA(w_ zT8C+h*18$f4o}BIkZew@@M^2PHHM_aQgJVg*LG)ZlJh6KT!W?RPi?{0QurCxggZZz zSpGwhGQYwi|AH=mwQAnBe{>}$@h*sh>`G)2Y~75V8XG%=@@9|O3L8Rn3S1=7@VV=U zMDM3|?Foxv#$ng`+7B_nA!~GT1y~eVEfpVw3Q6(}TDwCNV-qM(51U24CapVqxtcP< zBI=GrngZCxTTRTc%-(%?@3j(XSvj1LYIlAI&9T>^5(TN?1);_5&d=ICy*)6Gh854EL%QKIwcnc!ExQq|C`LVMa` zNI&d)tCnVzOp#-_`O}KPKij@}k5Hs{Jw?ng?WPX4#!c%};_cc=suIb!R073g)__;8 zw|n#r7=|=pM(JX6R@#D-Hpd*q?wAO(lD|PC_y0RvvHi+*2DVyu$vis96=RpbW1|;L zyII<(3*zdQ!TXZX-%SeH(*=$foK%DwFCZfp!Faad)b-4I&(^NOG=N#}HF{&=JSVCV z$#?o!W1Zsc)d^}7GkV^63HPLgc;H6C@UAc0=A^eRXjY!yW=tK2NSiF_b<@U4A$_40 znZ6Sc&y9KaqaO{qjYUohkr>icI=pQ)?wR|O6PymE5}oRdw0K*ndlN-TGW_KFC(5?$ zQo?9BG1JL4z$TwnlGa!}`gCfE(^lmQ#uX4O7@(P+v z8(fDawvnWEQIIgteBAtR%tQ4G+pwyg>}Q>4XktACJ@+bRk5DM(vqvx$6qFu5#&o=EG z{-yt`f9YeY&5C6Oc?Pw1)cB;3b0`jP@!@T+-sNYGiwKZ8&NAfY_!!Iq=GaYSOn-H+ zVYEv$eCt{fXbwYT<`8P2!RTKVZ06CnxRv@Jw8D@z*!FCbsc9rt+O=%HVfSdvc;A_iWuFv!1sQ<| z-Y>;eCmO!VZ-;apR$@+qMVyEZD}|}?wx-OcyNo|W#O8Q~T-GV;q zRt*d?DEsloN0~$#WeT^_poB?z`sxLJ>yn;8(r+6ao-kv>2t}`~=6#F##_Yh!&7vz_ z??k-v`Rc0I+Y#?$MgSkeTxc|=_5JZ)CU6pB!#tu=85W5S8xOEjaZB`)iJ0;zF1*uS zfHzn+Wzlk!O<74Ll#fd5K1Y{>UJu>M(3wcJ+O8~^ZF4SKP2|+7%hiaZQO=DpO<2}r zB?LiM6$s+ti>8ejZLyDXxtxmHv#uWD>|8m*X{pp%4M(IU@1Q3#8>*!xo7fFvUZ=hZ zZ+Vr3&|u8Ju}{bIJfoFK9uICjgZZoLFVTwa@@@>#`>@-E_h`DsHtiK}&10U?EAX_q z7jtHsY`%^@$kjqp?ni1wj0^h*t|?)~s zv$S?PpGJG_lhd^Q+tPA^4`X1iWkCTh-}Vd9~6G<#eQP{1=R zh(FTSqcUYi7l(R=1vBb6Jl}IQ!?>DZiG@3Kct2UVOP6HWE-jfsJ?J*5W|5D;vYyUp ztfWuaVxi+v@&G3@IE=3v!l&cYT3�v~7pkgTJ;d*1^hn>h_iu?g+9QcFkLJdSa5i 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 literal 0 HcmV?d00001 diff --git a/vendor/stb/lib/darwin/stb_rect_pack.a b/vendor/stb/lib/darwin/stb_rect_pack.a new file mode 100644 index 0000000000000000000000000000000000000000..3b55ab8025d7dca76643a92399f45397e35f46e7 GIT binary patch literal 5064 zcma)A4{Q_H89x&fjB7XpX$g#Wx8k-~t3#ZG1TT=~;Ep`AJN_jeOe4L7V2DNjfPF5Z zvPmWr#M@y&TQ`k~Zb*|hG-(5EMd}#a9D+z`vNnON)!J&KU8@#cCQ7C>&<*ct z5G7B3_j}*>{l4#g@7=q1&-b-e_2Gub3j0#;@}ffSVeyuh6#IOorQVesx1!Js2E*(v zEG#W4;W+P#QcA9~D@sB2cVt0a$5n6KQX>is6pmb=+<>}(;xiQ2Qmg}1BI=ItUM18L zQWdp6ygR6xs=f6Mdz5gnL5-N2NKlRLRqC6XTK6lhQB`T(r8Ebd$6FhN(QqiDh8iF? zDU*(?=+WaUDO*XWq0SDe=?N$#m4a41-dp!?KbXZZmK=~QP_0mHGvLBOg|Z0h5n`C6 zha713H+H&P)Q+7Qpvp_xsFQ|Cf~=htfHs_o~0^1FPu0wgK17wxOOX2MLMrMh+!6E(6TRWq7Mqz*TvcJ16-s zMj*O`w=P4;s+9;=72^FXd#YA}OC@M4X}??fZ}S1ZrWz$aYeRSlHQepI#vVHd_s)<1 z%j0)Ya&4aXDz>3a7fPh^{l2%NcTsWVuh_V(3d)b<#qtw@R@Ocu? z=}kfCRF60a{Z{sfeFSd)jtrnj=+z(6n@@u)B^Yc8rzumykOz!gzNn86 zIm;!!yvAj1FDn-Z<4zWCv7d|%dM`1M|IE6lxjyBqcK?QPtP$2(GPhuiF+2d^ViUjwICzo zk40aJD{hyyW}E1XGO=Mvi=U7?Z?lIE1BcgY8Nody;SmXcz#f?oL-pf6Kkh+E-i9>4 z&9~^_zj@yh7km6mSXC1K1pmVr@hN@8Ft+xUWST8qFy@Z(_11Q`CZ7UzY+kwC7ju-? z_Qw}OOP!f^V!033_QUY>?&2wu)6IRb2#^*{q0V8X87o6GR)!YrkhJC#?4j>NqNI-; zd5|xMyV)L-HNnNnFbQFVU)KWtJa+Q9((2cc&5tD)hqSrAdGWbO+YIy91&iiQga;%o za74nnNZV%5i5qwXy*C2e?uc;6Lml=_gF99J8AqK!9`d)ek zdJQseClzvng$c`qL_nF8$YLKacC%a5dwV-{K_YJYf zf2!Z-Dx0s6J@!Lr3rTB{H^pCoCL{W~w>$N_g&}N4eyHhL*9K!V9#C$X93?x=Lqii zc+1~KJS5_Gczjv(U5Wif!1KsFWX%GZ0F+#Pi=>-eaZiUiR+#z=H=#W`M?mQ@C~q5- z^@MUei&6$ki1K@bvYk*)!)0ugJcDw=psXd7UuIE0*KI4B4GMYPU8u{V6oU*Mtv4v& zB$Vf}C{Ba&oI&|Ip%j=DLg9$+OsJ0tSP0W-mZyvcOy>AP^~_{;@>(XP&43C1uNr!WgG0)|wwV*`gXHi6 zML!GDW00XSu9lewlJhE*3I2}*n{uO#|oy@;t3VZz& z_Cr(He>H_Yj}F)J(iXD@l$H#jfI4?upPI=_M>&4{BiCIT;lQWN5kHcZe$n!Fwbl=F6u7e42 z$#_14x|#CmdYHf?{gdrz4dsz_p%=6NszmP5(cX>z1>pac^67n^5SR4d1iaU$!Fw5a z-P7P*1m2&g!TSh!f0zc(0f(bkr@<=$-q|U5S73pVzi1Z$f&Tb;iod1!3u-?}O0O7Bo=M_NsJ^5oQ9|nYeo?K03Hz53; zd>@psusyfno)IKF67jzS>xb|c1A@x)xV|VE&uI|gm)k+Hj$$Q6jv_pTxieJ7ez4(9~sfpG8zQ_hmozH}^?0P7>eT z7td4K+y}`Uo!HHN?@ekSyU($}G2bhtU?;Nq9@#@>b3gkTl>zip3s<0z7P1G9mCdg( z<6p|g`%>9Q-uWhDicdY{i;vP84($%L)Hgw6XD|#OLzMbRBp6neu-anAne1zj9-vV_ zU>M&h!ol$_qel)?{qRduK|^cP&Vpjo@QA?}j3Sef?K*16Ixl6pO&ZucS>RE_BLjPx F{{yO}#B2Zn literal 0 HcmV?d00001 diff --git a/vendor/stb/lib/darwin/stb_truetype.a b/vendor/stb/lib/darwin/stb_truetype.a new file mode 100644 index 0000000000000000000000000000000000000000..c4a895b54b69c674e69c31dc2464951a929cc3a4 GIT binary patch literal 67008 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 r6E3W Date: Fri, 4 Feb 2022 13:45:36 -0500 Subject: [PATCH 005/137] Reverted experimental changes that were meant for a branch, in sync with master --- Makefile | 2 +- core/bindgen/c-parser-evaluate.odin | 266 --------- core/bindgen/c-parser-helpers.odin | 267 --------- core/bindgen/c-parser-nodes.odin | 132 ----- core/bindgen/c-parser.odin | 840 ---------------------------- core/bindgen/errors.odin | 44 -- core/bindgen/generator-clean.odin | 284 ---------- core/bindgen/generator-export.odin | 166 ------ core/bindgen/generator-helpers.odin | 392 ------------- core/bindgen/generator.odin | 205 ------- wasm-ld | 1 - 11 files changed, 1 insertion(+), 2598 deletions(-) delete mode 100644 core/bindgen/c-parser-evaluate.odin delete mode 100644 core/bindgen/c-parser-helpers.odin delete mode 100644 core/bindgen/c-parser-nodes.odin delete mode 100644 core/bindgen/c-parser.odin delete mode 100644 core/bindgen/errors.odin delete mode 100644 core/bindgen/generator-clean.odin delete mode 100644 core/bindgen/generator-export.odin delete mode 100644 core/bindgen/generator-helpers.odin delete mode 100644 core/bindgen/generator.odin delete mode 120000 wasm-ld diff --git a/Makefile b/Makefile index df5fe0605..d3d3c6a2d 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ ifeq ($(OS), Darwin) LLVM_VERSIONS = "13.%.%" else # allow for x86 / amd64 all llvm versions begining from 11 - LLVM_VERSIONS = "13.%.%" "12.0.1" "11.0.0" + LLVM_VERSIONS = "13.%.%" "12.0.1" "11.1.0" endif LLVM_VERSION_PATTERN_SEPERATOR = )|( diff --git a/core/bindgen/c-parser-evaluate.odin b/core/bindgen/c-parser-evaluate.odin deleted file mode 100644 index 13cb5042c..000000000 --- a/core/bindgen/c-parser-evaluate.odin +++ /dev/null @@ -1,266 +0,0 @@ -package bindgen - -import "core:fmt" -import "core:strconv" - -// Evaluates an expression to a i64, without checking. -evaluate_i64 :: proc(data : ^ParserData) -> i64 { - ok : bool; - value : LiteralValue; - - value, ok = evaluate(data); - return value.(i64); -} - -// Evaluate an expression, returns whether it succeeded. -evaluate :: proc(data : ^ParserData) -> (LiteralValue, bool) { - return evaluate_level_5(data); -} - -// @note Evaluate levels numbers are based on -// https://en.cppreference.com/w/c/language/operator_precedence. - -// Bitwise shift level. -evaluate_level_5 :: proc(data : ^ParserData) -> (value : LiteralValue, ok : bool) { - value, ok = evaluate_level_4(data); - if !ok do return; - - invalid_value : LiteralValue; - token := peek_token(data); - - if token == "<<" { - v : LiteralValue; - eat_token(data); - - v, ok = evaluate_level_5(data); - if is_i64(v) do value = value.(i64) << cast(u64) v.(i64); - else do invalid_value = v; - } else if token == ">>" { - v : LiteralValue; - eat_token(data); - - v, ok = evaluate_level_5(data); - if is_i64(v) do value = value.(i64) >> cast(u64) v.(i64); - else do invalid_value = v; - } - - if invalid_value != nil { - print_warning("Invalid operand for bitwise shift ", invalid_value); - } - - return; -} - -// Additive level. -evaluate_level_4 :: proc(data : ^ParserData) -> (value : LiteralValue, ok : bool) { - value, ok = evaluate_level_3(data); - if !ok do return; - - token := peek_token(data); - if token == "+" { - v : LiteralValue; - eat_token(data); - v, ok = evaluate_level_4(data); - if is_i64(v) do value = value.(i64) + v.(i64); - else if is_f64(v) do value = value.(f64) + v.(f64); - } - else if token == "-" { - v : LiteralValue; - eat_token(data); - v, ok = evaluate_level_4(data); - if is_i64(v) do value = value.(i64) - v.(i64); - else if is_f64(v) do value = value.(f64) - v.(f64); - } - - return; -} - -// Multiplicative level. -evaluate_level_3 :: proc(data : ^ParserData) -> (value : LiteralValue, ok : bool) { - value, ok = evaluate_level_2(data); - if !ok do return; - - token := peek_token(data); - if token == "*" { - v : LiteralValue; - eat_token(data); - v, ok = evaluate_level_3(data); - if is_i64(v) do value = value.(i64) * v.(i64); - else if is_f64(v) do value = value.(f64) * v.(f64); - } - else if token == "/" { - v : LiteralValue; - eat_token(data); - v, ok = evaluate_level_3(data); - if is_i64(v) do value = value.(i64) / v.(i64); - else if is_f64(v) do value = value.(f64) / v.(f64); - } - - return; -} - -// Prefix level. -evaluate_level_2 :: proc(data : ^ParserData) -> (value : LiteralValue, ok : bool) { - token := peek_token(data); - - // Bitwise not - if token == "~" { - check_and_eat_token(data, "~"); - value, ok = evaluate_level_2(data); - value = ~value.(i64); - } - else { - // @note Should call evaluate_level_1, but we don't have that because we do not dereferenciation. - value, ok = evaluate_level_0(data); - } - - return; -} - -// Does not try to compose with arithmetics, it just evaluates one single expression. -evaluate_level_0 :: proc(data : ^ParserData) -> (value : LiteralValue, ok : bool) { - ok = true; - value = 0; - token := peek_token(data); - - // Parentheses - if token == "(" { - value, ok = evaluate_parentheses(data); - } // Number literal - else if (token[0] == '-') || (token[0] >= '0' && token[0] <= '9') { - value, ok = evaluate_number_literal(data); - } // String literal - else if token[0] == '"' { - value = evaluate_string_literal(data); - } // Function-like - else if token == "sizeof" { - value = evaluate_sizeof(data); - } // Knowned literal - else if token in data.knownedLiterals { - value = evaluate_knowned_literal(data); - } // Custom expression - else if token in data.options.customExpressionHandlers { - value = data.options.customExpressionHandlers[token](data); - } - else { - print_warning("Unknown token ", token, " for expression evaluation."); - ok = false; - } - - return; -} - -evaluate_sizeof :: proc(data : ^ParserData) -> LiteralValue { - print_warning("Using 'sizeof()'. Currently not able to precompute that. Please check generated code."); - - check_and_eat_token(data, "sizeof"); - check_and_eat_token(data, "("); - for data.bytes[data.offset] != ')' { - data.offset += 1; - } - check_and_eat_token(data, ")"); - return 1; -} - -evaluate_parentheses :: proc(data : ^ParserData) -> (value : LiteralValue, ok : bool) { - check_and_eat_token(data, "("); - - // Cast to int (via "(int)" syntax) - token := peek_token(data); - if token == "int" { - check_and_eat_token(data, "int"); - check_and_eat_token(data, ")"); - value, ok = evaluate(data); - return; - } // Cast to enum value (via "(enum XXX)" syntax) - else if token == "enum" { - check_and_eat_token(data, "enum"); - eat_token(data); - check_and_eat_token(data, ")"); - value, ok = evaluate(data); - return; - } - - value, ok = evaluate(data); - check_and_eat_token(data, ")"); - return; -} - -evaluate_number_literal :: proc(data : ^ParserData, loc := #caller_location) -> (value : LiteralValue, ok : bool) { - token := parse_any(data); - - // Unary - before numbers - numberLitteral := token; - for token == "-" { - token = parse_any(data); - numberLitteral = tcat(numberLitteral, token); - } - token = numberLitteral; - - // Check if any point or scientific notation in number - foundPointOrExp := false; - for c in token { - if c == '.' || c == 'e' || c == 'E' { - foundPointOrExp = true; - break; - } - } - - isHexadecimal := len(token) >= 2 && token[:2] == "0x"; - - // Computing postfix - tokenLength := len(token); - l := tokenLength - 1; - for l > 0 { - c := token[l]; - if c >= '0' && c <= '9' { break; } - if isHexadecimal && ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')) { break; } - l -= 1; - } - - postfix : string; - if l != tokenLength - 1 { - postfix = token[l+1:]; - token = token[:l+1]; - } - - if postfix != "" && (postfix[0] == 'u' || postfix[0] == 'U') { - print_warning("Found number litteral '", token, "' with unsigned postfix, we cast it to an int64 internally."); - } - - // Floating point - if !isHexadecimal && (foundPointOrExp || postfix == "f") { - value, ok = strconv.parse_f64(token); - } // Integer - else { - value, ok = strconv.parse_i64(token); - } - - if !ok { - print_error(data, loc, "Expected number litteral but got '", token, "'."); - } - - return value, ok; -} - -evaluate_string_literal :: proc(data : ^ParserData) -> string { - token := parse_any(data); - return token; -} - -evaluate_knowned_literal :: proc(data : ^ParserData) -> LiteralValue { - token := parse_any(data); - return data.knownedLiterals[token]; -} - -is_i64 :: proc(value : LiteralValue) -> (ok : bool) { - v : i64; - v, ok = value.(i64); - return ok; -} - -is_f64 :: proc(value : LiteralValue) -> (ok : bool) { - v : f64; - v, ok = value.(f64); - return ok; -} diff --git a/core/bindgen/c-parser-helpers.odin b/core/bindgen/c-parser-helpers.odin deleted file mode 100644 index a99d83dd2..000000000 --- a/core/bindgen/c-parser-helpers.odin +++ /dev/null @@ -1,267 +0,0 @@ -package bindgen - -import "core:os" -import "core:fmt" -import "core:strings" -import "core:strconv" - -// Extract from start (included) to end (excluded) offsets -extract_string :: proc(data : ^ParserData, startOffset : u32, endOffset : u32) -> string { - return strings.string_from_ptr(&data.bytes[startOffset], cast(int) (endOffset - startOffset)); -} - -// Peek the end offset of the next token -peek_token_end :: proc(data : ^ParserData) -> u32 { - offset : u32; - - for true { - eat_whitespaces_and_comments(data); - if data.offset >= data.bytesLength { - return data.bytesLength; - } - offset = data.offset; - - // Identifier - if (data.bytes[offset] >= 'a' && data.bytes[offset] <= 'z') || - (data.bytes[offset] >= 'A' && data.bytes[offset] <= 'Z') || - (data.bytes[offset] == '_') { - offset += 1; - for (data.bytes[offset] >= 'a' && data.bytes[offset] <= 'z') || - (data.bytes[offset] >= 'A' && data.bytes[offset] <= 'Z') || - (data.bytes[offset] >= '0' && data.bytes[offset] <= '9') || - (data.bytes[offset] == '_') { - offset += 1; - } - } - if offset != data.offset { - // Nothing to do: we found an identifier - } // Number literal - else if (data.bytes[offset] >= '0' && data.bytes[offset] <= '9') { - offset += 1; - // Hexademical literal - if data.bytes[offset - 1] == '0' && data.bytes[offset] == 'x' { - offset += 1; - for (data.bytes[offset] >= '0' && data.bytes[offset] <= '9') || - (data.bytes[offset] >= 'a' && data.bytes[offset] <= 'f') || - (data.bytes[offset] >= 'A' && data.bytes[offset] <= 'F') { - offset += 1; - } - } // Basic number literal - else { - for (data.bytes[offset] >= '0' && data.bytes[offset] <= '9') || - data.bytes[offset] == '.' { - offset += 1; - } - - if (data.bytes[offset] == 'e' || data.bytes[offset] == 'E') { - offset += 1; - if data.bytes[offset] == '-' { - offset += 1; - } - } - - for (data.bytes[offset] >= '0' && data.bytes[offset] <= '9') { - offset += 1; - } - } - - // Number suffix? - for (data.bytes[offset] == 'u' || data.bytes[offset] == 'U') || - (data.bytes[offset] == 'l' || data.bytes[offset] == 'L') || - (data.bytes[offset] == 'f') { - offset += 1; - } - } // String literal - else if data.bytes[offset] == '"' { - offset += 1; - for data.bytes[offset-1] == '\\' || data.bytes[offset] != '"' { - offset += 1; - } - offset += 1; - } // Possible shifts - else if data.bytes[offset] == '<' || data.bytes[offset] == '>' { - offset += 1; - if data.bytes[offset] == data.bytes[offset-1] { - offset += 1; - } - } // Single character - else { - offset += 1; - } - - token := extract_string(data, data.offset, offset); - - // Ignore __attribute__ - if token == "__attribute__" { - print_warning("__attribute__ is ignored."); - - for data.bytes[offset] != '(' { - offset += 1; - } - - parenthesesCount := 1; - for true { - offset += 1; - if data.bytes[offset] == '(' do parenthesesCount += 1; - else if data.bytes[offset] == ')' do parenthesesCount -= 1; - if parenthesesCount == 0 do break; - } - offset += 1; - - data.offset = offset; - } // Ignore certain keywords - else if (token == "inline" || token == "__inline" || token == "static" - || token == "restrict" || token == "__restrict" - || token == "volatile" - || token == "__extension__") { - data.offset = offset; - } // Ignore ignored tokens ;) - else { - for ignoredToken in data.options.ignoredTokens { - if token == ignoredToken { - data.offset = offset; - break; - } - } - } - - if data.offset != offset { - break; - } - } - - return offset; -} - -// Peek the next token (just eating whitespaces and comment) -peek_token :: proc(data : ^ParserData) -> string { - tokenEnd := peek_token_end(data); - if tokenEnd == data.bytesLength { - return "EOF"; - } - return extract_string(data, data.offset, tokenEnd); -} - -// Find the end of the define directive (understanding endline backslashes) -// @note Tricky cases like comments hiding a backslash effect are not handled. -peek_define_end :: proc(data : ^ParserData) -> u32 { - defineEndOffset := data.offset; - for data.bytes[defineEndOffset-1] == '\\' || data.bytes[defineEndOffset] != '\n' { - defineEndOffset += 1; - } - return defineEndOffset; -} - -eat_comment :: proc(data : ^ParserData) { - if data.offset >= data.bytesLength || data.bytes[data.offset] != '/' { - return; - } - - // Line comment - if data.bytes[data.offset + 1] == '/' { - eat_line(data); - } // Range comment - else if data.bytes[data.offset + 1] == '*' { - data.offset += 2; - for data.bytes[data.offset] != '*' || data.bytes[data.offset + 1] != '/' { - data.offset += 1; - } - data.offset += 2; - } -} - -// Eat whitespaces -eat_whitespaces :: proc(data : ^ParserData) { - // Effective whitespace - for data.offset < data.bytesLength && - (data.bytes[data.offset] == ' ' || data.bytes[data.offset] == '\t' || - data.bytes[data.offset] == '\r' || data.bytes[data.offset] == '\n') { - if data.bytes[data.offset] == '\n' && data.bytes[data.offset] != '\\' { - data.foundFullReturn = true; - } - data.offset += 1; - } -} - -// Removes whitespaces and comments -eat_whitespaces_and_comments :: proc(data : ^ParserData) { - startOffset : u32 = 0xFFFFFFFF; - for startOffset != data.offset { - startOffset = data.offset; - eat_whitespaces(data); - eat_comment(data); - } -} - -// Eat full line -eat_line :: proc(data : ^ParserData) { - for ; data.bytes[data.offset] != '\n'; data.offset += 1 { - } -} - -// Eat a line, and repeat if it ends with a backslash -eat_define_lines :: proc(data : ^ParserData) { - for data.bytes[data.offset-1] == '\\' || data.bytes[data.offset] != '\n' { - data.offset += 1; - } -} - -// Eat next token -eat_token :: proc(data : ^ParserData) { - data.offset = peek_token_end(data); -} - -// Eat next token -check_and_eat_token :: proc(data : ^ParserData, expectedToken : string, loc := #caller_location) { - token := peek_token(data); - if token != expectedToken { - print_error(data, loc, "Expected ", expectedToken, " but found ", token, "."); - } - data.offset += cast(u32) len(token); -} - -// Check whether the next token is outside #define range -is_define_end :: proc(data : ^ParserData) -> bool { - defineEnd := peek_define_end(data); - tokenEnd := peek_token_end(data); - - return (defineEnd < tokenEnd); -} - -// Check if the current #define is a macro definition -is_define_macro :: proc(data : ^ParserData) -> bool { - startOffset := data.offset; - defer data.offset = startOffset; - - token := parse_any(data); - if token != "(" do return false; - - // Find the other parenthesis - parenthesesCount := 1; - for parenthesesCount != 0 { - token = parse_any(data); - if token == "(" do parenthesesCount += 1; - else if token == ")" do parenthesesCount -= 1; - } - - // Its a macro if after the parentheses, it's not the end - return !is_define_end(data); -} - -// @note Very slow function to get line number, -// use only for errors. -// @todo Well, this does not seem to work properly, UTF-8 problem? -get_line_column :: proc(data : ^ParserData) -> (u32, u32) { - line : u32 = 1; - column : u32 = 0; - for i : u32 = 0; i < data.offset; i += 1 { - if data.bytes[i] == '\n' { - column = 0; - line += 1; - } - else { - column += 1; - } - } - return line, column; -} diff --git a/core/bindgen/c-parser-nodes.odin b/core/bindgen/c-parser-nodes.odin deleted file mode 100644 index 0620e0187..000000000 --- a/core/bindgen/c-parser-nodes.odin +++ /dev/null @@ -1,132 +0,0 @@ -package bindgen - -DefineNode :: struct { - name : string, - value : LiteralValue, -} - -StructDefinitionNode :: struct { - name : string, - members : [dynamic]StructOrUnionMember, - forwardDeclared : bool, -} - -UnionDefinitionNode :: struct { - name : string, - members : [dynamic]StructOrUnionMember, -} - -EnumDefinitionNode :: struct { - name : string, - members : [dynamic]EnumMember, -} - -FunctionDeclarationNode :: struct { - name : string, - returnType : Type, - parameters : [dynamic]FunctionParameter, -} - -TypedefNode :: struct { - name : string, - type : Type, -} - -Nodes :: struct { - defines : [dynamic]DefineNode, - enumDefinitions : [dynamic]EnumDefinitionNode, - unionDefinitions : [dynamic]UnionDefinitionNode, - structDefinitions : [dynamic]StructDefinitionNode, - functionDeclarations : [dynamic]FunctionDeclarationNode, - typedefs : [dynamic]TypedefNode, -} - -LiteralValue :: union { - i64, - f64, - string, -} - -// Type, might be an array -Type :: struct { - base : BaseType, - dimensions : [dynamic]u64, // Array dimensions -} - -BaseType :: union { - BuiltinType, - PointerType, - IdentifierType, - FunctionType, - FunctionPointerType, -} - -BuiltinType :: enum { - Unknown, - Void, - Int, - UInt, - LongInt, - ULongInt, - LongLongInt, - ULongLongInt, - ShortInt, - UShortInt, - Char, - SChar, - UChar, - Float, - Double, - LongDouble, - - // Not defined by C language but in - Int8, - Int16, - Int32, - Int64, - UInt8, - UInt16, - UInt32, - UInt64, - Size, - SSize, - PtrDiff, - UIntPtr, - IntPtr, -} - -PointerType :: struct { - type : ^Type, // Pointer is there to prevent definition cycle. Null means void. -} - -IdentifierType :: struct { - name : string, - anonymous : bool, // An anonymous identifier can be hard-given a name in some contexts. -} - -FunctionType :: struct { - returnType : ^Type, // Pointer is there to prevent definition cycle. Null means void. - parameters : [dynamic]FunctionParameter, -} - -FunctionPointerType :: struct { - name : string, - returnType : ^Type, // Pointer is there to prevent definition cycle. Null means void. - parameters : [dynamic]FunctionParameter, -} - -EnumMember :: struct { - name : string, - value : i64, - hasValue : bool, -} - -StructOrUnionMember :: struct { - name : string, - type : Type, -} - -FunctionParameter :: struct { - name : string, - type : Type, -} diff --git a/core/bindgen/c-parser.odin b/core/bindgen/c-parser.odin deleted file mode 100644 index c3ef4937f..000000000 --- a/core/bindgen/c-parser.odin +++ /dev/null @@ -1,840 +0,0 @@ -package bindgen - -import "core:os" -import "core:fmt" -import "core:strings" -import "core:strconv" - -// Global counters -anonymousStructCount := 0; -anonymousUnionCount := 0; -anonymousEnumCount := 0; - -knownTypeAliases : map[string]Type; - -CustomHandler :: proc(data : ^ParserData); -CustomExpressionHandler :: proc(data : ^ParserData) -> LiteralValue; - -ParserOptions :: struct { - ignoredTokens : []string, - - // Handlers - customHandlers : map[string]CustomHandler, - customExpressionHandlers : map[string]CustomExpressionHandler, -} - -ParserData :: struct { - bytes : []u8, - bytesLength : u32, - offset : u32, - - // References - nodes : Nodes, - options : ^ParserOptions, - - // Knowned values - knownedLiterals : map[string]LiteralValue, - - // Whether we have eaten a '\n' character that has no backslash just before - foundFullReturn : bool, -} - -is_identifier :: proc(token : string) -> bool { - return (token[0] >= 'a' && token[0] <= 'z') || - (token[0] >= 'A' && token[0] <= 'Z') || - (token[0] == '_'); -} - -parse :: proc(bytes : []u8, options : ParserOptions, loc := #caller_location) -> Nodes { - options := options; - - data : ParserData; - data.bytes = bytes; - data.bytesLength = cast(u32) len(bytes); - data.options = &options; - - for data.offset = 0; data.offset < data.bytesLength; { - token := peek_token(&data); - if data.offset == data.bytesLength do break; - - if token in options.customHandlers { - options.customHandlers[token](&data); - } - else if token == "{" || token == "}" || token == ";" { - eat_token(&data); - } - else if token == "extern" { - check_and_eat_token(&data, "extern"); - } - else if token == "\"C\"" { - check_and_eat_token(&data, "\"C\""); - } - else if token == "#" { - parse_directive(&data); - } - else if token == "typedef" { - parse_typedef(&data); - } - else if is_identifier(token) { - parse_variable_or_function_declaration(&data); - } - else { - print_error(&data, loc, "Unexpected token: ", token, "."); - return data.nodes; - } - } - - return data.nodes; -} - -parse_any :: proc(data : ^ParserData) -> string { - offset := peek_token_end(data); - identifier := extract_string(data, data.offset, offset); - data.offset = offset; - return identifier; -} - -parse_identifier :: proc(data : ^ParserData, loc := #caller_location) -> string { - identifier := parse_any(data); - - if (identifier[0] < 'a' || identifier[0] > 'z') && - (identifier[0] < 'A' || identifier[0] > 'Z') && - (identifier[0] != '_') { - print_error(data, loc, "Expected identifier but found ", identifier, "."); - } - - return identifier; -} - -parse_type_dimensions :: proc(data : ^ParserData, type : ^Type) { - token := peek_token(data); - for token == "[" { - eat_token(data); - token = peek_token(data); - if token == "]" { - pointerType : PointerType; - pointerType.type = new(Type); - pointerType.type^ = type^; // Copy - type.base = pointerType; - delete(type.dimensions); - } else { - dimension := evaluate_i64(data); - append(&type.dimensions, cast(u64) dimension); - } - check_and_eat_token(data, "]"); - token = peek_token(data); - } -} - -// This will parse anything that look like a type: -// Builtin: char/int/float/... -// Struct-like: struct A/struct { ... }/enum E -// Function pointer: void (*f)(...) -// -// Definition permitted: If a struct-like definition is found, it will generate -// the according Node and return a corresponding type. -parse_type :: proc(data : ^ParserData, definitionPermitted := false) -> Type { - type : Type; - - // Eat qualifiers - token := peek_token(data); - if token == "const" { - eat_token(data); - token = peek_token(data); - } - - // Parse main type - if token == "struct" { - type.base = parse_struct_type(data, definitionPermitted); - } - else if token == "union" { - type.base = parse_union_type(data); - } - else if token == "enum" { - type.base = parse_enum_type(data); - } - else { - // Test builtin type - type.base = parse_builtin_type(data); - if type.base.(BuiltinType) == BuiltinType.Unknown { - // Basic identifier type - identifierType : IdentifierType; - identifierType.name = parse_identifier(data); - type.base = identifierType; - } - } - - // Eat qualifiers - token = peek_token(data); - if token == "const" { - eat_token(data); - token = peek_token(data); - } - - // Check if pointer - for token == "*" { - check_and_eat_token(data, "*"); - token = peek_token(data); - - pointerType : PointerType; - pointerType.type = new(Type); - pointerType.type^ = type; // Copy - - type.base = pointerType; - - // Eat qualifiers - if token == "const" { - eat_token(data); - token = peek_token(data); - } - } - - // Parse array dimensions if any. - parse_type_dimensions(data, &type); - - // ----- Function pointer type - - if token == "(" { - check_and_eat_token(data, "("); - check_and_eat_token(data, "*"); - - functionPointerType : FunctionPointerType; - functionPointerType.returnType = new(Type); - functionPointerType.returnType^ = type; - functionPointerType.name = parse_identifier(data); - - check_and_eat_token(data, ")"); - parse_function_parameters(data, &functionPointerType.parameters); - - type.base = functionPointerType; - } - - return type; -} - -parse_builtin_type :: proc(data : ^ParserData) -> BuiltinType { - previousBuiltinType := BuiltinType.Unknown; - intFound := false; - shortFound := false; - signedFound := false; - unsignedFound := false; - longCount := 0; - - for true { - token := peek_token(data); - - // Attribute - attributeFound := true; - if token == "long" do longCount += 1; - else if token == "short" do shortFound = true; - else if token == "unsigned" do unsignedFound = true; - else if token == "signed" do signedFound = true; - else do attributeFound = false; - if attributeFound { eat_token(data); continue; } - - // Known type alias - if token in knownTypeAliases { - builtinType, ok := knownTypeAliases[token].base.(BuiltinType); - if ok { - eat_token(data); - previousBuiltinType = builtinType; - } - break; - } - - // Classic type and standard types - if token == "void" { eat_token(data); return BuiltinType.Void; } - else if token == "int" { - eat_token(data); - intFound = true; - } - else if token == "float" { eat_token(data); return BuiltinType.Float; } - else if token == "double" { - eat_token(data); - if longCount == 0 do return BuiltinType.Double; - else do return BuiltinType.LongDouble; - } - else if token == "char" { - eat_token(data); - if signedFound do return BuiltinType.SChar; - else if unsignedFound do return BuiltinType.UChar; - else do return BuiltinType.Char; - } - else if token == "__int8" { - // @note :MicrosoftDumminess __intX are Microsoft's fixed-size integers - // https://docs.microsoft.com/fr-fr/cpp/cpp/int8-int16-int32-int64 - // and for unsigned version, they prefixed it with "unsigned"... - eat_token(data); - if unsignedFound do return BuiltinType.UInt8; - else do return BuiltinType.Int8; - } - else if token == "__int16" { - eat_token(data); - if unsignedFound do return BuiltinType.UInt16; - else do return BuiltinType.Int16; - } - else if token == "__int32" { - eat_token(data); - if unsignedFound do return BuiltinType.UInt32; - else do return BuiltinType.Int32; - } - else if token == "__int64" { - eat_token(data); - if unsignedFound do return BuiltinType.UInt64; - else do return BuiltinType.Int64; - } - else if token == "int8_t" { eat_token(data); return BuiltinType.Int8; } - else if token == "int16_t" { eat_token(data); return BuiltinType.Int16; } - else if token == "int32_t" { eat_token(data); return BuiltinType.Int32; } - else if token == "int64_t" { eat_token(data); return BuiltinType.Int64; } - else if token == "uint8_t" { eat_token(data); return BuiltinType.UInt8; } - else if token == "uint16_t" { eat_token(data); return BuiltinType.UInt16; } - else if token == "uint32_t" { eat_token(data); return BuiltinType.UInt32; } - else if token == "uint64_t" { eat_token(data); return BuiltinType.UInt64; } - else if token == "size_t" { eat_token(data); return BuiltinType.Size; } - else if token == "ssize_t" { eat_token(data); return BuiltinType.SSize; } - else if token == "ptrdiff_t" { eat_token(data); return BuiltinType.PtrDiff; } - else if token == "uintptr_t" { eat_token(data); return BuiltinType.UIntPtr; } - else if token == "intptr_t" { eat_token(data); return BuiltinType.IntPtr; } - - break; - } - - // Adapt previous builtin type - if previousBuiltinType == BuiltinType.ShortInt { - shortFound = true; - } - else if previousBuiltinType == BuiltinType.Int { - intFound = true; - } - else if previousBuiltinType == BuiltinType.LongInt { - longCount += 1; - } - else if previousBuiltinType == BuiltinType.LongLongInt { - longCount += 2; - } - else if previousBuiltinType == BuiltinType.UShortInt { - unsignedFound = true; - shortFound = true; - } - else if previousBuiltinType == BuiltinType.UInt { - unsignedFound = true; - } - else if previousBuiltinType == BuiltinType.ULongInt { - unsignedFound = true; - longCount += 1; - } - else if previousBuiltinType == BuiltinType.ULongLongInt { - unsignedFound = true; - longCount += 2; - } - else if (previousBuiltinType != BuiltinType.Unknown) { - return previousBuiltinType; // float, void, etc. - } - - // Implicit and explicit int - if intFound || shortFound || unsignedFound || signedFound || longCount > 0 { - if unsignedFound { - if shortFound do return BuiltinType.UShortInt; - if longCount == 0 do return BuiltinType.UInt; - if longCount == 1 do return BuiltinType.ULongInt; - if longCount == 2 do return BuiltinType.ULongLongInt; - } else { - if shortFound do return BuiltinType.ShortInt; - if longCount == 0 do return BuiltinType.Int; - if longCount == 1 do return BuiltinType.LongInt; - if longCount == 2 do return BuiltinType.LongLongInt; - } - } - - return BuiltinType.Unknown; -} - -parse_struct_type :: proc(data : ^ParserData, definitionPermitted : bool) -> IdentifierType { - check_and_eat_token(data, "struct"); - - type : IdentifierType; - token := peek_token(data); - - if !definitionPermitted || token != "{" { - type.name = parse_identifier(data); - token = peek_token(data); - } else { - type.name = tcat("AnonymousStruct", anonymousStructCount); - type.anonymous = true; - anonymousStructCount += 1; - } - - if token == "{" { - node := parse_struct_definition(data); - node.name = type.name; - } else if definitionPermitted { - // @note Whatever happens, we create a definition of the struct, - // as it might be used to forward declare it and then use it only with a pointer. - // This for instance the pattern for xcb_connection_t which definition - // is never known from user API. - node : StructDefinitionNode; - node.forwardDeclared = false; - node.name = type.name; - append(&data.nodes.structDefinitions, node); - } - - return type; -} - -parse_union_type :: proc(data : ^ParserData) -> IdentifierType { - check_and_eat_token(data, "union"); - - type : IdentifierType; - token := peek_token(data); - - if token != "{" { - type.name = parse_identifier(data); - token = peek_token(data); - } else { - type.name = tcat("AnonymousUnion", anonymousUnionCount); - type.anonymous = true; - anonymousUnionCount += 1; - } - - if token == "{" { - node := parse_union_definition(data); - node.name = type.name; - } - - return type; -} - -parse_enum_type :: proc(data : ^ParserData) -> IdentifierType { - check_and_eat_token(data, "enum"); - - type : IdentifierType; - token := peek_token(data); - - if token != "{" { - type.name = parse_identifier(data); - token = peek_token(data); - } else { - type.name = tcat("AnonymousEnum", anonymousEnumCount); - type.anonymous = true; - anonymousEnumCount += 1; - } - - if token == "{" { - node := parse_enum_definition(data); - node.name = type.name; - } - - return type; -} - -/** - * We only care about defines of some value - */ -parse_directive :: proc(data : ^ParserData) { - check_and_eat_token(data, "#"); - - token := peek_token(data); - if token == "define" { - parse_define(data); - } // We ignore all other directives - else { - eat_line(data); - } -} - -parse_define :: proc(data : ^ParserData) { - check_and_eat_token(data, "define"); - data.foundFullReturn = false; - - node : DefineNode; - node.name = parse_identifier(data); - - // Does it look like end? It might be a #define with no expression - if is_define_end(data) { - node.value = 1; - append(&data.nodes.defines, node); - data.knownedLiterals[node.name] = node.value; - } // Macros are ignored - else if is_define_macro(data) { - print_warning("Ignoring define macro for ", node.name, "."); - } - else { - literalValue, ok := evaluate(data); - if ok { - node.value = literalValue; - append(&data.nodes.defines, node); - data.knownedLiterals[node.name] = node.value; - } - else { - print_warning("Ignoring define expression for ", node.name, "."); - } - } - - // Evaluating the expression, we might have already eaten a full return, - // if so, do nothing. - if !data.foundFullReturn { - eat_define_lines(data); - } -} - -// @fixme Move -change_anonymous_node_name :: proc (data : ^ParserData, oldName : string, newName : string) -> bool { - for i := 0; i < len(data.nodes.structDefinitions); i += 1 { - if data.nodes.structDefinitions[i].name == oldName { - data.nodes.structDefinitions[i].name = newName; - return true; - } - } - - for i := 0; i < len(data.nodes.enumDefinitions); i += 1 { - if data.nodes.enumDefinitions[i].name == oldName { - data.nodes.enumDefinitions[i].name = newName; - return true; - } - } - - for i := 0; i < len(data.nodes.unionDefinitions); i += 1 { - if data.nodes.unionDefinitions[i].name == oldName { - data.nodes.unionDefinitions[i].name = newName; - return true; - } - } - - return false; -} - -/** - * Type aliasing. - * typedef ; - */ -parse_typedef :: proc(data : ^ParserData) { - check_and_eat_token(data, "typedef"); - - // @note Struct-like definitions (and such) - // are generated within type parsing. - // - // So that typedef struct { int foo; }* Ap; is valid. - - // Parsing type - node : TypedefNode; - node.type = parse_type(data, true); - - if sourceType, ok := node.type.base.(FunctionPointerType); ok { - node.name = sourceType.name; - } else { - node.name = parse_identifier(data); - } - - // Checking if function type - token := peek_token(data); - if token == "(" { - functionType : FunctionType; - functionType.returnType = new(Type); - functionType.returnType^ = node.type; - - parse_function_parameters(data, &functionType.parameters); - - node.type.base = functionType; - } - - // Checking if array - parse_type_dimensions(data, &node.type); - - // If the underlying type is anonymous, - // we just affect it the name. - addTypedefNode := true; - if identifierType, ok := node.type.base.(IdentifierType); ok { - if identifierType.anonymous { - addTypedefNode = !change_anonymous_node_name(data, identifierType.name, node.name); - } - } - - if addTypedefNode { - knownTypeAliases[node.name] = node.type; - append(&data.nodes.typedefs, node); - } - - check_and_eat_token(data, ";"); - - // @note Commented tool for debug - // fmt.println("Typedef: ", node.type, node.name); -} - -parse_struct_definition :: proc(data : ^ParserData) -> ^StructDefinitionNode { - node : StructDefinitionNode; - node.forwardDeclared = false; - parse_struct_or_union_members(data, &node.members); - - append(&data.nodes.structDefinitions, node); - return &data.nodes.structDefinitions[len(data.nodes.structDefinitions) - 1]; -} - -parse_union_definition :: proc(data : ^ParserData) -> ^UnionDefinitionNode { - node : UnionDefinitionNode; - parse_struct_or_union_members(data, &node.members); - - append(&data.nodes.unionDefinitions, node); - return &data.nodes.unionDefinitions[len(data.nodes.unionDefinitions) - 1]; -} - -parse_enum_definition :: proc(data : ^ParserData) -> ^EnumDefinitionNode { - node : EnumDefinitionNode; - parse_enum_members(data, &node.members); - - append(&data.nodes.enumDefinitions, node); - return &data.nodes.enumDefinitions[len(data.nodes.enumDefinitions) - 1]; -} - -/** - * { - * = , - * , - * } - */ -parse_enum_members :: proc(data : ^ParserData, members : ^[dynamic]EnumMember) { - check_and_eat_token(data, "{"); - - nextMemberValue : i64 = 0; - token := peek_token(data); - for token != "}" { - member : EnumMember; - member.name = parse_identifier(data); - member.hasValue = false; - - token = peek_token(data); - if token == "=" { - check_and_eat_token(data, "="); - - member.hasValue = true; - member.value = evaluate_i64(data); - nextMemberValue = member.value; - token = peek_token(data); - } else { - member.value = nextMemberValue; - } - - data.knownedLiterals[member.name] = member.value; - nextMemberValue += 1; - - // Eat until end, as this might be a complex expression that we couldn't understand - if token != "," && token != "}" { - print_warning("Parser cannot understand fully the expression of enum member ", member.name, "."); - for token != "," && token != "}" { - eat_token(data); - token = peek_token(data); - } - } - if token == "," { - check_and_eat_token(data, ","); - token = peek_token(data); - } - - append(members, member); - } - - check_and_eat_token(data, "}"); -} - -/** - * { - * ; - * , ; - * []; - * } - */ -parse_struct_or_union_members :: proc(data : ^ParserData, structOrUnionMembers : ^[dynamic]StructOrUnionMember) { - check_and_eat_token(data, "{"); - - // To ensure unique id - unamedCount := 0; - - token := peek_token(data); - for token != "}" { - member : StructOrUnionMember; - member.type = parse_type(data, true); - - for true { - // In the case of function pointer types, the name has been parsed - // during type inspection. - if type, ok := member.type.base.(FunctionPointerType); ok { - member.name = type.name; - } - else { - // Unamed (struct or union) - token = peek_token(data); - if !is_identifier(token) { - member.name = tcat("unamed", unamedCount); - unamedCount += 1; - } - else { - member.name = parse_identifier(data); - } - } - - parse_type_dimensions(data, &member.type); - - token = peek_token(data); - if token == ":" { - check_and_eat_token(data, ":"); - print_warning("Found bitfield in struct, which is not handled correctly."); - evaluate_i64(data); - token = peek_token(data); - } - - append(structOrUnionMembers, member); - - // Multiple declarations on one line - if token == "," { - check_and_eat_token(data, ","); - continue; - } - - break; - } - - check_and_eat_token(data, ";"); - token = peek_token(data); - } - - check_and_eat_token(data, "}"); -} - -parse_variable_or_function_declaration :: proc(data : ^ParserData) { - type := parse_type(data, true); - - // If it's just a type, it might be a struct definition - token := peek_token(data); - if token == ";" { - check_and_eat_token(data, ";"); - return; - } - - // Eat array declaration if any - // @fixme The return type of a function declaration will be wrong! - for data.bytes[data.offset] == '[' { - for data.bytes[data.offset] != ']' { - data.offset += 1; - } - data.offset += 1; - } - - name := parse_identifier(data); - - token = peek_token(data); - if token == "(" { - functionDeclarationNode := parse_function_declaration(data); - functionDeclarationNode.returnType = type; - functionDeclarationNode.name = name; - return; - } else if token == "[" { - // Eat whole array declaration - for data.bytes[data.offset] == '[' { - for data.bytes[data.offset] != ']' { - data.offset += 1; - } - data.offset += 1; - } - } - - // Global variable declaration (with possible multiple declarations) - token = peek_token(data); - - for true { - if token == "," { - print_warning("Found global variable declaration '", name, "', we won't generated any binding for it."); - check_and_eat_token(data, ","); - - name = parse_identifier(data); - token = peek_token(data); - continue; - } - else if token == ";" { - if name != "" { - print_warning("Found global variable declaration '", name, "', we won't generated any binding for it."); - } - check_and_eat_token(data, ";"); - break; - } - - // Global variable assignment, considered as constant define. - node : DefineNode; - - check_and_eat_token(data, "="); - literalValue, ok := evaluate(data); - if ok { - node.name = name; - node.value = literalValue; - append(&data.nodes.defines, node); - } - else { - print_warning("Ignoring global variable expression for '", name, "'."); - } - - name = ""; - token = peek_token(data); - } -} - -parse_function_declaration :: proc(data : ^ParserData) -> ^FunctionDeclarationNode { - node : FunctionDeclarationNode; - - parse_function_parameters(data, &node.parameters); - - // Function definition? Ignore it. - token := peek_token(data); - if token == "{" { - bracesCount := 1; - for true { - data.offset += 1; - if data.bytes[data.offset] == '{' do bracesCount += 1; - else if data.bytes[data.offset] == '}' do bracesCount -= 1; - if bracesCount == 0 do break; - } - data.offset += 1; - } // Function declaration - else { - check_and_eat_token(data, ";"); - } - - append(&data.nodes.functionDeclarations, node); - return &data.nodes.functionDeclarations[len(data.nodes.functionDeclarations) - 1]; -} - -parse_function_parameters :: proc(data : ^ParserData, parameters : ^[dynamic]FunctionParameter) { - check_and_eat_token(data, "("); - - token := peek_token(data); - for token != ")" { - parameter : FunctionParameter; - - token = peek_token(data); - if token == "." { - print_warning("A function accepts variadic arguments, this is currently not handled within generated code."); - - check_and_eat_token(data, "."); - check_and_eat_token(data, "."); - check_and_eat_token(data, "."); - break; - } else { - parameter.type = parse_type(data); - } - - // Check if named parameter - token = peek_token(data); - if token != ")" && token != "," { - parameter.name = parse_identifier(data); - parse_type_dimensions(data, ¶meter.type); - token = peek_token(data); - } - - if token == "," { - eat_token(data); - token = peek_token(data); - } - - append(parameters, parameter); - } - - check_and_eat_token(data, ")"); -} diff --git a/core/bindgen/errors.odin b/core/bindgen/errors.odin deleted file mode 100644 index 9564c5244..000000000 --- a/core/bindgen/errors.odin +++ /dev/null @@ -1,44 +0,0 @@ -package bindgen - -import "core:fmt" -import "core:os" - -seenWarnings : map[string]bool; - -print_warning :: proc(args : ..any) { - message := tcat(..args); - - if !seenWarnings[message] { - fmt.eprint("[bindgen] Warning: ", message, "\n"); - seenWarnings[message] = true; - } -} - -print_error :: proc(data : ^ParserData, loc := #caller_location, args : ..any) { - message := tcat(..args); - - min : u32 = 0; - for i := data.offset - 1; i > 0; i -= 1 { - if data.bytes[i] == '\n' { - min = i + 1; - break; - } - } - - max := min + 200; - for i := min + 1; i < max; i += 1 { - if data.bytes[i] == '\n' { - max = i; - break; - } - } - - line, _ := get_line_column(data); - - fmt.eprint("[bindgen] Error: ", message, "\n"); - fmt.eprint("[bindgen] ... from ", loc.procedure, "\n"); - fmt.eprint("[bindgen] ... at line ", line, " within this context:\n"); - fmt.eprint("> ", extract_string(data, min, max), "\n"); - - os.exit(1); -} diff --git a/core/bindgen/generator-clean.odin b/core/bindgen/generator-clean.odin deleted file mode 100644 index 8dd837b10..000000000 --- a/core/bindgen/generator-clean.odin +++ /dev/null @@ -1,284 +0,0 @@ -package bindgen - -import "core:fmt" - -// Prevent keywords clashes and other tricky cases -clean_identifier :: proc(name : string) -> string { - name := name; - - if name == "" { - return name; - } - - // Starting with _? Try removing that. - for true { - if name[0] == '_' { - name = name[1:]; - } - else { - break; - } - } - - // Number - if name[0] >= '0' && name[0] <= '9' { - return tcat("_", name); - } // Keywords clash - else if name == "map" || name == "proc" || name == "opaque" || name == "in" { - return tcat("_", name); - } // Jai keywords clash - else if name == "context" || - name == "float32" || name == "float64" || - name == "s8" || name == "s16" || name == "s32" || name == "s64" || - name == "u8" || name == "u16" || name == "u32" || name == "u64" { - return tcat("_", name); - } - - return name; -} - -clean_variable_name :: proc(name : string, options : ^GeneratorOptions) -> string { - name := name; - name = change_case(name, options.variableCase); - return clean_identifier(name); -} - -clean_pseudo_type_name :: proc(structName : string, options : ^GeneratorOptions) -> string { - structName := structName; - structName = remove_postfixes(structName, options.pseudoTypePostfixes, options.pseudoTypeTransparentPostfixes); - structName = remove_prefixes(structName, options.pseudoTypePrefixes, options.pseudoTypeTransparentPrefixes); - structName = change_case(structName, options.pseudoTypeCase); - return structName; -} - -// Clean up the enum name so that it can be used to remove the prefix from enum values. -clean_enum_name_for_prefix_removal :: proc(enumName : string, options : ^GeneratorOptions) -> (string, [dynamic]string) { - enumName := enumName; - - if !options.enumValueNameRemove { - return enumName, nil; - } - - // Remove postfix and use same case convention as the enum values - removedPostfixes : [dynamic]string; - enumName, removedPostfixes = remove_postfixes_with_removed(enumName, options.enumValueNameRemovePostfixes); - enumName = change_case(enumName, options.enumValueCase); - return enumName, removedPostfixes; -} - -clean_enum_value_name :: proc(valueName : string, enumName : string, postfixes : []string, options : ^GeneratorOptions) -> string { - valueName := valueName; - - valueName = remove_prefixes(valueName, options.enumValuePrefixes, options.enumValueTransparentPrefixes); - valueName = remove_postfixes(valueName, postfixes, options.enumValueTransparentPostfixes); - - if options.enumValueNameRemove { - valueName = remove_prefixes(valueName, []string{enumName}); - } - - valueName = change_case(valueName, options.enumValueCase); - - return clean_identifier(valueName); -} - -clean_function_name :: proc(functionName : string, options : ^GeneratorOptions) -> string { - functionName := functionName; - functionName = remove_prefixes(functionName, options.functionPrefixes, options.functionTransparentPrefixes); - functionName = remove_postfixes(functionName, options.definePostfixes, options.defineTransparentPostfixes); - functionName = change_case(functionName, options.functionCase); - return functionName; -} - -clean_define_name :: proc(defineName : string, options : ^GeneratorOptions) -> string { - defineName := defineName; - defineName = remove_prefixes(defineName, options.definePrefixes, options.defineTransparentPrefixes); - defineName = remove_postfixes(defineName, options.definePostfixes, options.defineTransparentPostfixes); - defineName = change_case(defineName, options.defineCase); - return defineName; -} - -// Convert to Odin's types -clean_type :: proc(data : ^GeneratorData, type : Type, baseTab : string = "", explicitSharpType := true) -> string { - output := ""; - - for dimension in type.dimensions { - output = tcat(output, "[", dimension, "]"); - } - output = tcat(output, clean_base_type(data, type.base, baseTab, explicitSharpType)); - - return output; -} - -clean_base_type :: proc(data : ^GeneratorData, baseType : BaseType, baseTab : string = "", explicitSharpType := true) -> string { - options := data.options; - - if _type, ok := baseType.(BuiltinType); ok { - if _type == BuiltinType.Void do return options.mode == "jai" ? "void" : ""; - else if _type == BuiltinType.Int do return options.mode == "jai" ? "s64" : "_c.int"; - else if _type == BuiltinType.UInt do return options.mode == "jai" ? "u64" :"_c.uint"; - else if _type == BuiltinType.LongInt do return options.mode == "jai" ? "s64" :"_c.long"; - else if _type == BuiltinType.ULongInt do return options.mode == "jai" ? "u64" :"_c.ulong"; - else if _type == BuiltinType.LongLongInt do return options.mode == "jai" ? "s64" :"_c.longlong"; - else if _type == BuiltinType.ULongLongInt do return options.mode == "jai" ? "u64" :"_c.ulonglong"; - else if _type == BuiltinType.ShortInt do return options.mode == "jai" ? "s16" :"_c.short"; - else if _type == BuiltinType.UShortInt do return options.mode == "jai" ? "u16" :"_c.ushort"; - else if _type == BuiltinType.Char do return options.mode == "jai" ? "u8" :"_c.char"; - else if _type == BuiltinType.SChar do return options.mode == "jai" ? "s8" :"_c.schar"; - else if _type == BuiltinType.UChar do return options.mode == "jai" ? "u8" :"_c.uchar"; - else if _type == BuiltinType.Float do return options.mode == "jai" ? "float32" :"_c.float"; - else if _type == BuiltinType.Double do return options.mode == "jai" ? "float64" :"_c.double"; - else if _type == BuiltinType.LongDouble { - print_warning("Found long double which is currently not supported. Fallback to double in generated code."); - return options.mode == "jai" ? "double" :"_c.double"; - } - else if _type == BuiltinType.Int8 do return options.mode == "jai" ? "s8" :"i8"; - else if _type == BuiltinType.Int16 do return options.mode == "jai" ? "s16" :"i16"; - else if _type == BuiltinType.Int32 do return options.mode == "jai" ? "s32" :"i32"; - else if _type == BuiltinType.Int64 do return options.mode == "jai" ? "s64" :"i64"; - else if _type == BuiltinType.UInt8 do return options.mode == "jai" ? "u8" :"u8"; - else if _type == BuiltinType.UInt16 do return options.mode == "jai" ? "u16" :"u16"; - else if _type == BuiltinType.UInt32 do return options.mode == "jai" ? "u32" :"u32"; - else if _type == BuiltinType.UInt64 do return options.mode == "jai" ? "u64" :"u64"; - else if _type == BuiltinType.Size do return options.mode == "jai" ? "u64" :"_c.size_t"; - else if _type == BuiltinType.SSize do return options.mode == "jai" ? "u64" :"_c.ssize_t"; - else if _type == BuiltinType.PtrDiff do return options.mode == "jai" ? "s64" :"_c.ptrdiff_t"; - else if _type == BuiltinType.UIntPtr do return options.mode == "jai" ? "u64" :"_c.uintptr_t"; - else if _type == BuiltinType.IntPtr do return options.mode == "jai" ? "s64" :"_c.intptr_t"; - } - else if _type, ok := baseType.(PointerType); ok { - if options.mode == "jai" { - // Hide pointers to types that were not declared. - if !is_known_base_type(data, _type.type.base) { - print_warning("*", _type.type.base.(IdentifierType).name, " replaced by *void as the pointed type is unknown."); - return "*void"; - } - } else { - if __type, ok := _type.type.base.(BuiltinType); ok { - if __type == BuiltinType.Void do return "rawptr"; - else if __type == BuiltinType.Char do return "cstring"; - } - } - name := clean_type(data, _type.type^, baseTab); - return tcat(options.mode == "jai" ? "*" :"^", name); - } - else if _type, ok := baseType.(IdentifierType); ok { - return clean_pseudo_type_name(_type.name, options); - } - else if _type, ok := baseType.(FunctionType); ok { - output : string; - if explicitSharpType { - output = "#type "; - } - output = tcat(output, options.mode == "jai" ? "(" :"proc("); - parameters := clean_function_parameters(data, _type.parameters, baseTab); - output = tcat(output, parameters, ")"); - - returnType := clean_type(data, _type.returnType^); - if len(returnType) > 0 && returnType != "void" { - output = tcat(output, " -> ", returnType); - } - return output; - } - else if _type, ok := baseType.(FunctionPointerType); ok { - output : string; - if explicitSharpType { - output = "#type "; - } - output = tcat(output, options.mode == "jai" ? "(" :"proc("); - parameters := clean_function_parameters(data, _type.parameters, baseTab); - output = tcat(output, parameters, ")"); - - returnType := clean_type(data, _type.returnType^); - if len(returnType) > 0 && returnType != "void" { - output = tcat(output, " -> ", returnType); - } - - if options.mode == "jai" { - output = tcat(output, " #foreign"); - } - return output; - } - - return ""; -} - -clean_function_parameters :: proc(data : ^GeneratorData, parameters : [dynamic]FunctionParameter, baseTab : string) -> string { - output := ""; - options := data.options; - - // Special case: function(void) does not really have a parameter - if len(parameters) == 1 { - if _type, ok := parameters[0].type.base.(BuiltinType); ok { - if _type == BuiltinType.Void { - return ""; - } - } - } - - tab := ""; - if options.mode == "jai" { // @note :OdinCodingStyle Odin forces a coding style, now. Ugh. - if (len(parameters) > 1) { - output = tcat(output, "\n"); - tab = tcat(baseTab, " "); - } - } - - unamedParametersCount := 0; - for parameter, i in parameters { - type := clean_type(data, parameter.type); - - name : string; - if len(parameter.name) != 0 { - name = clean_variable_name(parameter.name, options); - } else { - name = tcat("unamed", unamedParametersCount); - unamedParametersCount += 1; - } - - output = tcat(output, tab, name, " : ", type); - - if i != len(parameters) - 1 { - if options.mode == "jai" { // @note :OdinCodingStyle - output = tcat(output, ",\n"); - } else { - output = tcat(output, ", "); - } - } - } - - if (len(parameters) > 1) { - if options.mode == "jai" { // @note :OdinCodingStyle - output = tcat(output, "\n", baseTab); - } - } - - return output; -} - -is_known_base_type :: proc(data : ^GeneratorData, baseType : BaseType) -> bool { - if _type, ok := baseType.(IdentifierType); ok { - for it in data.nodes.typedefs { - if _type.name == it.name { - return true; - } - } - for it in data.nodes.structDefinitions { - if _type.name == it.name { - return true; - } - } - for it in data.nodes.enumDefinitions { - if _type.name == it.name { - return true; - } - } - for it in data.nodes.unionDefinitions { - if _type.name == it.name { - return true; - } - } - return false; - } - - return true; -} diff --git a/core/bindgen/generator-export.odin b/core/bindgen/generator-export.odin deleted file mode 100644 index a04113ed9..000000000 --- a/core/bindgen/generator-export.odin +++ /dev/null @@ -1,166 +0,0 @@ -package bindgen - -import "core:os" -import "core:fmt" - -export_defines :: proc(data : ^GeneratorData) { - for node in data.nodes.defines { - defineName := clean_define_name(node.name, data.options); - - // @fixme fprint of float numbers are pretty badly handled, - // just has a 10^-3 precision. - fcat(data.handle, defineName, " :: ", node.value, ";\n"); - } - fcat(data.handle, "\n"); -} - -export_typedefs :: proc(data : ^GeneratorData) { - for node in data.nodes.typedefs { - name := clean_pseudo_type_name(node.name, data.options); - type := clean_type(data, node.type, "", true); - if name == type do continue; - fcat(data.handle, name, " :: ", type, ";\n"); - } - fcat(data.handle, "\n"); -} - -export_enums :: proc(data : ^GeneratorData) { - for node in data.nodes.enumDefinitions { - enumName := clean_pseudo_type_name(node.name, data.options); - - if data.options.mode == "jai" { - consideredFlags := false; - for postfix in data.options.enumConsideredFlagsPostfixes { - if ends_with(node.name, postfix) { - consideredFlags = true; - break; - } - } - - if consideredFlags { - fcat(data.handle, enumName, " :: enum_flags u32 {"); - } else { - fcat(data.handle, enumName, " :: enum s32 {"); - } - } else { - fcat(data.handle, enumName, " :: enum i32 {"); - } - - postfixes : [dynamic]string; - enumName, postfixes = clean_enum_name_for_prefix_removal(enumName, data.options); - - // Changing the case of postfixes to the enum value one, - // so that they can be removed. - enumValueCase := find_case(node.members[0].name); - for postfix, i in postfixes { - postfixes[i] = change_case(postfix, enumValueCase); - } - - // And changing the case of enumName to the enum value one - enumName = change_case(enumName, enumValueCase); - - // Merging enum value postfixes with postfixes that have been removed from the enum name. - for postfix in data.options.enumValuePostfixes { - append(&postfixes, postfix); - } - - export_enum_members(data, node.members, enumName, postfixes[:]); - fcat(data.handle, data.options.mode == "jai" ? "}\n" : "};\n"); - fcat(data.handle, "\n"); - } -} - -export_structs :: proc(data : ^GeneratorData) { - for node in data.nodes.structDefinitions { - structName := clean_pseudo_type_name(node.name, data.options); - fcat(data.handle, structName, " :: struct {"); - export_struct_or_union_members(data, node.members); - fcat(data.handle, data.options.mode == "jai" ? "}\n" : "};\n"); - fcat(data.handle, "\n"); - } -} - -export_unions :: proc(data : ^GeneratorData) { - for node in data.nodes.unionDefinitions { - unionName := clean_pseudo_type_name(node.name, data.options); - fcat(data.handle, unionName, data.options.mode == "jai" ? " :: union {" : " :: struct #raw_union {"); - export_struct_or_union_members(data, node.members); - fcat(data.handle, data.options.mode == "jai" ? "}\n" : "};\n"); - fcat(data.handle, "\n"); - } -} - -export_functions :: proc(data : ^GeneratorData) { - for node in data.nodes.functionDeclarations { - functionName := clean_function_name(node.name, data.options); - if data.options.mode == "jai" { - fcat(data.handle, functionName, " :: ("); - } else { - fcat(data.handle, " @(link_name=\"", node.name, "\")\n"); - fcat(data.handle, " ", functionName, " :: proc("); - } - parameters := clean_function_parameters(data, node.parameters, data.options.mode == "jai" ? "" : " "); - fcat(data.handle, parameters, ")"); - returnType := clean_type(data, node.returnType); - if len(returnType) > 0 { - fcat(data.handle, " -> ", returnType); - } - if data.options.mode == "jai" { - fcat(data.handle, " #foreign ", data.foreignLibrary, " \"", node.name ,"\";\n"); - } else { - fcat(data.handle, " ---;\n"); - } - fcat(data.handle, "\n"); - } -} - -export_enum_members :: proc(data : ^GeneratorData, members : [dynamic]EnumMember, enumName : string, postfixes : []string) { - if (len(members) > 0) { - fcat(data.handle, "\n"); - } - - cleanedMembers : [dynamic]EnumMember; - for member in members { - cleanedMember : EnumMember; - cleanedMember.hasValue = member.hasValue; - cleanedMember.value = member.value; - cleanedMember.name = clean_enum_value_name(member.name, enumName, postfixes, data.options); - - if len(cleanedMember.name) == 0 { - // print_warning("Enum member ", member.name, " resolves to an empty name. Ignoring it."); - continue; - } - - // Ensuring that we don't collide with an other enum member. - foundCopy := false; - for existingCleanedMember in cleanedMembers { - if cleanedMember.name == existingCleanedMember.name && - cleanedMember.hasValue == existingCleanedMember.hasValue && - cleanedMember.value == existingCleanedMember.value { - print_warning("Enum member ", member.name, " is duplicated once cleaned. Keeping only one copy."); - foundCopy = true; - break; - } - } - if foundCopy do continue; - - fcat(data.handle, " ", cleanedMember.name); - if member.hasValue { - fcat(data.handle, data.options.mode == "jai" ? " :: " : " = ", member.value); - } - fcat(data.handle, data.options.mode == "jai" ? ";\n" : ",\n"); - - append(&cleanedMembers, cleanedMember); - } -} - -export_struct_or_union_members :: proc(data : ^GeneratorData, members : [dynamic]StructOrUnionMember) { - if (len(members) > 0) { - fcat(data.handle, "\n"); - } - for member in members { - type := clean_type(data, member.type, " "); - name := clean_variable_name(member.name, data.options); - fcat(data.handle, " ", name, " : ", type, data.options.mode == "jai" ? ";\n" : ",\n"); - } -} diff --git a/core/bindgen/generator-helpers.odin b/core/bindgen/generator-helpers.odin deleted file mode 100644 index a3b37f4f6..000000000 --- a/core/bindgen/generator-helpers.odin +++ /dev/null @@ -1,392 +0,0 @@ -package bindgen - -import "core:fmt" -import "core:os" -import "core:io" -import "core:strings" -import "core:unicode/utf8" - -Case :: enum { - Unknown, - Camel, - Constant, - Kebab, - Pascal, - Snake, -} - -WordCase :: enum { - Unknown, - Up, - Low, - FirstUp, - // When first upping, numbers are followed always by a capital - FirstUpNumberReset, -} - -// Change a character to a capital. -to_uppercase :: proc(c : rune) -> rune { - c := c; - if c >= 'a' && c <= 'z' { - c = c - 'a' + 'A'; - } - return c; -} - -// Change a character to lowercase. -to_lowercase :: proc(c : rune) -> rune { - c := c; - if c >= 'A' && c <= 'Z' { - c = c - 'A' + 'a'; - } - return c; -} - -// @note Stolen tprint and fprint from fmt package, because it was confusing due to args: ..any and sep default parameter. -tcat :: proc(args: ..any) -> string { - return fmt.tprint(args=args, sep=""); -} - -fcat :: proc(fd: os.Handle, args: ..any) -> int { - return fmt.fprint(fd=fd, args=args, sep=""); -} - -// Change the case convention of a word. -change_word_case :: proc(str : string, targetCase : WordCase) -> string { - newStr : string; - if targetCase == WordCase.Up { - for c in str { - newStr = tcat(newStr, to_uppercase(c)); - } - } - else if targetCase == WordCase.Low { - for c in str { - newStr = tcat(newStr, to_lowercase(c)); - } - } - else if targetCase == WordCase.FirstUp { - for c, i in str { - if i == 0 { - newStr = tcat(newStr, to_uppercase(c)); - } else { - newStr = tcat(newStr, to_lowercase(c)); - } - } - } - else if targetCase == WordCase.FirstUpNumberReset { - for c, i in str { - if i == 0 || (str[i - 1] >= '0' && str[i - 1] <= '9') { - newStr = tcat(newStr, to_uppercase(c)); - } else { - newStr = tcat(newStr, to_lowercase(c)); - } - } - } - return newStr; -} - -// Change the case convention of a string by detecting original convention, -// then splitting it into words. -change_case :: proc(str : string, targetCase : Case) -> string { - if targetCase == Case.Unknown { - return str; - } - - // Split - parts := autosplit_string(str); - - // Join - newStr : string; - if targetCase == Case.Pascal { - for part, i in parts { - newStr = tcat(newStr, change_word_case(part, WordCase.FirstUpNumberReset)); - } - } - else if targetCase == Case.Snake { - for part, i in parts { - newStr = tcat(newStr, change_word_case(part, WordCase.Low), (i != len(parts) - 1) ? "_" : ""); - } - } - else if targetCase == Case.Kebab { - for part, i in parts { - newStr = tcat(newStr, change_word_case(part, WordCase.Low), (i != len(parts) - 1) ? "-" : ""); - } - } - else if targetCase == Case.Camel { - for part, i in parts { - if i == 0 { - newStr = tcat(newStr, change_word_case(part, WordCase.Low)); - } else { - newStr = tcat(newStr, change_word_case(part, WordCase.FirstUpNumberReset)); - } - } - } - else if targetCase == Case.Constant { - for part, i in parts { - newStr = tcat(newStr, change_word_case(part, WordCase.Up), (i != len(parts) - 1) ? "_" : ""); - } - } - - return newStr; -} - -// Identify the case of the provided string. -// Full lowercase with no separator is identified as camelCase. -find_case :: proc(str : string) -> Case { - refuted : bool; - - // CONSTANT_CASE - refuted = false; - for c in str { - if (c != '_') && (c < 'A' || c > 'Z') && (c < '0' || c > '9') { - refuted = true; - break; - } - } - if !refuted do return Case.Constant; - - for c in str { - // snake_case - if c == '_' { - return Case.Snake; - } // kebab-case - else if c == '-' { - return Case.Kebab; - } - } - - // PascalCase - if str[0] >= 'A' && str[0] <= 'Z' { - return Case.Pascal; - } - - // camelCase - return Case.Camel; -} - -// Splits the string according to detected case. -// HeyBuddy -> {"Hey", "Buddy"} -// hey-buddy -> {"hey", "buddy"} -// _hey_buddy -> {"", "hey", "buddy"} -// and such... -autosplit_string :: proc(str : string) -> [dynamic]string { - lowCount := 0; - upCount := 0; - for c in str { - // If any '_', split according to that (CONSTANT_CASE or snake_case) - if c == '_' { - return split_from_separator(str, '_'); - } // If any '-', split according to that (kebab-case) - else if c == '-' { - return split_from_separator(str, '-'); - } - else if c >= 'a' && c <= 'z' { - lowCount += 1; - } - else if c >= 'A' && c <= 'Z' { - upCount += 1; - } - } - - // If it seems to be only one word - if lowCount == 0 || upCount == 0 { - parts : [dynamic]string; - append(&parts, str); - return parts; - } - - // Split at each uppercase letter (PascalCase or camelCase) - return split_from_capital(str); -} - -split_from_separator :: proc(str : string, sep : rune) -> [dynamic]string { - parts : [dynamic]string; - - lastI := 0; - - // Empty strings for starting separators in string - for c in str { - if c == sep { - append(&parts, ""); - lastI += 1; - } else { - break; - } - } - - // Ignore non letter prefix - if lastI == 0 { - for c in str { - if (c < 'a' || c > 'z') && (c < 'A' || c > 'Z') { - lastI += 1; - } - else { - break; - } - } - } - - for c, i in str { - if i > lastI + 1 && c == sep { - append(&parts, str[lastI:i]); - lastI = i + 1; - } - } - - append(&parts, str[lastI:]); - - return parts; -} - -split_from_capital :: proc(str : string) -> [dynamic]string { - parts : [dynamic]string; - - // Ignore non letter prefix - lastI := 0; - for c in str { - if (c < 'a' || c > 'z') && (c < 'A' || c > 'Z') { - lastI += 1; - } - else { - break; - } - } - - // We want to handle: - // myBrainIsCRAZY -> my Brain Is Crazy - // myCRAZYBrain -> my CRAZY Brain - // SOLO -> SOLO - - // Do split - for i := 1; i < len(str); i += 1 { - if str[i] >= 'A' && str[i] <= 'Z' { - // Do not split too much if it seems to be a capitalized word - if (lastI == i - 1) && (str[lastI] >= 'A' && str[lastI] <= 'Z') { - for ; i + 1 < len(str); i += 1 { - if str[i + 1] < 'A' || str[i + 1] > 'Z' { - break; - } - } - if (i + 1 == len(str)) && (str[i] >= 'A' && str[i] <= 'Z') { - i += 1; - } - } - - append(&parts, str[lastI:i]); - lastI = i; - } - } - - if lastI != len(str) { - append(&parts, str[lastI:]); - } - - return parts; -} - -// Check if str if prefixed with any of the provided strings, -// even combinaisons of those, and remove them. -remove_prefixes :: proc(str : string, prefixes : []string, transparentPrefixes : []string = nil) -> string { - str := str; - transparentStr := ""; - - found := true; - for found { - found = false; - - // Remove effective prefixes - for prefix in prefixes { - if len(str) >= len(prefix) && - str[:len(prefix)] == prefix { - str = str[len(prefix):]; - if len(str) != 0 && (str[0] == '_' || str[0] == '-') { - str = str[1:]; - } - found = true; - break; - } - } - - if found do continue; - - // Remove transparent ones, only one by one, - // as we want effective ones to be fully removed. - for prefix in transparentPrefixes { - if len(str) >= len(prefix) && - str[:len(prefix)] == prefix { - str = str[len(prefix):]; - transparentStr = tcat(transparentStr, prefix); - if len(str) != 0 && (str[0] == '_' || str[0] == '-') { - str = str[1:]; - transparentStr = tcat(transparentStr, '_'); - } - found = true; - break; - } - } - } - - return tcat(transparentStr, str); -} - -// Check if str if postfixes with any of the provided strings, -// even combinaisons of those, and remove them. -remove_postfixes_with_removed :: proc( - str : string, - postfixes : []string, - transparentPostfixes : []string = nil) -> (string, [dynamic]string) { - str := str; - removedPostfixes : [dynamic]string; - transparentStr := ""; - - found := true; - for found { - found = false; - - // Remove effective postfixes - for postfix in postfixes { - if ends_with(str, postfix) { - str = str[:len(str) - len(postfix)]; - if len(str) != 0 && (str[len(str)-1] == '_' || str[len(str)-1] == '-') { - str = str[:len(str)-1]; - } - append(&removedPostfixes, postfix); - found = true; - break; - } - } - - if found do continue; - - // Remove transparent ones, only one by one, - // as we want effective ones to be fully removed. - for postfix in transparentPostfixes { - if ends_with(str, postfix) { - str = str[:len(str) - len(postfix)]; - transparentStr = tcat(postfix, transparentStr); - if len(str) != 0 && (str[len(str)-1] == '_' || str[len(str)-1] == '-') { - str = str[:len(str)-1]; - transparentStr = tcat('_', transparentStr); - } - found = true; - break; - } - } - } - - return tcat(str, transparentStr), removedPostfixes; -} - -remove_postfixes :: proc( - str : string, - postfixes : []string, - transparentPostfixes : []string = nil) -> string { - str := str; - removedPostfixes : [dynamic]string; - str, removedPostfixes = remove_postfixes_with_removed(str, postfixes, transparentPostfixes); - return str; -} - -ends_with :: proc(str : string, postfix : string) -> bool { - return len(str) >= len(postfix) && str[len(str) - len(postfix):] == postfix; -} diff --git a/core/bindgen/generator.odin b/core/bindgen/generator.odin deleted file mode 100644 index 3ef3d69c0..000000000 --- a/core/bindgen/generator.odin +++ /dev/null @@ -1,205 +0,0 @@ -/** - * Odin binding generator from C header data. - */ - -package bindgen - -import "core:os" -import "core:fmt" -import "core:runtime" - -GeneratorOptions :: struct { - mode : string, // "odin" or "jai" - - // Variable - variableCase : Case, - - // Defines - definePrefixes : []string, - defineTransparentPrefixes : []string, - definePostfixes : []string, - defineTransparentPostfixes : []string, - defineCase : Case, - - // Pseudo-types - pseudoTypePrefixes : []string, - pseudoTypeTransparentPrefixes : []string, - pseudoTypePostfixes : []string, - pseudoTypeTransparentPostfixes : []string, - pseudoTypeCase : Case, - - // Enums - enumConsideredFlagsPostfixes : []string, - - // Functions - functionPrefixes : []string, - functionTransparentPrefixes : []string, - functionPostfixes : []string, - functionTransparentPostfixes : []string, - functionCase : Case, - - // Enum values - enumValuePrefixes : []string, - enumValueTransparentPrefixes : []string, - enumValuePostfixes : []string, - enumValueTransparentPostfixes : []string, - enumValueCase : Case, - enumValueNameRemove : bool, - enumValueNameRemovePostfixes : []string, - - parserOptions : ParserOptions, -} - -GeneratorData :: struct { - handle : os.Handle, - nodes : Nodes, - - // References - foreignLibrary : string, - options : ^GeneratorOptions, -} - -generate :: proc( - packageName : string, - foreignLibrary : string, - outputFile : string, - headerFiles : []string, - options : GeneratorOptions, -) { - options := options; - data : GeneratorData; - data.options = &options; - data.foreignLibrary = foreignLibrary; - - if options.mode == "" { - options.mode = "odin"; - } - - // Outputing odin file - errno : os.Errno; - - // chmod 664 when creating file - mode: int = 0; - when os.OS == "linux" || os.OS == "darwin" { - mode = os.S_IRUSR | os.S_IWUSR | os.S_IRGRP | os.S_IWGRP | os.S_IROTH; - } - - data.handle, errno = os.open(outputFile, os.O_WRONLY | os.O_CREATE | os.O_TRUNC, mode); - if errno != 0 { - fmt.eprint("[bindgen] Unable to write to output file ", outputFile, " (", errno ,")\n"); - return; - } - defer os.close(data.handle); - - if options.mode == "jai" { - fcat(data.handle, foreignLibrary, " :: #foreign_library \"", foreignLibrary, "\";\n"); - fcat(data.handle, "\n"); - } else { - fcat(data.handle, "package ", packageName, "\n"); - fcat(data.handle, "\n"); - fcat(data.handle, "foreign import \"", foreignLibrary, "\"\n"); - fcat(data.handle, "\n"); - fcat(data.handle, "import _c \"core:c\"\n"); - fcat(data.handle, "\n"); - } - - // Parsing header files - anonymousStructCount = 0; - anonymousUnionCount = 0; - anonymousEnumCount = 0; - - for headerFile in headerFiles { - bytes, ok := os.read_entire_file(headerFile); - if !ok { - fmt.eprint("[bindgen] Unable to read file ", headerFile, "\n"); - return; - } - - // We fuse the SOAs - headerNodes := parse(bytes, options.parserOptions); - merge_generic_nodes(&data.nodes.defines, &headerNodes.defines); - merge_generic_nodes(&data.nodes.enumDefinitions, &headerNodes.enumDefinitions); - merge_generic_nodes(&data.nodes.unionDefinitions, &headerNodes.unionDefinitions); - merge_forward_declared_nodes(&data.nodes.structDefinitions, &headerNodes.structDefinitions); - merge_generic_nodes(&data.nodes.functionDeclarations, &headerNodes.functionDeclarations); - merge_generic_nodes(&data.nodes.typedefs, &headerNodes.typedefs); - } - - // Exporting - export_defines(&data); - export_typedefs(&data); - export_enums(&data); - export_structs(&data); - export_unions(&data); - - // Foreign block for functions - if options.mode != "jai" { - foreignLibrarySimple := simplify_library_name(foreignLibrary); - fcat(data.handle, "@(default_calling_convention=\"c\")\n"); - fcat(data.handle, "foreign ", foreignLibrarySimple, " {\n"); - fcat(data.handle, "\n"); - } - - export_functions(&data); - - if options.mode != "jai" { - fcat(data.handle, "}\n"); - } -} - -// system:foo.lib -> foo -simplify_library_name :: proc(libraryName : string) -> string { - startOffset := 0; - endOffset := len(libraryName); - - for c, i in libraryName { - if startOffset == 0 && c == ':' { - startOffset = i + 1; - } - else if c == '.' { - endOffset = i; - break; - } - } - - return libraryName[startOffset:endOffset]; -} - -merge_generic_nodes :: proc(nodes : ^$T, headerNodes : ^T) { - for headerNode in headerNodes { - // Check that there are no duplicated nodes (due to forward declaration or such) - duplicatedIndex := -1; - for i := 0; i < len(nodes); i += 1 { - node := nodes[i]; - if node.name == headerNode.name { - duplicatedIndex = i; - break; - } - } - - if duplicatedIndex < 0 { - append(nodes, headerNode); - } - } -} - -merge_forward_declared_nodes :: proc(nodes : ^$T, headerNodes : ^T) { - for headerNode in headerNodes { - // Check that there are no duplicated nodes (due to forward declaration or such) - duplicatedIndex := -1; - for i := 0; i < len(nodes); i += 1 { - node := nodes[i]; - if node.name == headerNode.name { - duplicatedIndex = i; - break; - } - } - - if duplicatedIndex < 0 { - append(nodes, headerNode); - } - else if !headerNode.forwardDeclared && len(headerNode.members) > 0 { - nodes[duplicatedIndex] = headerNode; - } - } -} diff --git a/wasm-ld b/wasm-ld deleted file mode 120000 index 01ef2a7e7..000000000 --- a/wasm-ld +++ /dev/null @@ -1 +0,0 @@ -/Volumes/Phill_Backup/pers/programming/sdk/emsdk/upstream/bin/lld \ No newline at end of file From a8b44f33bda904e82d17624d524d50eb9b828e09 Mon Sep 17 00:00:00 2001 From: Mohamed Akram Date: Fri, 8 Jul 2022 16:14:54 +0400 Subject: [PATCH 006/137] Allow passing config options to build script --- build_odin.sh | 54 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/build_odin.sh b/build_odin.sh index aef3f2836..8ef5e4e94 100755 --- a/build_odin.sh +++ b/build_odin.sh @@ -1,12 +1,20 @@ #!/bin/bash set -eu -GIT_SHA=$(git rev-parse --short HEAD) +: ${CXX=clang++} +: ${CPPFLAGS=} +: ${CXXFLAGS=} +: ${LDFLAGS=} +: ${ODIN_VERSION=dev-$(date +"%Y-%m")} + +CPPFLAGS="$CPPFLAGS -DODIN_VERSION_RAW=\"$ODIN_VERSION\"" +CXXFLAGS="$CXXFLAGS -std=c++14" +LDFLAGS="$LDFLAGS -pthread -lm -lstdc++" + +GIT_SHA=$(git rev-parse --short HEAD || :) +if [ "$GIT_SHA" ]; then CPPFLAGS="$CPPFLAGS -DGIT_SHA=\"$GIT_SHA\""; fi + DISABLED_WARNINGS="-Wno-switch -Wno-macro-redefined -Wno-unused-value" -LDFLAGS="-pthread -lm -lstdc++" -CFLAGS="-std=c++14 -DGIT_SHA=\"$GIT_SHA\"" -CFLAGS="$CFLAGS -DODIN_VERSION_RAW=\"dev-$(date +"%Y-%m")\"" -CC=clang OS=$(uname) panic() { @@ -18,7 +26,7 @@ version() { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; config_darwin() { ARCH=$(uname -m) - LLVM_CONFIG=llvm-config + : ${LLVM_CONFIG=llvm-config} # allow for arm only llvm's with version 13 if [ ARCH == arm64 ]; then @@ -37,34 +45,38 @@ config_darwin() { fi LDFLAGS="$LDFLAGS -liconv -ldl" - CFLAGS="$CFLAGS $($LLVM_CONFIG --cxxflags --ldflags)" + CXXFLAGS="$CXXFLAGS $($LLVM_CONFIG --cxxflags --ldflags)" LDFLAGS="$LDFLAGS -lLLVM-C" } config_freebsd() { - LLVM_CONFIG=/usr/local/bin/llvm-config11 + : ${LLVM_CONFIG=/usr/local/bin/llvm-config11} - CFLAGS="$CFLAGS $($LLVM_CONFIG --cxxflags --ldflags)" + CXXFLAGS="$CXXFLAGS $($LLVM_CONFIG --cxxflags --ldflags)" LDFLAGS="$LDFLAGS $($LLVM_CONFIG --libs core native --system-libs)" } config_openbsd() { - LLVM_CONFIG=/usr/local/bin/llvm-config + : ${LLVM_CONFIG=/usr/local/bin/llvm-config} LDFLAGS="$LDFLAGS -liconv" - CFLAGS="$CFLAGS $($LLVM_CONFIG --cxxflags --ldflags)" + CXXFLAGS="$CXXFLAGS $($LLVM_CONFIG --cxxflags --ldflags)" LDFLAGS="$LDFLAGS $($LLVM_CONFIG --libs core native --system-libs)" } config_linux() { - if which llvm-config > /dev/null 2>&1; then - LLVM_CONFIG=llvm-config - elif which llvm-config-11 > /dev/null 2>&1; then - LLVM_CONFIG=llvm-config-11 - elif which llvm-config-11-64 > /dev/null 2>&1; then - LLVM_CONFIG=llvm-config-11-64 - else - panic "Unable to find LLVM-config" + : ${LLVM_CONFIG=} + + if [ ! "$LLVM_CONFIG" ]; then + if which llvm-config > /dev/null 2>&1; then + LLVM_CONFIG=llvm-config + elif which llvm-config-11 > /dev/null 2>&1; then + LLVM_CONFIG=llvm-config-11 + elif which llvm-config-11-64 > /dev/null 2>&1; then + LLVM_CONFIG=llvm-config-11-64 + else + panic "Unable to find LLVM-config" + fi fi MIN_LLVM_VERSION=("11.0.0") @@ -74,7 +86,7 @@ config_linux() { fi LDFLAGS="$LDFLAGS -ldl" - CFLAGS="$CFLAGS $($LLVM_CONFIG --cxxflags --ldflags)" + CXXFLAGS="$CXXFLAGS $($LLVM_CONFIG --cxxflags --ldflags)" LDFLAGS="$LDFLAGS $($LLVM_CONFIG --libs core native --system-libs)" } @@ -97,7 +109,7 @@ build_odin() { esac set -x - $CC src/main.cpp src/libtommath.cpp $DISABLED_WARNINGS $CFLAGS $EXTRAFLAGS $LDFLAGS -o odin + $CXX src/main.cpp src/libtommath.cpp $DISABLED_WARNINGS $CPPFLAGS $CXXFLAGS $EXTRAFLAGS $LDFLAGS -o odin set +x } From 25869b7504c2de9197a2047391bf10b0a42f8862 Mon Sep 17 00:00:00 2001 From: Daniel Gavin Date: Mon, 25 Jul 2022 11:34:03 +0200 Subject: [PATCH 007/137] Change open to be read only when opening directory --- core/path/filepath/match.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/path/filepath/match.odin b/core/path/filepath/match.odin index 00a9c9fb0..c932f202a 100644 --- a/core/path/filepath/match.odin +++ b/core/path/filepath/match.odin @@ -271,7 +271,7 @@ _glob :: proc(dir, pattern: string, matches: ^[dynamic]string, allocator := cont } - d, derr := os.open(dir) + d, derr := os.open(dir, os.O_RDONLY) if derr != 0 { return } From 5f2b220a850c6812bb7b5e4d778be37d8dc8962b Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 25 Jul 2022 12:12:25 +0100 Subject: [PATCH 008/137] Fix minor issue with a lack of a trailing comma --- src/parser.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/parser.cpp b/src/parser.cpp index 247255ce8..b62ec7a74 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -3894,7 +3894,8 @@ Ast *parse_field_list(AstFile *f, isize *name_count_, u32 allowed_flags, TokenKi while (f->curr_token.kind != follow && - f->curr_token.kind != Token_EOF) { + f->curr_token.kind != Token_EOF && + f->curr_token.kind != Token_Semicolon) { CommentGroup *docs = f->lead_comment; u32 set_flags = parse_field_prefixes(f); Token tag = {}; @@ -3922,7 +3923,7 @@ Ast *parse_field_list(AstFile *f, isize *name_count_, u32 allowed_flags, TokenKi default_value = parse_expr(f, false); if (!allow_default_parameters) { syntax_error(f->curr_token, "Default parameters are only allowed for procedures"); - default_value = nullptr; + default_value = nullptr; } } From 220dfd74403289aed4d4ed420bc4f73bf2e90c3e Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 25 Jul 2022 17:00:32 +0100 Subject: [PATCH 009/137] Minor clean up of wasi_api.odin --- core/sys/wasm/wasi/wasi_api.odin | 430 ++++++++++++------------------- 1 file changed, 171 insertions(+), 259 deletions(-) diff --git a/core/sys/wasm/wasi/wasi_api.odin b/core/sys/wasm/wasi/wasi_api.odin index 2e2a99617..d4f0d19cf 100644 --- a/core/sys/wasm/wasi/wasi_api.odin +++ b/core/sys/wasm/wasi/wasi_api.odin @@ -1148,6 +1148,156 @@ foreign wasi { */ how: sdflags_t, ) -> errno_t --- + + + /** + * Return a description of the given preopened file descriptor. + */ + fd_prestat_dir_name :: proc( + fd: fd_t, + /** + * A buffer into which to write the preopened directory name. + */ + path: string, + ) -> errno_t --- + /** + * Create a directory. + * Note: This is similar to `mkdirat` in POSIX. + */ + path_create_directory :: proc( + fd: fd_t, + /** + * The path at which to create the directory. + */ + path: string, + ) -> errno_t --- + /** + * Adjust the timestamps of a file or directory. + * Note: This is similar to `utimensat` in POSIX. + */ + path_filestat_set_times :: proc( + fd: fd_t, + /** + * Flags determining the method of how the path is resolved. + */ + flags: lookupflags_t, + /** + * The path of the file or directory to operate on. + */ + path: string, + /** + * The desired values of the data access timestamp. + */ + atim: timestamp_t, + /** + * The desired values of the data modification timestamp. + */ + mtim: timestamp_t, + /** + * A bitmask indicating which timestamps to adjust. + */ + fst_flags: fstflags_t, + ) -> errno_t --- + /** + * Remove a directory. + * Return `errno::notempty` if the directory is not empty. + * Note: This is similar to `unlinkat(fd, path, AT_REMOVEDIR)` in POSIX. + */ + path_remove_directory :: proc( + fd: fd_t, + /** + * The path to a directory to remove. + */ + path: string, + ) -> errno_t --- + /** + * Create a hard link. + * Note: This is similar to `linkat` in POSIX. + */ + path_link :: proc( + old_fd: fd_t, + /** + * Flags determining the method of how the path is resolved. + */ + old_flags: lookupflags_t, + /** + * The source path from which to link. + */ + old_path: string, + /** + * The working directory at which the resolution of the new path starts. + */ + new_fd: fd_t, + /** + * The destination path at which to create the hard link. + */ + new_path: string, + ) -> errno_t --- + + /** + * Rename a file or directory. + * Note: This is similar to `renameat` in POSIX. + */ + path_rename :: proc( + fd: fd_t, + /** + * The source path of the file or directory to rename. + */ + old_path: string, + /** + * The working directory at which the resolution of the new path starts. + */ + new_fd: fd_t, + /** + * The destination path to which to rename the file or directory. + */ + new_path: string, + ) -> errno_t --- + + /** + * Create a symbolic link. + * Note: This is similar to `symlinkat` in POSIX. + */ + path_symlink :: proc( + /** + * The contents of the symbolic link. + */ + old_path: string, + fd: fd_t, + /** + * The destination path at which to create the symbolic link. + */ + new_path: string, + ) -> errno_t --- + + /** + * Unlink a file. + * Return `errno::isdir` if the path refers to a directory. + * Note: This is similar to `unlinkat(fd, path, 0)` in POSIX. + */ + path_unlink_file :: proc( + fd: fd_t, + /** + * The path to a file to unlink. + */ + path: string, + ) -> errno_t --- + + /** + * Write high-quality random data into a buffer. + * This function blocks when the implementation is unable to immediately + * provide sufficient high-quality random data. + * This function may execute slowly, so when large mounts of random data are + * required, it's advisable to use this function to seed a pseudo-random + * number generator, rather than to provide the random data directly. + */ + random_get :: proc( + /** + * The buffer to fill with random data. + */ + buf: []u8, + ) -> errno_t --- + } /** @@ -1250,7 +1400,7 @@ fd_pread :: proc "c" ( */ offset: filesize_t, ) -> (n: size_t, err: errno_t) { - err = wasi_fd_pread(fd, raw_data(iovs), len(iovs), offset, &n) + err = wasi_fd_pread(fd, iovs, offset, &n) return } /** @@ -1281,7 +1431,7 @@ fd_pwrite :: proc "c" ( */ offset: filesize_t, ) -> (n: size_t, err: errno_t) { - err = wasi_fd_pwrite(fd, raw_data(iovs), len(iovs), offset, &n) + err = wasi_fd_pwrite(fd, iovs, offset, &n) return } /** @@ -1297,7 +1447,7 @@ fd_read :: proc "c" ( */ iovs: []iovec_t, ) -> (n: size_t, err: errno_t) { - err = wasi_fd_read(fd, raw_data(iovs), len(iovs), &n) + err = wasi_fd_read(fd, iovs, &n) return } /** @@ -1324,7 +1474,7 @@ fd_readdir :: proc "c" ( */ cookie: dircookie_t, ) -> (n: size_t, err: errno_t) { - err = wasi_fd_readdir(fd, raw_data(buf), len(buf), cookie, &n) + err = wasi_fd_readdir(fd, buf, cookie, &n) return } /** @@ -1370,7 +1520,7 @@ fd_write :: proc "c" ( */ iovs: []ciovec_t, ) -> (n: size_t, err: errno_t) { - err = wasi_fd_write(fd, raw_data(iovs), len(iovs), &n) + err = wasi_fd_write(fd, iovs, &n) return } /** @@ -1390,7 +1540,7 @@ path_filestat_get :: proc "c" ( */ path: string, ) -> (offset: filestat_t, err: errno_t) { - err = wasi_path_filestat_get(fd, flags, raw_data(path), len(path), &offset) + err = wasi_path_filestat_get(fd, flags, path, &offset) return } /** @@ -1432,7 +1582,7 @@ path_open :: proc "c" ( fs_rights_inheriting: rights_t, fdflags: fdflags_t, ) -> (file: fd_t, err: errno_t) { - err = wasi_path_open(fd, dirflags, raw_data(path), len(path), oflags, fs_rights_base, fs_rights_inheriting, fdflags, &file) + err = wasi_path_open(fd, dirflags, path, oflags, fs_rights_base, fs_rights_inheriting, fdflags, &file) return } /** @@ -1452,7 +1602,7 @@ path_readlink :: proc "c" ( */ buf: []u8, ) -> (n: size_t, err: errno_t) { - err = wasi_path_readlink(fd, raw_data(path), len(path), raw_data(buf), len(buf), &n) + err = wasi_path_readlink(fd, path, buf, &n) return } /** @@ -1495,7 +1645,7 @@ sock_recv :: proc "c" ( */ ri_flags: riflags_t, ) -> (n: size_t, flags: roflags_t, err: errno_t) { - err = wasi_sock_recv(fd, raw_data(ri_data), len(ri_data), ri_flags, &n, &flags) + err = wasi_sock_recv(fd, ri_data, ri_flags, &n, &flags) return } /** @@ -1516,172 +1666,11 @@ sock_send :: proc "c" ( */ si_flags: siflags_t, ) -> (n: size_t, err: errno_t) { - err = wasi_sock_send(fd, raw_data(si_data), len(si_data), si_flags, &n) + err = wasi_sock_send(fd, si_data, si_flags, &n) return } -/** - * Return a description of the given preopened file descriptor. - */ -fd_prestat_dir_name :: proc( - fd: fd_t, - /** - * A buffer into which to write the preopened directory name. - */ - path: string, -) -> errno_t { - return wasm_fd_prestat_dir_name(fd, raw_data(path), len(path)) -} -/** - * Create a directory. - * Note: This is similar to `mkdirat` in POSIX. - */ -path_create_directory :: proc( - fd: fd_t, - /** - * The path at which to create the directory. - */ - path: string, -) -> errno_t { - return wasm_path_create_directory(fd, raw_data(path), len(path)) -} -/** - * Adjust the timestamps of a file or directory. - * Note: This is similar to `utimensat` in POSIX. - */ -path_filestat_set_times :: proc( - fd: fd_t, - /** - * Flags determining the method of how the path is resolved. - */ - flags: lookupflags_t, - /** - * The path of the file or directory to operate on. - */ - path: string, - /** - * The desired values of the data access timestamp. - */ - atim: timestamp_t, - /** - * The desired values of the data modification timestamp. - */ - mtim: timestamp_t, - /** - * A bitmask indicating which timestamps to adjust. - */ - fst_flags: fstflags_t, -) -> errno_t { - return wasm_path_filestat_set_times(fd, flags, raw_data(path), len(path), atim, mtim, fst_flags) -} -/** - * Remove a directory. - * Return `errno::notempty` if the directory is not empty. - * Note: This is similar to `unlinkat(fd, path, AT_REMOVEDIR)` in POSIX. - */ -path_remove_directory :: proc( - fd: fd_t, - /** - * The path to a directory to remove. - */ - path: string, -) -> errno_t { - return wasm_path_remove_directory(fd, raw_data(path), len(path)) -} -/** - * Create a hard link. - * Note: This is similar to `linkat` in POSIX. - */ -path_link :: proc( - old_fd: fd_t, - /** - * Flags determining the method of how the path is resolved. - */ - old_flags: lookupflags_t, - /** - * The source path from which to link. - */ - old_path: string, - /** - * The working directory at which the resolution of the new path starts. - */ - new_fd: fd_t, - /** - * The destination path at which to create the hard link. - */ - new_path: string, -) -> errno_t { - return wasm_path_link(old_fd, old_flags, raw_data(old_path), len(old_path), new_fd, raw_data(new_path), len(new_path)) -} -/** - * Rename a file or directory. - * Note: This is similar to `renameat` in POSIX. - */ -path_rename :: proc( - fd: fd_t, - /** - * The source path of the file or directory to rename. - */ - old_path: string, - /** - * The working directory at which the resolution of the new path starts. - */ - new_fd: fd_t, - /** - * The destination path to which to rename the file or directory. - */ - new_path: string, -) -> errno_t { - return wasm_path_rename(fd, raw_data(old_path), len(old_path), new_fd, raw_data(new_path), len(new_path)) -} -/** - * Create a symbolic link. - * Note: This is similar to `symlinkat` in POSIX. - */ -path_symlink :: proc( - /** - * The contents of the symbolic link. - */ - old_path: string, - fd: fd_t, - /** - * The destination path at which to create the symbolic link. - */ - new_path: string, -) -> errno_t { - return wasm_path_symlink(raw_data(old_path), len(old_path), fd, raw_data(new_path), len(new_path)) -} -/** - * Unlink a file. - * Return `errno::isdir` if the path refers to a directory. - * Note: This is similar to `unlinkat(fd, path, 0)` in POSIX. - */ -path_unlink_file :: proc( - fd: fd_t, - /** - * The path to a file to unlink. - */ - path: string, -) -> errno_t { - return wasm_path_unlink_file(fd, raw_data(path), len(path)) -} -/** - * Write high-quality random data into a buffer. - * This function blocks when the implementation is unable to immediately - * provide sufficient high-quality random data. - * This function may execute slowly, so when large mounts of random data are - * required, it's advisable to use this function to seed a pseudo-random - * number generator, rather than to provide the random data directly. - */ -random_get :: proc( - /** - * The buffer to fill with random data. - */ - buf: []u8, -) -> errno_t { - return wasm_random_get(raw_data(buf), len(buf)) -} @@ -1722,8 +1711,7 @@ foreign wasi { @(link_name="fd_pread") wasi_fd_pread :: proc( fd: fd_t, - iovs: [^]iovec_t, - iovs_len: size_t, + iovs: []iovec_t, offset: filesize_t, retptr0: ^size_t, ) -> errno_t --- @@ -1735,23 +1723,20 @@ foreign wasi { @(link_name="fd_pwrite") wasi_fd_pwrite :: proc( fd: fd_t, - iovs: [^]ciovec_t, - iovs_len: size_t, + iovs: []ciovec_t, offset: filesize_t, retptr0: ^size_t, ) -> errno_t --- @(link_name="fd_read") wasi_fd_read :: proc( fd: fd_t, - iovs: [^]iovec_t, - iovs_len: size_t, + iovs: []iovec_t, retptr0: ^size_t, ) -> errno_t --- @(link_name="fd_readdir") wasi_fd_readdir :: proc( fd: fd_t, - buf: [^]u8, - buf_len: size_t, + buf: []u8, cookie: dircookie_t, retptr0: ^size_t, ) -> errno_t --- @@ -1770,8 +1755,7 @@ foreign wasi { @(link_name="fd_write") wasi_fd_write :: proc( fd: fd_t, - iovs: [^]ciovec_t, - iovs_len: size_t, + iovs: []ciovec_t, retptr0: ^size_t, ) -> errno_t --- @(link_name="path_filestat_get") @@ -1781,16 +1765,14 @@ foreign wasi { /** * The path of the file or directory to inspect. */ - path: [^]u8, - path_len: size_t, + path: string, retptr0: ^filestat_t, ) -> errno_t --- @(link_name="path_open") wasi_path_open :: proc( fd: fd_t, dirflags: lookupflags_t, - path: [^]u8, - path_len: size_t, + path: string, oflags: oflags_t, fs_rights_base: rights_t, fs_rights_inheriting: rights_t, @@ -1800,10 +1782,8 @@ foreign wasi { @(link_name="path_readlink") wasi_path_readlink :: proc( fd: fd_t, - path: [^]u8, - path_len: size_t, - buf: [^]u8, - buf_len: size_t, + path: string, + buf: []u8, retptr0: ^size_t, ) -> errno_t --- @(link_name="poll_oneoff") @@ -1816,8 +1796,7 @@ foreign wasi { @(link_name="sock_recv") wasi_sock_recv :: proc( fd: fd_t, - ri_data: [^]iovec_t, - ri_data_len: size_t, + ri_data: []iovec_t, ri_flags: riflags_t, retptr0: ^size_t, retptr1: ^roflags_t, @@ -1825,75 +1804,8 @@ foreign wasi { @(link_name="sock_send") wasi_sock_send :: proc( fd: fd_t, - si_data: [^]ciovec_t, - si_data_len: size_t, + si_data: []ciovec_t, si_flags: siflags_t, retptr0: ^size_t, ) -> errno_t --- - @(link_name="fd_prestat_dir_name") - wasm_fd_prestat_dir_name :: proc( - fd: fd_t, - path: [^]u8, - path_len: size_t, - ) -> errno_t --- - @(link_name="path_create_directory") - wasm_path_create_directory :: proc( - fd: fd_t, - path: [^]u8, - path_len: size_t, - ) -> errno_t --- - @(link_name="path_filestat_set_times") - wasm_path_filestat_set_times :: proc( - fd: fd_t, - flags: lookupflags_t, - path: [^]u8, - path_len: size_t, - atim: timestamp_t, - mtim: timestamp_t, - fst_flags: fstflags_t, - ) -> errno_t --- - @(link_name="path_remove_directory") - wasm_path_remove_directory :: proc( - fd: fd_t, - path: [^]u8, - path_len: size_t, - ) -> errno_t --- - @(link_name="path_link") - wasm_path_link :: proc( - old_fd: fd_t, - old_flags: lookupflags_t, - old_path: [^]u8, - old_path_len: size_t, - new_fd: fd_t, - new_path: [^]u8, - new_path_len: size_t, - ) -> errno_t --- - @(link_name="path_rename") - wasm_path_rename :: proc( - fd: fd_t, - old_path: [^]u8, - old_path_len: size_t, - new_fd: fd_t, - new_path: [^]u8, - new_path_len: size_t, - ) -> errno_t --- - @(link_name="path_symlink") - wasm_path_symlink :: proc( - old_path: [^]u8, - old_path_len: size_t, - fd: fd_t, - new_path: [^]u8, - new_path_len: size_t, - ) -> errno_t --- - @(link_name="path_unlink_file") - wasm_path_unlink_file :: proc( - fd: fd_t, - path: [^]u8, - path_len: size_t, - ) -> errno_t --- - @(link_name="random_get") - wasm_random_get :: proc( - buf: [^]u8, - buf_len: size_t, - ) -> errno_t --- } From c9c3611b1d4aa5e570addf7a8632dab503e2dbea Mon Sep 17 00:00:00 2001 From: Phil Date: Mon, 25 Jul 2022 15:46:47 -0700 Subject: [PATCH 010/137] remove leftover print statement --- src/llvm_backend_const.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/llvm_backend_const.cpp b/src/llvm_backend_const.cpp index 24b2bc3a2..201932ad9 100644 --- a/src/llvm_backend_const.cpp +++ b/src/llvm_backend_const.cpp @@ -1041,7 +1041,6 @@ lbValue lb_const_value(lbModule *m, Type *type, ExactValue value, bool allow_loc i64 v = big_int_to_i64(&tav.value.value_integer); i64 lower = type->BitSet.lower; u64 index = cast(u64)(v-lower); - gb_printf_err("index: %llu\n", index); BigInt bit = {}; big_int_from_u64(&bit, index); big_int_shl(&bit, &one, &bit); From 4aad835a6602ef95db3c4cc937c6637be0e7e34f Mon Sep 17 00:00:00 2001 From: pvance Date: Thu, 28 Jul 2022 04:19:28 -0400 Subject: [PATCH 011/137] replaced ODIN_OS string values with enums --- vendor/glfw/bindings/bindings.odin | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/vendor/glfw/bindings/bindings.odin b/vendor/glfw/bindings/bindings.odin index 52dc10a13..d1295dbf5 100644 --- a/vendor/glfw/bindings/bindings.odin +++ b/vendor/glfw/bindings/bindings.odin @@ -3,22 +3,25 @@ package glfw_bindings import "core:c" import vk "vendor:vulkan" -when ODIN_OS == "linux" { foreign import glfw "system:glfw" } // TODO: Add the billion-or-so static libs to link to in linux -when ODIN_OS == "darwin" { - foreign import glfw { - "../lib/darwin/libglfw3.a", - "system:Cocoa.framework", - "system:IOKit.framework", - "system:OpenGL.framework", - } -} -when ODIN_OS == "windows" { +when ODIN_OS == .Windows { foreign import glfw { "../lib/glfw3_mt.lib", "system:user32.lib", "system:gdi32.lib", "system:shell32.lib", } +} else when ODIN_OS == .Linux { + // TODO: Add the billion-or-so static libs to link to in linux + foreign import glfw "system:glfw" +} else when ODIN_OS == .Darwin { + foreign import glfw { + "../lib/darwin/libglfw3.a", + "system:Cocoa.framework", + "system:IOKit.framework", + "system:OpenGL.framework", + } +} else { + foreign import glfw "system:glfw" } #assert(size_of(c.int) == size_of(b32)) From f213622982d6662fe75a9ec0a19bee99527eff15 Mon Sep 17 00:00:00 2001 From: pvance Date: Thu, 28 Jul 2022 04:20:37 -0400 Subject: [PATCH 012/137] replace ODIN_OS string with enums --- vendor/stb/image/stb_image.odin | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vendor/stb/image/stb_image.odin b/vendor/stb/image/stb_image.odin index 12f7aea9f..27f4e7201 100644 --- a/vendor/stb/image/stb_image.odin +++ b/vendor/stb/image/stb_image.odin @@ -4,9 +4,9 @@ import c "core:c/libc" #assert(size_of(c.int) == size_of(b32)) -when ODIN_OS == "windows" { foreign import stbi "../lib/stb_image.lib" } -when ODIN_OS == "linux" { foreign import stbi "../lib/stb_image.a" } -when ODIN_OS == "darwin" { foreign import stbi "../lib/darwin/stb_image.a" } +when ODIN_OS == .Windows { foreign import stbi "../lib/stb_image.lib" } +when ODIN_OS == .Linux { foreign import stbi "../lib/stb_image.a" } +when ODIN_OS == .Darwin { foreign import stbi "../lib/stb_image.a" } #assert(size_of(b32) == size_of(c.int)) From 3f27cb230937607b29baddff3c7c3ebaa0b6aed0 Mon Sep 17 00:00:00 2001 From: pvance Date: Thu, 28 Jul 2022 04:22:00 -0400 Subject: [PATCH 013/137] replace ODIN_OS string with enums --- vendor/stb/image/stb_image_write.odin | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vendor/stb/image/stb_image_write.odin b/vendor/stb/image/stb_image_write.odin index 2a2ec240c..b9433e821 100644 --- a/vendor/stb/image/stb_image_write.odin +++ b/vendor/stb/image/stb_image_write.odin @@ -2,9 +2,9 @@ package stb_image import c "core:c/libc" -when ODIN_OS == "windows" { foreign import stbiw "../lib/stb_image_write.lib" } -when ODIN_OS == "linux" { foreign import stbiw "../lib/stb_image_write.a" } -when ODIN_OS == "darwin" { foreign import stbiw "../lib/darwin/stb_image_write.a" } +when ODIN_OS == .Windows { foreign import stbiw "../lib/stb_image_write.lib" } +when ODIN_OS == .Linux { foreign import stbiw "../lib/stb_image_write.a" } +when ODIN_OS == .Darwin { foreign import stbiw "../lib/stb_image_write.a" } write_func :: proc "c" (ctx: rawptr, data: rawptr, size: c.int) From 727a25f41f715b4c432504d6c53116916656e1f4 Mon Sep 17 00:00:00 2001 From: pvance Date: Thu, 28 Jul 2022 04:23:24 -0400 Subject: [PATCH 014/137] Replace ODIN_OS strings with enum values --- vendor/stb/image/stb_image_resize.odin | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vendor/stb/image/stb_image_resize.odin b/vendor/stb/image/stb_image_resize.odin index c75a95fc9..4268aeb34 100644 --- a/vendor/stb/image/stb_image_resize.odin +++ b/vendor/stb/image/stb_image_resize.odin @@ -2,9 +2,9 @@ package stb_image import c "core:c/libc" -when ODIN_OS == "windows" { foreign import lib "../lib/stb_image_resize.lib" } -when ODIN_OS == "linux" { foreign import lib "../lib/stb_image_resize.a" } -when ODIN_OS == "darwin" { foreign import lib "../lib/darwin/stb_image_resize.a" } +when ODIN_OS == .Windows { foreign import stbiw "../lib/stb_image_write.lib" } +when ODIN_OS == .Linux { foreign import stbiw "../lib/stb_image_write.a" } +when ODIN_OS == .Darwin { foreign import stbiw "../lib/stb_image_write.a" } ////////////////////////////////////////////////////////////////////////////// // From 21f2c06f4be9ac8aa0738e9dc71d1024cb148e07 Mon Sep 17 00:00:00 2001 From: pvance Date: Thu, 28 Jul 2022 04:25:18 -0400 Subject: [PATCH 015/137] Update stb_image_resize.odin --- vendor/stb/image/stb_image_resize.odin | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vendor/stb/image/stb_image_resize.odin b/vendor/stb/image/stb_image_resize.odin index 4268aeb34..be1f8dbd6 100644 --- a/vendor/stb/image/stb_image_resize.odin +++ b/vendor/stb/image/stb_image_resize.odin @@ -2,9 +2,9 @@ package stb_image import c "core:c/libc" -when ODIN_OS == .Windows { foreign import stbiw "../lib/stb_image_write.lib" } -when ODIN_OS == .Linux { foreign import stbiw "../lib/stb_image_write.a" } -when ODIN_OS == .Darwin { foreign import stbiw "../lib/stb_image_write.a" } +when ODIN_OS == .Windows { foreign import lib "../lib/stb_image_write.lib" } +when ODIN_OS == .Linux { foreign import lib "../lib/stb_image_write.a" } +when ODIN_OS == .Darwin { foreign import lib "../lib/stb_image_write.a" } ////////////////////////////////////////////////////////////////////////////// // From d26cfd2141a565dd14629c3b8c4c511f60499498 Mon Sep 17 00:00:00 2001 From: pvance Date: Thu, 28 Jul 2022 04:26:22 -0400 Subject: [PATCH 016/137] Update bindings.odin --- vendor/glfw/bindings/bindings.odin | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vendor/glfw/bindings/bindings.odin b/vendor/glfw/bindings/bindings.odin index d1295dbf5..aea09e31d 100644 --- a/vendor/glfw/bindings/bindings.odin +++ b/vendor/glfw/bindings/bindings.odin @@ -15,11 +15,11 @@ when ODIN_OS == .Windows { foreign import glfw "system:glfw" } else when ODIN_OS == .Darwin { foreign import glfw { - "../lib/darwin/libglfw3.a", - "system:Cocoa.framework", - "system:IOKit.framework", - "system:OpenGL.framework", - } + "../lib/darwin/libglfw3.a", + "system:Cocoa.framework", + "system:IOKit.framework", + "system:OpenGL.framework", + } } else { foreign import glfw "system:glfw" } From 9746e25784c208cf8a7883bcb2e1ac2317117aeb Mon Sep 17 00:00:00 2001 From: pvance Date: Thu, 28 Jul 2022 04:27:42 -0400 Subject: [PATCH 017/137] Update stb_image_resize.odin --- vendor/stb/image/stb_image_resize.odin | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vendor/stb/image/stb_image_resize.odin b/vendor/stb/image/stb_image_resize.odin index be1f8dbd6..5763e142a 100644 --- a/vendor/stb/image/stb_image_resize.odin +++ b/vendor/stb/image/stb_image_resize.odin @@ -2,9 +2,9 @@ package stb_image import c "core:c/libc" -when ODIN_OS == .Windows { foreign import lib "../lib/stb_image_write.lib" } -when ODIN_OS == .Linux { foreign import lib "../lib/stb_image_write.a" } -when ODIN_OS == .Darwin { foreign import lib "../lib/stb_image_write.a" } +when ODIN_OS == .Windows { foreign import lib "../lib/stb_image_resize.lib" } +when ODIN_OS == .Linux { foreign import lib "../lib/stb_image_resize.a" } +when ODIN_OS == .Darwin { foreign import lib "../lib/stb_image_resize.a" } ////////////////////////////////////////////////////////////////////////////// // From d913155972cb4ca4b080e176cd2e51614caca9c7 Mon Sep 17 00:00:00 2001 From: William Roe Date: Thu, 28 Jul 2022 13:56:14 +0100 Subject: [PATCH 018/137] Fix bug unmarshalling JSON with assertions disabled When asserts are disabled, code within the assert isn't run. Having expect_token within an assert means that the state of the Parser is mutated when asserts are run, but not when they aren't. There's already a wrapper procedure for this pattern, which I have reused here. --- core/encoding/json/unmarshal.odin | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/encoding/json/unmarshal.odin b/core/encoding/json/unmarshal.odin index 2ff268a21..97d2421d4 100644 --- a/core/encoding/json/unmarshal.odin +++ b/core/encoding/json/unmarshal.odin @@ -325,7 +325,7 @@ unmarshal_object :: proc(p: ^Parser, v: any, end_token: Token_Kind) -> (err: Unm UNSUPPORTED_TYPE := Unsupported_Type_Error{v.id, p.curr_token} if end_token == .Close_Brace { - assert(expect_token(p, .Open_Brace) == nil) + unmarshal_expect_token(p, .Open_Brace) } v := v @@ -473,7 +473,7 @@ unmarshal_object :: proc(p: ^Parser, v: any, end_token: Token_Kind) -> (err: Unm } if end_token == .Close_Brace { - assert(expect_token(p, .Close_Brace) == nil) + unmarshal_expect_token(p, .Close_Brace) } return } From b1ae5bc9fef7f8729765f90d32bd6e18e99dea71 Mon Sep 17 00:00:00 2001 From: Jorri Fransen Date: Thu, 28 Jul 2022 15:28:26 +0200 Subject: [PATCH 019/137] Changed param count from 2 to 1 for simd_abs. --- src/checker_builtin_procs.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/checker_builtin_procs.hpp b/src/checker_builtin_procs.hpp index 05f256775..3ea6fcdd5 100644 --- a/src/checker_builtin_procs.hpp +++ b/src/checker_builtin_procs.hpp @@ -434,7 +434,7 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_COUNT] = { {STR_LIT("simd_neg"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics}, - {STR_LIT("simd_abs"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics}, + {STR_LIT("simd_abs"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics}, {STR_LIT("simd_min"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics}, {STR_LIT("simd_max"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics}, From a0697ab0571f136246632309f80ebd22a6c2d293 Mon Sep 17 00:00:00 2001 From: William Roe Date: Thu, 28 Jul 2022 15:29:30 +0100 Subject: [PATCH 020/137] Fix build on Apple Silicon when linking to GLFW This also updates the library to GLFW 3.3.8 This includes the lib-universal static library, rather than just the Intel one (lib-x86_64), so software building with GLFW on Apple Silicon will work again. --- vendor/glfw/constants.odin | 2 +- vendor/glfw/lib/darwin/libglfw3.a | Bin 281384 -> 595160 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/glfw/constants.odin b/vendor/glfw/constants.odin index 77cbd7309..245cfef52 100644 --- a/vendor/glfw/constants.odin +++ b/vendor/glfw/constants.odin @@ -4,7 +4,7 @@ package glfw /* Versions */ VERSION_MAJOR :: 3 VERSION_MINOR :: 3 -VERSION_REVISION :: 4 +VERSION_REVISION :: 8 /* Booleans */ TRUE :: true diff --git a/vendor/glfw/lib/darwin/libglfw3.a b/vendor/glfw/lib/darwin/libglfw3.a index 242197e413e1cb6f476b4c8b9b03f7d5b3c1d5f3..77506567f6a95c4b053331cf832d9caf9837ef27 100644 GIT binary patch literal 595160 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%0AnTznxe@OC)y_P9ym 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 delta 75832 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 Date: Thu, 28 Jul 2022 15:38:14 +0100 Subject: [PATCH 021/137] Update Windows GLFW libraries to 3.3.8 This matches the latest libraries committed for macOS/Darwin --- vendor/glfw/lib/glfw3.dll | Bin 226304 -> 216576 bytes vendor/glfw/lib/glfw3.lib | Bin 650328 -> 634898 bytes vendor/glfw/lib/glfw3_mt.lib | Bin 649750 -> 634316 bytes vendor/glfw/lib/glfw3dll.lib | Bin 30306 -> 30306 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/vendor/glfw/lib/glfw3.dll b/vendor/glfw/lib/glfw3.dll index 0359bb4f39246e5d496f0451e1a911986de9b766..733404cf4a8b7e78334d3e6a18acc6c681077e3c 100644 GIT binary patch literal 216576 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䞧n4FwwHms&J6i*z1MWHn`e4XD0z;2fchB9+98>D| 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 VRZmtw+45xU$pcTK?*9?|{vY>;ojw2n literal 226304 zcmeFadwi6|_4vP=WFbJp6O>g{l+{L!1~fHTgCT7ecJWzQGztg`N)$z`H;TIg5-?#C zWPMo0R;#wQrBy4fwOTLSyd?xk0KtG4K&+y+x-ni56}hPUeV>_UZ$Lkv*SEjl@4p`} zp3KadnKNf*&YU@O=CY$NU+lKE6a^8CJ~!H<&PmmTkYw3qOG?~MNVfN}#Lf2CaWB-ioc(YVQf9l4Ih6jA@9Tu1*T>;wu!Pc4V2;QR_NFLK}2e z=-OE!{PCl0lBMo;J(9UR4oB@-Gp@NRbQR^FMdiWiD8ucCoAIw2_Bl%@b8J7Kh*}6f z3fB})OaH5;mS;`Z2~{1btD`URmmij{`m7nZ&X_`!YLjN-rCV-3Qo3tzyoH3)Mh@Ca z)nWQ!>4p*e|No-}%$Td?u3Sg!tMlvB#wZmu(k>1Mp4hd8k zP1Eput=R?TTbmN|x(}&&!)y3D{MKbf{-&Mt@*}ghJHk1M)qd;ZzW%1I0(eIOyjGy3 zY5lz3KC61Sud-#X%Ujx>yTxl=R;IJ9DDq3qU7!%c0{v~kzmfot4TvWJ#Wvtm1&~7WODF832q|Iq zU`L4Bf2ZqJx%bv?W^7t}*NNey{FQApx`%stE8nnTJ`jm@0H$3SERaLaex{5lsIpR+0-05 zIWoi%>JeG7Pf&)BF5kMcr^D%p_b6~U%A3u|nvzzZ<<0ZP>JxwXE)m(6b6Y<%=AQE- zr(na%ka$lKb=wJktA*0qPf60Wu4k%g1k=1;3dxC)137c0HQFShBI|eQgpt`rG+Z8| zQnDEL9H3`O+m%ZDi*#DMdgrC$#%0ENi={J)rPZF&1WKXjq`IIao!I6kx;iNz#*Dkv zJI;G4d{S##t~V#;I?VDlX4F?a0a0=qI85tH2_hl}b(dhw*08*w z^+~khJNl|kSb`n^Ppt6r8*-5^q2ikOqi_g-007h49>1TUZ^*g7m*T9BaBq0gDcv@= zhr`iT?HjU8kc5w>8at)q6`x)uam8lS*3dCly%aTMf&2~Sm#2^Z0nm&tkg3jwMHf^M2o6~$Fr)E9CKyJH(fBr=l{o`Q z*AcY#0ScexZJ29U&-H-diMeaVG5j5!&yw00Q0xduqfWr}~ zI$@$z)#@-Bh1t!fokrteAdwdYm80`${MOx4nBVf}dn?&AonKFUkAX$cY1WLA~tHhk} zAWA*1Z9zZD?opioD%I^OlQOyEa zfdPxig{e458m4Trolh>21N*juG*IEB}RVZ%`T3RfbxJ#r7tRO%in#u@Eqg+> zNZep)b5b4~%Zi2>%L*K&Tf*JVM03;n@Mow4jZcC&(OLe^nsPtADIjUdVGgDd{rL88Ki6ym^ z`l`k+j2bHp3X0!?B2x9}SXEp{xR1?FDpTh?Fv&O@kQ5omP|ywpi4qw)&E+c1|1K?# zLRy$sM8t(n(Jtj?4X0NlRmTY_VU{sU1L-^nCq!1tAa{iOQ2GCb{x+D=#LPLieDttPVoGdi}oD2V*( z7Zd?D=297tsQho6u~2cXjN_hr;06X>NzmFDXlquZzYQe;oOCFRm!EL&Jw_E(Hu=hI zX#&5*T+zCW^?0~-QyEnb zMCa^664Ad1@X>+jt#LEUDX`kaLOVj<3YuDAx^ zx~8+q>*)M|_HQ^S%o{$%C@S2$EyrQG9NTjoMv-d=0UD&nI3rkG-TACaDQy`($#Q*9 z97*2QNz6Uu{Q!UGohp?qV-&v6fmyD7I`I~r*v2pege<$6sgt1yAjM&}7EQ>5~~F^A-tTC_Vd%Hj7TqH%s>^o)lHx zSeCQUcPtviCCHri^vj_3yMU%@m*Ze0BeY zLQc=5-ci!3=6h(EOGNorF+_R1E2c5A$G2eA7QXKaK%MI|{=!hMD@Yf0P3CX>dR)i0E5yQv9@7z}@d+UF-U6w8#%g zXkSQp0v`c@ueQ6jGt^;zW4IYM5{FO$C(p2 zwWB#pTH|-C9L(&ZJ|v;($p#+=FmFTL>2NthKgJ`r=FrI)5S*dDL_zncH*&PSrt`-K z5{an04I^!9)V)SK&x@0Z5ZW7Vg!X9R?KrK>hdrpK!)TIjB&FyRr1>}F)EM7vuliAJ zX!9P_U+Uaf>iBiFYKNCdC)N9uJb%%C9e-aB6@Py+zWlQxgO(7mzL{t0&Xzv5z888V zjn%*VkQ-`449qbm6M6jWIg)>4{KZm+z&bP1mS1^pEeY#3>xR;rTA?3M!u^0DBc!mM zWu+M%^kZPrLFFoDuEazK{hgTTpr`p8|7`_5x@>}AFZ_a0q13kMpuC`X#l``HpO&$n zw=j#k){!vbF4M)Vlw2s1|ALFI7nBQODg5KaU#I<7h`$;?%*+~tO##i$((Ro;pzkO9 zL|WLRO}3(#m47yR%9lawgV9qk2ENH;-JfdE%b#5)9OlCYvUCFTY-sS1lF*rJf2`f1ENN?7ei79MDA+Je{` zn6g^Bq*`Wg)4YDSV5R8&j4m08HD>PaHk47??ZShJ1hxq?I-+6~qL4Nz=uHDpsVlBk z!itFeK&;^9g!}74r$d8O@_q^T2SB_lJmm64=M@F4H%N@GaG~jo-sXwUD@(YigUdRx zCsp-Xo3IXF60}bIngyql+qQirFr_6J8({{o@Aw8xfmozooZQt)<)?j)sPBgcdlN0b z%8hj`L2FaM>J%2LF|BnnCaLw!(}f9OyXm5O-6Jn^|Tt;_xtCe`S2Mm2dqX<1+VETV)cztnf12_=~KR?WsUvOwTt~ zpd#TeERc~n3KcY0`{?-ny%ek@;r;?&`Bv`=#bCAq+_`&ydNd$^WW6hlSfm!Bv0=Ns z)|Y;(T`hhi`>wn#zu~|V+G@s+O{<{-p(PTjw>PruwaD!04!_}VNpv*r4IRx&pv;c# zE=sYQ&Slk0Pgh6mVS1+T-JN7Of?O=;Pt7-SuM986)uu6;#b0}Z_f!0Abk<( znS-K|4EJ7%7AjPJ;;S?91ufSOmeM|JD?2eVO`grj`UCPHSlVu`C~Pe&kpF>iI~g{8 zyw+B;Wq)@Q!QK-88B6&96eT5vcCqc}n^WkUK7AKU6ybh^eGBt)R7%x;me)h)`i+-6 ze6fPXl4SH0g3H>y_3u0V3k!1n)&_xktqm=mIl#PIIwi{6@=5N9g~5JKZ~X^O(;D7y z7=aw|m{T^4SU9#{E`Fv5x`+auQee>9(r{oBEiiLb`FeB8YE0+h6NXhRDiVecUFjV% za$4vl@4Chu3Fmg5=8f!kh6_j73BtKvYyF6YI(5_f6^Ji~&+xa8wtiDWD~?77IRPt4 zN#y<4yph|dI}ASo)T;CAyjp016 zv8=^Q zVRN{CyGSH6DUn*0MEVc%$c;SmS8k|VBf?l19)VPZ*?_-+Sl$T=rn)m@JsoK=<2N&q zgJ{N0w!S08#1@NWVuwP_55}^QiTeFYK;?*l8eZ1buYSLhP&t*uJzc%(X@A5Ofugym z2NKOD(?uY%ulKyQf!JLc^64yFK7nA!=-B*v$`}pT#M}oqqHrkVP4kx+Z$ZHFzcneP zC?X{UDdCtvqD6#YAhO>z@3DY|M3mH72zR6q-jadPW_y_*i$osuvkg<1`{*98wa?mP zTAksOlGdrgI;)z&(*}}NvNbP5qAWJ@%Y=Kf7-XzM*~j)-ulZyGc$3`;GfD@vGtGZ| z0kig*R2Aka5ba|#*~^=|V0$`8Ne|Hw()h6l*krX1hb$|@T=vNBWaCV3WhY7Pu(@vQ z?_)n8=3e%yt+d7KGLjua?LWi-WEEZlQ6j<8WL68At#>Fgu@-HNpDwi&`gCuIRnMk3 zE$Hm_OwxO_&$Yz0VIGB9<2vK-;hK5Q%RFv;Ehs-g>V*Z!Cl%>PC)|*k{|GguB7AO z5h3#GvJuA1_c?#FDpHMhvXQceDNlI}nM*K`ZFKzIhXXk14oT)2hQ8BLx{ou)kC z%p(0SS)~6hN%|8>(*OGZi1eH+(lxICOggDENKdBDAU!7#Y3>_{w7AU37o1QTiM9AE zqp0fgbva1&c}4ioJx%;=Ynj^;X6ffIcY}OezF%mM?_lm)w6eyEe-g!_Dd;s`Zmf8Z z0MPp?L=Q=^m~nHniroc}fz1M?oxz=VuQ72wI~C_!q) zMmUWUbuLHNkLYlx|%{^y#c$d1I*@-{-i(hX+lTPYDsVD zj7=slX|*;qbUInwgf5MAIzy)XIbZ$^M70i`;Ime%<2y1xw6b73A)V1{)$f*hOlAz|Qa=)3iB`ue2lGgnDPW%@1F^qm)}`f>;r4jpd|_gJIKVtp4zkA>WR8RS}HJcq%K zP=yaxC#$gVqja0;{%(>o(w%)>GC_%I(-DX33s+R7+O)sc7j7M^8nm|=8*WPJT2W9w zTlLT_IWa|sGhIrW0T1i%Ph^pu?(bLsou>Ui^mmKcMzt<;YN|co7?bSpGS%ND84Y-Z z#(KUb*;o@Z3WQAEUgH!|a-vP`cb=C_^B>!5P?{#Yy@qRodefO`^#8fNN>h|<`IlYw z)M2U=J!{X)>c7X+DW&UTg@0!}o7XqXoD>X*j<+HOSJenR=y z>NH2b`C+Q=a`w^FuwR)RkB&7obBvAU<8Apd?~cg6IWu>}d(0+pyA<2`d%Q=&f4|^Q zpCOqE_7#ZJgrYU(wd>bI;aD{bn}E`HE1+Bpfe~qPveDb^cdp>iYQMhe9AYadR!tYo zpC#>9G;E#EG3$S9v`sJ5XdNG<8X;9G{8$mGT6?b4CnXdgC!tu+BWo&JMaT8To2H9c zX*b62HA@SpvxJ@1eUE9J`DGXDx0cBJPIF7#?A0Qm-Fu7)d*l9OdX_8AvyPF7<~_!h zyP33Pu93lA(Ml%Cs`C*&;qWAOdz`B1OO2QA>58Z(-gZl>oAmhlX0X&Jm44g%sfw%g z%MVSzHaq>}>GUEaMjbA{e#Zc|WyHx^em#4U5)elttcI}Skr8R!FHOiAP6Am%?AM&T z(3~(dU6kq*P5-&s^coe^7bT=O5l<*jXDozhc9Mk|I_6&yl*M;&)1X^kTDfPn{&t^?g&NN%6;W(%AjO z;<%qKUpa@Buk6Luk*Z$_28@(y322mjsn>rc2f`=VLS3m;O248Bt0#7jp$v?$dvBkM zNw)Bt7uaPs&fYxp7TFuzrbD}DUPX$;?GuT4ZRR-s?wfg0e8WP;Sl2bo(QA4SOWyp<$(L?Fu`knq$~mn4bo-CX&VOE3er11--m9F$^NT&xwpkg11ydT` zkdnn}E~dpjlRMx4Cx(y%qG^Ul$ywu9^dWIMZFeb$Svuu%z>wJ?qcMyp7*j@(=Nq zuKJ4HaPB%9L@bq^&hQt}G1JlrTN@7K3bGj~WH%a(AAtd6HTAP+<%aXB7tWqlKYKR5 zb>7*I`q{TD-|hJ3DBm1>b;?(VZ?5vq#Wzp+=Ha_T`R;H;FTOFWLqSjj9~ zgKaqAQq2~xDi`KcCn1Mn-PR{_)9o?u9Xj4_hhK?q9vVo4MU^*QR_6n^i#%FQ!@smV zDfotyHJv2IX14r0JBz=Lm12^z)D;kYH(EGMoWuBo@qd=&O^^Sbl#?khKValW&_6;h z&MG;pQzdILrOSU_;Yi7c2f&dkzd z^wP{bl-)T#XPU@4W_~r3t69If>!>45-9?4n$yd%Ke%U&(w9Ghmk1?r5e76>wD?u&) z>d_a_1_o|t_Kcq`xJzwQZ`9RKjv*vzM2x)!!z@~+C6$&?so2guY9Kv^JZ|{33>zIA z@$CcQ2s!E1SnL53srnp%2+O$J@vQrM(8OwT@9JH??W#f9I@pHJ>j6PRv5{`L0 zhW5Da{FwI-LtVF(*R!{@-*sCl)a-p8y8wG}?(l9>=WYk|VG{In4eI=*Ad0y+CgCFm z&hgSJhuGR8(}`x9j&V57yFzwc;!j~i2x7~REh_d%UhDPvp8%P$`&4*c<6r?3CQJNp zc*QJv2CmOK@pr5i)s9Y;B|bKt18Rr4v3Lnt>|JIvc4s{ydzbl02TDUd)rQW-y477h z0S*C@pAIRdMz-e)zq8SzUYZ(QAonQ>vJSy;VI%@&#prsJm!=w=Ji|E22w5u zpP33m{#A-s!ltr_{G9@uVR zyFsKe6xkR&Hij}AL$!^e#>P-97%cDf=&w5)(?I{Bp(}uvYG^ai=QXq) z=&2go0d%c~ZU;I*Lw5mPuc2|EZVlZHbd!ee1KLYN9YD8eXg<*IpO#ki7Xf`!L;C^! zLPI@3cW7t{(Dya84CrSXS^;#YhE@apQbSFkZ)#`_P_g(?!~~#i8d?kVeGQ$)$X_qe znClrGIi1LV>&RI^A63w%dV$0mI&lKBb=QQF$H+SAQ^1jZ9`4P-N^-#7Q$O1?&}h1n zpc+x`8$e+6Q3IM0QpD!u$)=pNHTv8moRo0C-9^r-di+M@bcF?`svlZ3(2VsjGMZ$M zL*$(3I60X^b&T283U4RW{w>GF>W3b$E)KOO+#`e*sRcSjHxBrpAL7`@xBHL|WbBt-P(I{O=`QGIT?=t7m(r~{29BwAHboClKC|uw_hioHr zl0*)@DxCMUv#Z-*f1)0g#1IZwjgD3X+M5sF*@xY*O66 z03z2Tq*oH|gDE0yknX6aiAcDN^ZLfJd+I4F=6z+TYi5u77SBQz2HbE6Si*qk9|D#z z;K(6h2?K6C1T0~|O^1Lb40ypIU=3Yo0n0JROiCmS_?|<+5(X^8Ff+A;0dsjF3oK#4Tt3MHOBnF44gpIT zFqfFJQcD={{fB@h3|N%AOiGlpx9lF-8_xtwnA8s*0+uk~hYkTt7_bbWOe7KpEPI=o zU%WVB%8-uE0jm*T}Ns~Db&HhF^I<-nomx#ZNwervNb z3n$#K{oCPCUTZUFxD)PIGQ$^ei0tnG)FLN36N|f?+=^a+=u4g6Vm&SE*+UMAa9P6Y zTr~mmP}|iCH{rfUVcH#?P!yfjmz$R%48NP=^R|kT(#<{!Sf&qvW*+ZAKOT4Kc>BU^ z$qOQ;*#+@gUs+#KhQIu?_{5%Sg=gsXja=cHEO)qqQ^u8y=BClzB7=R_MR`_tpEWr@ zX!$)>JQ%&ExYlP~$3>62Vvov7C+MW_ppga^0=HMq6>OwZmuaw!ZWs{$~Xu&HVzAPuTIQ zrS?Jgw>&`$`UBQlSw5y}tUJ836d7#yy*M0{H5%(_19k6+wM6{q0qN6GCVKFP%2$(c zzomT>67E;=u~str3^(~EkZ@YUyD%)c;}w{{;*6h9M%%H%w>z@rtNPMFYgJt7F&%_+=3 zLpOAa!qo764n-PG@8jo`%?y>CyVD%7;jqmdZU5k`O?CJ>Ij>0-H_Dnu#CY6)6*z&h zcHuZi8P6r4hL)6XwHj5t7!iD|cFwwqlVO|@BMp~`mHrEkvBkdleOC)xYKSF(M}8qx zr~^Be<^JZBTn9(od^E%dcv*BN&*u!O2o=bI?B@K+J#}Apos!sKPFWY6A_s7z?w3g$ zXxW8YP{6jw#rg389fFlg(H`qrRLfwN<1C@>a`Ni6M2Bt!b@bL~YLJ#_N`&f&iVwR$ zvR(wAte}PP!6$#$KKSHOe2PylfKM)fPcDK_?$Ocki8LxO_+(BhA$)QHjd&4!GF3$z z3HKGs^BNpdJDKA}7fMk4DXRvi&wi-@{2a8lM)rHWFZ6@d6_<`1H;%)GJG|d^S*u&( z19CgO(LUa2kvDo&EbkIu>2}7lvyP+J9LheJ!(qpSKBSpBK16=;VnI>RdfS)lW$DDw z>%oym0{O;M-aMamNs%x2k^;Vb>nLl3*LZ4Fp1*Q+sK8&k+G{mSi{`ghw(tZ+i}w2} zH-rip>LAeoYj|I8>2QwiOUjJ0#hW}2mV08Zv{=Rgwhz|ZMjJL^l_|rFU54o`Ks%ql zOVY|I-xIa3DB(UDpBOo;*Nr|XZLcvXi{f|t(R0@~HJgTyo2x8`la{~~8Hi1eSmoHq zvAl8|Yj%I^YAO5EM9ApeJ0dAmZ2KokGVG`4B}tXN0;fo&{|WzbS@;jOBhn$kMIUG? zx>?@75Ta2WfxaClWYYHn`8!X8S9QbM_AioT(DwjoQuZ&-?`9B)8B|Ko^+k_T2h#k} zA~|!O>yP$fkC4lBa!Sn?E%FUjRL)Bnx!S@dt?O#_?$NY##$hzso|Ydb#E%FLa#Z$F=%|ABOV;Uv`a%dm64 z9zRwzB15-1T#(mNppqB3Fw4>~oht!aDNK ziwVeTPzmLyISHdLLK}^z5@DJB^!|7BZ^iWvN%&&1=upge??`?2m49Z9=m*iWWcQ;+ z4$*w}ryR#u#+5(FA)1RR!6*0Ts=xBF$?;QyQx{vCMCy%S{}nreEip48F2`W5RL5Xi zH#o?B8C!&#zw)vj7@x<$_{tdAJ~di!OJXgBRmNw$T=hkME;cd zNa=&OD&!QkJj(HB$kOWFt7|!7bAF`ib=lrYzvJ<|fPWO3Q_E8k$tyhfdR31U+H1s( zagQmr<|T}ecZx?hhFFu-$^^q@vdPC|-*X?Yn&R@eRJpRr(h64s*m3nv1|-H>=6+^gtaDI@8=ZHJG7Zv=jd?Ve-1m)q{` zw)-dB-DA7QGrlC>`L_FW+r7(npRwJZLNn?9WV`1`T^8R0W!Ldd<{Qs<5#I%TKjS-( z?`*!)`M$lJ@z2*CzrlAb-vB@P^^#J0z62e^XzC#nDdrwXvXyfEIDY(U(b`b}HAgBe?mv~A&}G(}`P6)cf&}5!qWV_{taq(JgOZB3wR`Gf2pj@-6zKSzwURQN zAFb+6iY_kCy3ewsYE_is`yx8%3sH|7TBQPJ>9^rmY;9K|hpzA5k}4HGMyhDlJ^YPd zeyL3tHvtd_^hdJq#ib6v5RB*myjOARldm6ozFhRhL)Ndte{gJB5qhXr>+a+od zoZh(U+sqLg8ZgmyHG8+LAbv%FcIYxARoyAj5ysH#UI344uKCw1q(^Kdy3VoRW>D{Z z{Z107b$+WPkip;8hr9l=|02(fY>Ic)NJof_JmfBhu4P(YN2=~QigFd9`_nV~4d8`` z(lfgz_g~Ddko#{{3RB39Cu<%oqQR=gZ@r#y-?BAXcFIJc%1hrTi&Pyih04-Triw4q z7f8N(IbAMXW8V?egly1kDSkUB~1TwsE1jNqpt%yui<#;Ubp2$RW*-J0(La?{P&AcAxjYOm6CUWDRvL<0d~; z#k1(O8g^%eqZemwag)9|E8c2o&kR?Kx#&{aui7WtV8f^CeuU+^(V%O}s5_eA#cdv2xL|hcXUkEC;2y0h$qs=%BGhG2( zf5b7)Xp%d?q`E3V&Bcb@q)D9`kQVa83Bd?`Qi|0Ni z!@_7>^Ft!BYO%0n^xR&1&AR9J;iNiuUNlSD8&y_#uddUSX`&aCM00?S_?9bRPl z8>7SfTK>hntI{?+W~xr-bjj?He2SD+$xoka2ww}k{Sa|$d~S6s*2coNJXEtNz1=mx-Yt5_P# z?YsXVreTfnr1whfl%&}hKZ9{37F(aSnJM6e-?Qql+O&{=ccn05*GsA4o;?3mKm&)1 z>?M;DAJ39h*8j1>;|hg;Tvr$IltXj*R=n5Y^{$`|L|yqgfvLtVu00g=m2rpbOv3T5 zm*nKcEw0Z1mNyIdLyBl~b@EpP5189r@noQnYp#mjnFcJv3-bGMDDY+#J(jXkJ)(+pZ4XZ_PlYIE2FKu>av73-bR z_&E6?T5eq_fq|n&TOTC^2}zgWi15Ur4aD(ir%Z51^+n=Xp^K$ze5@=zDz}Hbm#>dM zxQs&RxOy0e>2C;x({bmBQ@Js8f^0J)3>%?9;#uVD`*f{xpDve-_I*0uY&!J{Za7lS zlzCLn|MjHwwEbo0a&*9Dl%#opsrgWQ&3ZDV(?22U{~S!F*YnR~3TH~b-ANj)jdFm? z>0u$QHfD^*2o%TWClcRtq_~%HCl8-E%m;%p*D(*VfUz3ui>ApjjOGM0F*DZgT17nP zHLtQgKTUd0O?ti~ja-qIu2h*ysfyg8768wZ+HPOlmCXg<>P<`Kjm`hzJ)x$Dai=t> zqGsWPnwsh)HI{k_)6VJ;(W0^BrM>xSue{x7Cy-|gZEsQ9+b`{vOfNd3=Atc?DDp8nrEDw*T|!oDR}v(tE{fJfW6I#b9XLi5u&IsBEL zFV7>b-2$fNtyZmM6Rgvps?w*dN8L$}g~fHpy=eL=&hR2OUp+$oI=g4mwedOXw?LAr ze;WT4q}R0Xo* zOVjvjkBINM?DPkp1>dC^`1W_p9{&=5+eOLxV*ksIf8o&hmD%yX&5qaYb-zlJk_R(M zlWH%me@5?BYN&LM-ILmhR9%*hzmmN2sxvPO?Bikrn-(tYKX)9C9lf~L7xi8f?irb#&jw8U#p!lO{<*U2|BTQEN=~CU9O%aA4(CO^MRM{~{KpLO z=7(<5SiSk-DON{k57br;fZDMIp^NO;g0P?1E(&Wn(A|#h8~U*w+c$hVvHw)D1$HU@ zxc!v6w=rL;FdAyI8br6JU(uXu&(jsnnzJo6?{MByrk_ks%;aBJcK(n5k=Y+IMUh`Q zhxLce|9RQ`pOt@?6db)*Ifv!P{-yG!#={Nd?L3BN$fWPuZ2T8w;aB>5^j_s0hF{Zn zYIgqaS@~rqhCbySmOoO}nM>XL))v3DJuRKqqMOO~S&3|smcbqKM)2~*JTIV%$i5%g z%~iIJ&+oUF%boX;K`g4W%UdS4)e<=Z>+-Mu}1X-bRcH!fTm{J$~cpN%~GNqml8DANfZ%La{JM(PRy#JJq zuM0g|v82(s7zA0&1}(Zh-^|JC@8#r4kKbn9p2|6_J$3&3v-8i)%CFXs(R-D1SbplS z@}~HulDyH2`zPs)R1L|FKS9MyYY*)Ff(jkdo|+z4Ha#EzJ+nUTx<1M|0zK=Unm^KA zvXtyuB59V0q}hjvq~m|Zc%DmAVI%c0{n;YH&g5y4S-rXR)6-YEwa&$3>2r_8`UPL~ zA%h=zAm*1&9~rgexVVP8jrBz@o)Gm;3L7HQLOq1RI_t4CCEF!gZSH>vy=h_(KFN6d zh?F`7@=peOI({ed*rPo*qLlut#KGbEucVgQEZi^tK1d^T`Z+>{qH~Ip*?Ds{9Gj`bs6+rFY!i6N17y)BwX~^dix3RJm;fV&pe91?k!PHUFRDmt2-YjyV^0J z)hwX8$@-9u@{Y?c@8I9K<*?t0`eoenGP;w|_z(W_Vnu&uhyvT&xN~Guoo6UqVs$Ct1K<8h9-OkGRvsf%YIrwrD`W;wg%=x#NJEOj;Enx>6E~_PS*UohCnem^y&%RM^~&|^R4Ly|TgbJC z&yg_LQ&@yk1_c~iF!L)GE%o%7dJ+=zV2g-y4hcvJcCE}r!abI9bcN*2?ROU^E3}BB zq(ULgoLD$hb*Z+G+)aW4T@4{$%=UsfSq-VdfmNyo9Cvo#nL>MRvIYamFQiu=QiznN zD^;z_wV6!Xk*Av)KCLN`jIL`Au;dauXk&4;g1l|*m+KshimSyawL;7?@qa!+CDa{{ zYW;R_d?S#AdnTmGdHyn}A%V|W-t1i|Ha;^3I$YvPl+7=36hNt2!hMdNsX{Wzld#n( z6v0EX>4wQ{?1cNnm2B5wZLJPcy_ma$@s4SF?VsTT3!_oDgbwts;K4kpfJZFtLSk`GspZc2Yk#F-p3aSp$zfB? zJqLPJ2)hpZcQ+=3c`A5?P-`{E#_$HNI_CV{F|vPV+}A3d1HFP9df()vsL)C9ko_mI zwyXYw zPM8H+yK?D+TuFY6xsF4Gr6dZ!mo!dU>oFUPwO({R%k}cNcCDLs(FbfNF#Vs&x|wm} z@CYY92~&C1eheE8K%ENu0MPiEbQ>++crj{=*r1t@ai1$L!3{-d=K(htWIrBaw-{H5xyn-ou+(`^7ne>gLucy%J(<^ z-lBY>r~F*`p5yOL%13uQZs7A;KkYJ<2$l`rayXk`ND|?W{l1xaG2Yh-zZDU%-jahQ z-AIHI9sbe(lI~r~;0@inAIpznRRm*A3ZKYzui7pEYl#c2wp^6+x=51k&(rm-fyf#c zH!yh8t}UnGplm`JcmEphDc?%2S{b~0D9aGO23|ns1dFE=xN+P0^r4f+XCNqXEWG~& zNF_`@IFAwi8yi5cYCsggD)>Vos%0c_4wYSA`8f&U9XYVAc*)YdB?oJSGvr{6@SKbY z;X!64gI|kaSBmMQiEWUs^Wa@?tR^=$GB=*5w>S$GPs865&ygrn#71_Df28*u*;OA* zMEv7Xf-W>e=-)}lNh?lZh~c1fOR6=c6`H0ZK> zYsj`Vd3;L1cvI3^^rK1kdyw)&cl?l* zmtP_JTXBu(WeuM`O~)X<6JI99_YyivJ1}TZ!L^)cb&YVlXR@V~7^>lg%)dk! zE-fqHrtd^n4zOkAkcifFP{HVNIr{5KeCW)l_?hCBrVLIHIM4q8s+lu0!{s`7sRgAG} z$GqlUA;LDkkQmts9Eo69F^{q2%|g7(i4cz5kzEO4ImRGXe(vRDFNy})EyE`+r-=?&2f$VA+9 zaR9FZ+~#_f3_~1c_+%aJb&SE6M~Y#N3-Rp*Hr#P3z7Bjo#|V6X#picig0C6h1r8J6 z5_|#2Mfje^H_|c6P8W1k;#&c1v|}K?I(#*biTG;qUF;Z-Pu6#19hc#2#CN%40=^me zPIuJeyHR4DlklB}Z;+$PhMna&8($f)D;!Q|o9khGe{u}OmxC|YnS-yMmdtay@Lh?o zzq7!GO>|DOVfoHp_AQ@omO8 z!g(RS75FZ2n)sf<7jTYtt{5e~7^)=`^uR5u;IT02s)O4{Jl$J1M-dC;h#S^N?eM}M3QM_m8dx!Z;{qV!P zUFSf-KLxo^@Tw%W3O7ko*6q4=+6X1w|Ik=gtEj@)iAuQdSIMQ-qpnVkJ|uUf*Cz4R zW#L!?4fs8WfFx*k?hg)b46a2p!7SYR}%ROmU$ zBNaOMS5={qM)kZ#b+baXOQNE#>ouxp6sk2Ec7=^fdgm`mR8Q-;0C6iAP2jhg`}BJV z2y@H*n|GM!(NBnV9s3DHh%tc~k>hYPS)pOSol4$7bYgz_&Or1AEK`G4e9jn+-pT>T zb2rW6yr>*`&0vV#{u;qWjShEYa=U2mT-j7Ln<6$*N_SMp+erV zb}f}+E8FJ1C#RF|-bhH+AefxQwv$8Ytoxc|A>%Wa`HFu`-P{pjDo(h@hxdUtfhO7` z`?}A()O^rdw4j5En7NzfJageM;j^w0cpef@6`rNy8H{JScz8dfaGiKg!Lvy`$L;kM zpOZuAH9`Tyw^^Cr_7L#$`&mi>QJShcQtOX-zl-1fJLXDy@MxABd5-9Vi={#wt-bV* z)VDQqFwdBOkXc%m6!j`9`HOYW6)#cYzZJ`BPnHxqYvFe&NTLk#9KVwlz@Q#VTNX`& zbo{XE#d(Pu51SuiJ1m=@lrszNmpPkdk%+E942%tHq)%HHe}5-*^L6m;;QN5Di_akX zYg`$4oYYcAvW8DJ5iTQc^Fd>AJy>{{V(q8W?&tn`Z;m7Kg6d485nTq#dkM7|`<#iz z?HZu^a8->8I1@EyRe_^>eW-iYNjPDYZBEn!uCP7-DHnAd*X8C?lsdn~xX8-V@|Df}@IS+sgUCR{;x zUN{#8OH6VJcQ0b?e(VQ_=}GA2UqMf#>Ibwf2Hso-o>)AD8j-6uv&06C50gw@M-arZ zD#tgnG<;6|Mk}N5xGo94SX@smc8pWzq4%WDFO{zkSnK|)@i+sb4jYe6B5Txme75lL z@z_*Ldz!hM)OgIH?rJ>t5RZ({?!8y|${vp^ zqm+;wk1>n;41BeG*YnNbo5S}9zD7RNLi|qPMe*tV%;+pn#-eQ6AK|@SP-&boz1=ut z)(Qmn)PLDL=%=_Hav40zxE29oG)@!lv7F`XtMgbcf4@kMP)pLVfVnd^9*g;5L$utq zREp#ZK(a}aJOCsso<OxkF=i!{TG5i_97KZ}VDj#w#9XdoHoI>--UbTz7h{ZQkZM zciJ|_d#jkXF3;3q#?50T>J45yCx(ZR-{Kb7w)i{0mAq@b^ef_5F6yq!_f#^65-&6{cC7%kB9 zg%r7O#~I~&>_(iAYrKNlteoE_DXO~nMrpi_TwiM}ewwn?4YmjCq$O_dfMn?1#uc?I zJL07fY`o%cunl1H`!mS|#&~y(EIM7TP8U&zGf-!w(+NKKjY8D43Rxs&XCwfTFNJ88 zq+=pJP5pvVX2L7od*;XzY?6EG4VMrF4+K9ba&V2|CF6G`-}druCK6!R-6yyVHVCoR^N$cCI^ z7-CtA;oHLTA8({RuQp7;^D7kevf9C8u!ZKU!?=#9=FYL01Dwk#$t4!a2yd6lSrEmOd)*7g} zrM_6TNA6=FPdy3uGmlDfR0fjlbJgy7WQhl0MG-Eh5H$&+P~~cpyAGN2Ilq6!)ZO#n z6camlCrTUk>;G}?{KF$4v**rRA2?+0oc|y)Ej4$}TZYzs(f6Ph%asxpOu$(eGnAD{ zpKp)~r$m$dn2?^hQ<9~IyrZ~Wev%NtVA%WXWZ}t^4tbO=3p`71a1YDl7)L12TiV=e zIZLzdfTPc<-`rftbsXg7G?n<2O|^%+Os?W8K$(C~EASeh@c0Iwj7mb2h6+ zRM=gS^Btj+Ol$sq!l#wP^Y|fCYrYuc2^1KOb&O53Vf9i4*fMX6znq^g8(Tc9e7z6D z_AEa-EEl*h|D*J((In;ydTUm!2H>DS2|ev9iOQocWt~k@Oh-oJR!~Y>ul1dX@Ky=( z6U2MHk-EM4Tt<^316Bbq9R-W)IIMwoQRe|>^zko6pf7FnFO}e`UJi!`*ouUEl13f6 z$yh$_Ib*s1>6QExXhHG=Na6uSP0pc|h=NAvG9 z+x*`ZN&5pt*zfC$1Aev=DZ0!i?few3j%YS%y%a9m2C}Tt@2rw3$Bg>xEkCalwu5Mi z<$nX85V<(ve*X`4O(?pabPFN$L{NBF4v>seriU`otK6T{KDsq0WtVAMqZhJY2&T>$ z-E2-7w^;7CvUwpf`lmz^?(>#NJ+6@@yT7`8t9ZEvJG=z$C=u>R@7ZG$XE!9lCKzlW zT=HnDXRLs69Rij_R6bygWK!ygbe{UiOdl;kkf6SMcK%SMU>F zbMc3V%b#KV8SUkdznTSaEqEpf9?;i-dK9RoD1J_l-FdzWc3{g`C~@?SOOWwaTH0s% zA2eg*xSg_uoYlTu|9w7d^uu8D#BaSvsw+PUYBahS1oHa8bhS+6Cc;8G$ZHgJ=Zb=o zF&3Q{_0E#}Ee-X=#oa6f)Z`<(QZh_r2{}Qzj~3VBs_Wj$<+`_WVPB2+u+_+H* zE|);h6|C?aouc;HNJeEM8KID^L8z}atbe4r z45%QFc1sNF-*x=bqR=tcFb_aF*+J8L>^M(icu~sMQz6_?Iaf$fc1HX6Gcs1Q!Vmx3 z?_(d|BnAvFxxo7N%X+C*t(@Ty!OiuL_59Fqn;Q3qDK|sx-^xzuBZ}WV0eKyHkL(;; zJCa+aJKk0IvW``!LXa-Z4lp7Xp!#oE1fDM|>TbW0O0=(*sAbXi8&V}#H5EW%F%}6Tbs=V*eEblw;<0IYVZ5)ZHJ|u#*fvw5N zp&#CBk&&bStSnN@d1G3o}yLU0PO0{E!$Nxf1fcLRW zBjQ0{PUD!+uM~h=NL5Zv#S7*3fu#?hD9%&I@9XQqmieG*bvc>H_`J z<2sgH*{vT$IL z;u+T^Z=^U-xJZvUhTBWBFYn`#Fl`5-Hl+qfY~r5Kseyq3n~Ne=iPLUs4b84o+ARv5zPuU zQ+?>^qN9{=4aC%og$Z{pVNq)ag5GPrNA32J0ON?5@#lYlpIUu~qa-?=h_XnZ08~7K z$g2Q2m~cKAq?6;{aFxhwy)$IMyg}-^Woo@|^4v2S%6I{-ns0Nwi;EVRPP!#pD+koQ zZyA+4>ZbdLJXQlH?kuU}HtKkh61J#vDXO1gFrt(WC(EXA|Hx-p1Xfba1^i}=95F6QHP5=?$bkKRFwcC07*Ni(Vw0H&@C^i_>pI3cDa;zGsI738Jk%)L4Y8&)SfD&(3~h zyNI!&ClPgb{lAm#fe61)@MM6e8`F~$Kbab>rwO>#{{LbLa@9ULIcc&po(uo)XIFgz zKM?z+p8n+(1vG$u*NX=5OWCH$)Bqk*05pK@%A;F0vm2)0n(hW$yuPa5N8sQN{oJAZ z`I614er^U5oO0?cBmz%kedBNXSLlp@^=fQfKJPuU7tLdflSEoTh2b;1t&-yHW2Z`KZ9AQ6i=a3O)z#(? z9|PbT;nKZrPNQ*?_*%YzqZSp1$m{)fTe1Xi-eF2ewJNoJ!bu#lukfIBPO+|RBf+Xc(b3n%TEib>L?=$t$0gjRla;e4s9x`G?QR+k6+F5<51?nCNJF4 z!zR2F$tKjEqWAv`J{OZ>AwvZ-N}ePB8_=4GwSme{>-d>3OhEg|CvsHyPvofZrRWff zS*=CI!u28(z0+|U*2u8%a_~tjCCVOI7Fju#ejwM5P^sC_A}y0z(`Y@2;>))t+;bU< zZ4s4N(y**ai&ixRmHs8#S2YMl|K~SkGiF~(i1$zzJ7f-H6=m&Gx^rK_(^qg6y`ZKx2*I)M_Z%XHg-5BVeEn19ai_Ko^e@W z;uFDcjW5a_UywUKKYE{Pk+=Ibz4gRjNk$vB(&}|YL!NpA#nk6BwaUN8myCig`oRpJ% z_erRKWZ(BH^m_^Q<|HvO&)^U8`}539ZFu#}^t;>i%p{tP^zjup3xy9CPm^%N8tH`0 z)f(?hjJuTQV;VkH?P|HsU7yuGLF-GNU*PAOSd<3X@W&kQi+8>%WyIBRWv!+Jq0G&y zTV&hyK>{y`(!`TQaspjuU9pN`slgY&g~dl8CTEqjI>0(khFy)VRiDBxpIQ?Z7ER$q znJk63CESg73KakLe&{N z29s#n_TZ9G={94zlbZ}Z)rgD*a;Cy|pK>WF7AYc`x-`UZ!>b!Z>U?;Khs+t5lbCw2 z8$glR$E2TRMKC!S8<7{ZUJqCuqf0xo^-E)U&Qx!-@u&_VB6f)?uuGLgnPnhAqRA0W ztU2kj)J+&|>g-Ed$ef4C4$pF#$6?)9yhK7g8H~c1yGZp6UXx@}*W3-5T;$qvP!!v0 zk%V8c2DKlUSu8Y@Qi>J^ue$-aVU4h__eyzSMm=Wt*gE(!ec$WOTh-aM2q$~ZSc7UQ z@r!`c>BHIS$7iKiMWxcSp5(q%!>3XQyI6o#%2#v;0h*$k7}D1AQRNb~OsD(~PIV0xR;7eL_X zaw&*3lfptXjr+M!`*86JqG_%rI9d)!{bk^?8o!JMFNL2VmRR0-bOl%_x4F*aui!_v zm$bIIN(jn7v(0rX-nh)$$+l7LX}S6UPcCom_Wee7Z$oaopnbH3E<|!B+(jR7$EjJP zN$-b6TF}B?BB`oOn_am0*8fo6x~V z2^R89g#>@Ps)?XhW=g8-g%BAFben_2U|a?0kbc*ssUE6G_0WjqQ^BYY$-dE=gy;{+ z^H=QGV&%ZrF!Nml?lYQ zT-p!rRjFzp7k};&mFL}bo~@&)+lDID4kyINUZvt+PRAcLSwa4$pUVnxC`6QRwJDWw z|68%Rg7BXBeBpOHZ~{G<3cRIaHpYK)yZ|@GuRK*;D6|J~@(sV#a8mXd+T%w1Qi8l- z=V1bmd|HEfh^B$@&!AZY%+J=2g!_3})M8Vn^77Q?=E;nSZj9%6=;lNscESFxYqi80 zEWM=rtK_raRQ@0Kt^_d3;`%2f3*m^1!YV52s=-DRbdya&0>);^F4;f=k$~a}IW~|Q z5=?d#6p^?ATt8QBYdu=E{_Ul`wAIR`+%PxMtUaagH{gI70xK{ z0CeKg2_M*BGavg$C%vZ7TMRb;0uUMEI^J^ZjGO^hRLGs&2JT#hgbvy2IMgi-&*W^91Rop#K^?>LT*BdZ9pr+mSd>> zQmaf}#!){hn6rht*2er#EkW;Maq~MckTr7YpJUpaH>Ns-{#MQx?LXv(6#iZ=A_)E9 z8GIXqMaQ{UBSw&gOTHzn{HfK9(t_{gUeLQcyeERI^aTGXs0ijD{^D8ufJNRk-;KKA z?LBB($WM+meHs&f!-;b;JPc%tw$7x6m^Y4aG|)}Y@cx||fb6u7v@I#(GHJB%-xr{T zsf14J8+BfezR%+)=z$JEHZNcRHUqcR9vpNys#jer-%tnKpdaSjR@&dbgK$|h*&oA) z#h8GkKEirvSa*k@C*A|93fq|7XrBy&_QFBlP_Ms`%AD!CM+lurYu-y)WT?Y^VMjroVT{fyv?I|3quJpvj}^E zzXFjUMTN&b#6V>-AjH`4xVsT0GRj|>Ul<*R$6XVfj`c^EO%|+`sN9jU9DtK*CQLn+ zqzOL=7DowK%oF-OS|pAFQP579NyG^hClhovgIdrg;249($<& zw@3n=`Dxg)cL{+7%A9x61WfAXv+)IJ1vb$uo$W9~Ga!}%bH^4$k~!;oSPD79z;?;RB z^Txau+|z_MH2_o0t*0)3tav$!Ci{*JT``usLvzQaJ;7JUgs!_BAixa83X?X7+C@mt?L@v!{C>i)KMHtWp*RrW%siYkM+1QH3&^`y)16scp8ZJM zUgTd61_1XXX`48v$lrl?@7Z{VTs-g2fJW)E9x6ikHxI3?4{*+~C7o)Wm4TkpH{M!I zxo^x^PA!2nSavZ&AqB>$>&PGY|3Re1STex^R?b9K5foJTM_7c!afZYQKCc@p(*GQn z4l{}V_#1iS3e-;yRLmVOQB}~MfX^s#r#uIwrnP-IWf1&^6}U8dmSh`fhLxyoVB6fT z?)A(Wgf0J|Eg&G`P~<)lxw}iiJ7)?P95H@L!WIwLj=hFoQYkGx_RVgB9#}#DkQk>lvpWAN?I#@836PKa0OD zfo~JqLc4?AO8f-c39BVS0eP`?eI7myw9NzBf~B-kLk!#+^T&nmqV&hHso=ZDv1TN2 zVa0Rce&6#>gsW`9qhUjVXfdpDoOE=aM$U(-Fmlr{azC$94CXGl*FpV-Pzs@l%8d49 zP{~YGjgpf@Njgt-uU_&tRq`45T{Cw;*h`{&UaG)9{Oe&%bHP6V4PRz2k+Wqdx!Ylj z8;HS6k+5I{d3^!~S+wdA5y*qtF7Xb90E7+KD#>Y1Euu+BG%0Ku$7o3h12LT!&tW*R zjdR!W0DokX@AwOB;Cz95 zIFT7nFnmU?mDuyEksl<`-r+_a_uiGKYXi9{}#k~m6S+ItRp#lpw# zNn6Y-@_`BD7kR9^XzCdAin}q7Lhpm*l1bEY78nR>h|wxrQg#G3h0ecwOxL%`~54A|Z zm9oAHwZTyQb^QISsB8rIb5U)uYA^PoQR}#H*d{7ae0qPOHGDU=N7n6SWW5bFtzSfg ziUB-5jlvlvu$+AjIDI{1;Rnc}RsPf634wuJfmXi7J?}=(Uq{bL29N9Ym__JyJ8A_c z@P|@%5Whqf>Nr6R({he@MM2EBlMn^_h$v1YzaGge9gmUPT#UT8$h>avNenfw37x=> z6i@?J@{megW+x0U81&BJn`HM^qbA2=q(^tz!;F5;qH9OvbV_Ha0Vcv;|?JgNum62Kq*?!!@$W|Ua|MNI>qtguWP`?jbZp0oE zRB0=Rzzt*WAw;QnK+6cmi)K07S6#A|*Iyfn8MPBI=XJdii!*dtm=%|Wna_ISimBM& zLR;i&Ad=UGMuDzE&w&Km##&WDTkSFn?N>cPK3M1mD=SF4jrfJPkrn4i;%eGUH5qaa zLLSnG!*`wb8zNnG_$=@fc0)jy+Z>At8 z8=Gh#q-gq|D!lk{ha+1Rl@PQR0b1R^h=!J<1P~+QbB4Rf4T?Ppb0JicO4aNPEigw_ z_X|mHBaH!8`v{ ziY}Q8*jf0#`2y1{DCPip-Xyke1R~m>e7^!W_k}IrqOC%3#a+LlvbuZ_w&WlIlR`)a z=3BRDTaYbAoOq^d_%K6@6mY}ie%?q4J-=Va>G)pz+siTA?5_|mU^38BEM!0IA0LUf zVNz7tpKPElih1<1m?lRda_60j++oYw1-eK?DbUxJQJ3&IhnQSbS1~XHZ;Nn$FS4Q_ z?^Zd3rQ{9}6$)n9;&74VaJ(#AMY7|#=*+-h%B)LY@1X-!ZbWce|{`Phji2> zwAvTJD==nu`?lq1tlI5TZ!F(rk|_7Vd{n0Gf+ln#H5X$E;ynX38b({+uPhEfO56?n zBRfexUJm&f6<~lN8YR=lz^y<#ke}1YR@?O5Z7ksjr(PPiRHIJXXCQe$IQ5dSWioYG zn^uDTl`#Y{m=t&L{{5$sSqKH& z<@2B)L+Gf7=pa=#5FubYQ32W}NFCi#J8P1XdjLu>N?JI&;eL@ zxV7me#F9WyibBvcO5N#E4#hiohd{GxRGuP2SDt>Bv{gB&ZFz#K&#L+ znCx6}anSWKg|mXLPboaZ|5=LHfv|;F2Jsmn^!QSz>vqUS^!Qe%>p{>997KE=zX(?27Xk6R z5FmfsfMp10dPs9@BdrQvKp8fHEnfu!9=4obN3F(*8a|_XHL^o{&6{Pbap+Ub_Jy!* z!N7_~tkR7-X2CE7x}kw4W7=Aj@T=vn58gRW%rqi*c9l%!ri%n`K8j_pkkGvZFeeR21-^+heoHe-h|_galdEW+&Vhc>L)I*~Y7THX zmiqw1!;$oWJJwD>Pf}G+Tr0vp*z{XQAtH1stC6=Vc6ehM3bb#d;aBe0z(qxA_dyRq zV#m-OXHh8gGM0#4C3I5pZ>a1`_91PF%k?7e_x=6NN}xiD6qGdiM{K zdIe|i44n)EGN*RUPTpv7YM$r2{tp?8sz-Q_DymLf8$~9zcbo7!Y$a$#Dl&}rnz)QM z1=lgW7w|U$p&aIQ?~c(17oC?GaJ{5WNyP#B_n4#zd|D3dLgmZdf!R9)u2({{0SLyW z%AMF*fw3x)H-Owa54mt(_(nloP6LXei7z>`u0cM}E6ywr?7*g{gI}+zYW3vI~|z&9xo@Q1O&{8qz3R|WC1JEt8=$Jw$p_k~GvW>tZ zv(7#UIdFC$Y^mLVW{S-jB*1geR1rTlHojcM=TbafO{PuB3;4+>*}UQinpcA%R08NA z7l1o}YsX@8%})4|$ObGi&tb0S8jkRjqA7V^D8qO^2>az>%M8X`IG%Aq1vq_}& zWq=f5aGFdGTdsSY)-LSN={gb&f7sH7=xzvMDuE+UGt~Q5*is4nFpqSBs&X&zvA3Lo zYyOGe;ebXV5@iDHrwNY+bBwFgzxeDV?@_do^Qj3W&QJCQlp|6NKD&M?V%@=q7bC#_ zFcrmaoJp&EDR2bsX5s0TfLU6mR31a}?B}Ia$6f586cd>yWn?1rJf``}`u-Bk)|c*) zvy})9`FMcZHEg*Yodkp~BKl-?YixKCwp>KtpVaAdlF}5~96&jZqEyEb3H_om20G)> z95V|Qp>pKN#(Vc5P;FGs=RK!!lP|_h@oy`^dPI6#koT9}f%FCI(LADmVauOU3~hq? zTf!N_F3x$Qr9cf#Bm6>ipFH1a@b|CZOXK6k_9ah81{DvguGFUKoC(#XIc&KdHDCoH9rZIs zYKp#pAF3m%Ux`M{rHTIf*K+mfw)Y&al}Hb1%K1B35F#3I@rC@z7rw85;TC)W9CfED zi+9{1(L&J&AY`W>fe0EmoCnG_4aE!Oxe~*!6&mkUn^p5J#Vm%+Cow6IfAFRN7`Nxa zIt(jv=%Bm|FJjMw(^Bz@Hc`L9Fz>r0mSN`pF9I%3yGzGKuxKv>0414#IIkSka^^nR zN)t_G`^;IoGHyOTf(BPni`|Z_XR&Zrkj}sfO`OCS)F)JtguFs&C&;Xy_TEr#0nMKc zC3x}EweO0Bruh&J5{8xz3KG~489H_E$(AuLA-*D;^ zX6Gk3H-jWRuSEdo82%lpkU`AO55txvh*^6PVo_7rav9a|`P$KV_wP(=7{1$F4(3lWpR`gWwC)g4g>j)SdUF@pD$7g82}vur`j3UKq6qrG~x_UvrqsM{Ab5R;!IoN3a}{&KzI|$uc;j zwqmJd3|OZ5a0gEvl5P2W_?GE-G|{cw>by+c#Uv%n0$;4K`vh#G=mla{8Dl_>d=w+d z-gTTvyd@Cfcjq7;1Sx_D5+Mja?MuWCpdHA`JAh^)C&*4R;V4w2PlijmPTByZq>lgy zo(uHSjTeF+>8H?Ru+mtl$=CK((16o6>kEJ$H4WU|hmiOXb^T^SgQXdBpd5b`k78wK zJ2Mv-@=c{lK95Q*fc-6(T08_L<|W|(kyLIFaP-L}ciHeI%m$F_yGgcWLM%373H`yh z;GzPejH}N_#;9sYZ-R2Xv1dbrNOre^T2h!n^fGLzU||(%6hD_mZK8S!PQg!-z2rQM zY1tk6m{tLuSX(W}6n?!gz*N}V{w5Us*9sfYA&k{9#JQRcajuqV4YVVz&3qzd9 zl0jnW;^BL-Zlf~64_pMFdxUfw<-SY4kXolHrcz=M_MLtw`2gt80bq?jDJpY_SaEmk}Z28O>N8Yxw6}uwjkXvd3a~m9q>X4= z9-u6gb6mZkX%8~2$)*#f*k0%Flc)uEWh_T_48T0y&Qr;M@S@$6@hlkm5arNJkKHDR z!u3yBzy&IQh_!4Um_?Y(S85+sXnze`-lMMsT(1dv$-F{CNv+c#TIOx^hf=)7#diP& ze6{86VIqsZqsVw=mjCKhlW%$`9}<0c8In>d=^RQb;v{?MIA}(?v&GmBp{ROvy;AxQe2xrlwBrAD`lkL}F z#|G+vyC{Dzb~{BoZu(C+Ty)O@$}@~C4|jx~!8i0`bf^z;+YvWu1F@;Tq0UJ^CAQW3 z4IHrvaGds%Gr)1&UO(h4Z5y4v*%8`=a-x^{@+0FBO^x&&6Z#Rn{RjBd&H%TvD-Zn% z-37BUD!UC3GA3J)jKZMtjF|$`=&v1R#><67$u7|ZLRnUohNBft}f;lVcipFTuXE{=~ z2d0hHrp%FP7t1uOHvM8w%OG1s^NORWTcX|I@re9>hA&{r3C?~H4a79w3CZL^uxC)U z5O;;QjW}mD8_jTS#pn6v>dq{vZ0Pdpr?XsJq3*(7ZkDSPTC1+#4yF2cgpRomFkFro z@!2cz#9~O-ck#rtVnwaY`V3$r(yl}d;bKw#Ee`^s0pHE$6=x&PS@aMwzvhm!@KO=1 zyqOk}F=!m1M`m>x2`nFH6R1oLC|TsX`3fv%=`-;hw%kQ+ue{k2JP#u5wRj(i0>jW#`7{Ud9ofQ^BHH>PdgAaILys205%lvfD8f;ha`v0xh;ggA-ri1!q7eC zm_5m&Tr!vIDnkA3VY=zqyb5~&fWr~^4X%R9OI$lV1{pw`Mp?<@K*!1vT||T>Tmi6(h%3=G7sW_IGDs;q8viZ<`$-zToh`ksP`cMKLN4?f2uz z4msdjIN4-~<#{Hw)QA zucPyh$LCPVQ;;v)HQ~Gx;;$J=X|F1l-ogvVV)57q|2Au z7AJd$!&^7G-T!FFvUmL-4_P)08qOcWo)x>3p)+8QgbOucCjsxNM9tPhx``=2f;^|n z3f^(}KOeFT)cR%YB?edhTlB-c>L=hM1ZBG$Pe5@jFWrPg{tfd05BLDzxEECJc3+uW zoz$s(5TF6ev|9AGBH-KT40s*}F(!HkJ9M;>FySf|UxYB$XzB z44EWpEnnSa`;L&zRw71BHylDd|4C*FXkCR9Ve^rduSxy@{1n@5DL&%32f$H-3DGu% z=40kKX^InfpzQ*wf@(NyNunIYX2fzBF7xWnP;OMA*SHY)im>JB`)Q?n5Nmdp>$Mcu zTgfS!>)|Xg6t34(T;0i~sRBno1~$=2>rLnr$O&^q^eOY{kFjAiuF}Jx!7c3SPVDmG z@gwZ?p-S4J<-#(*einxvNY0! z`urM9=^HB%8JvAHazOu%cVt5AXMa~^n@1T9I zV8b9ddIpaNf3xDF5z6Woard3exKUQE^ z!cS1Hce>Ll4|B-BMmFpL;M^dkQId+c6bNjXsqM#;*#|iB900u|=IVtI+SCf*y z_exUIllZ&*FE|a4_hqjqC4C3a^AR@@c`Ou%_s`!#1tXG23`!Zn|58l|28(C@9g;R; z#L%esJ|BnmnIk^K@Zmq%laxe%|9MTcDfXS(c@@&HM?Y@*8$v9F58>}M{0;tlQqp+* zU4Zyk-o*8Eh|5NJ0phrS$+(t={~v?^9YrSx4~cJu9+PT9r@zpD1A=gD%LwAbp_Czo zkMz$*3lKQp--6t+qOBuiFUA=zH#6<;l>fgI-QvFOH?(X zA88=!cSVvKEwi)>^I9U^p&aIp&+v=;rNzr$yikq;gwURCa>7}I z{OB24=}2wb*bjFfzsYgx7DQq)`@qCbP42dU{TuWLB~Z~(#SiYfr$o|skOUiy z0NUX~YmebnDs!tU;|$=<1*LB!?X+*p`rxbr6)IFB1E9JsZm`u<0a^ocJDs+v1FINm zF-R+j0^%MFXHrt}_pC!U`Oa#GK_G6!fWMd1N&25Q0;7K}KjI|6*|m$YB(%{6tQvzJ z7T-ptXusz!WD+R!3F<7KrQ)|yJRO+qdL8kidd}ygs^3Lw*HcKq^DrP;*9LkPJ;3>d z|BG%d3#pH*&xC$(J=$<9WrxB0sbr!=>xBzNR&4U&^rq!+l$FnZFGAMtCYUe{Ntdjv zJ8*LeumDl@h{795pm=*zyy1KWy`_1DEZ#KGZWLq#%gwxRATN}Vg+y4|w*eT@o)?8inDyZpJkzA>B-w$&6IYB(x))#Y zj$vkow3_Tp-b@wxw^hx>c5(WaQ%E0BKbhKNN=J4gJ*S~bYmp!T(6UN2NfzIATBNvT zJ#x{G{UT^baGryz(bAvzAtG@em(xs}@D{cV6G^`iNsox6Uvbhu9bD=bk@Opp^nFfx zK_vM^(oaRwDo$D}k}ecUKN3k^PP#`VeN!aeA(Co1$uE*RZlPwIW^>%lr65Dl^RS8^ z9!#uI&0_9b$>}w_s>~S2c(sE~4`?&Z)`0ZPq%pz8P@nAmCXrq)wu9&{y#t11X)qq2 z7BI|ONigi{N~W%&qKoN3+fQjDSsebN+!OTNpRM5Bk5X=&wOv5wDvM#~$N9mo1^Iy# z3v9Hr60i6oIpRKEuVXFhz=;(%;kAeJlRgL!XhtM})t0Y8Ysn zmt@5Y5^-n{b#iDoOR z4~`ATpmss=eW&1)fByj_siAn-g9q<95JsSF=ya}F{s3}!pNWL^lrS!maJLN!#2UaV zCmGf^nb=o58-f+!;I6}tI3{8Mnu(N>*Fb<*FcRdXZ90H~iq+M1>tPFeBvynf4 zhWMYcD@$C@5L67Q7WOK$+Lx|aJ`z2HvI-iNNn4k`+g;*cy26UO9z@@@*f|YzfRA8ry>6ck^hv~{B}KmqapuDk^j`#{3&|=B18VsBL9i8`JX>l zfoG^8{}_?~q}cpF((}K3Z8Utwiu~5t{B3&v2MqbGBLB&;`AhZuOAPrlME;D}{G;^z z<%ay3B0tS+0}j28xh7V`W04<6t_Y>QLpsaI%P_E7`VS@CU~&+Re?Qa9{&|_9Y$28P z7jL*7Q_Y)e-_&pml_x4P2^m)EK7IXuZm*sIn^!IprMu3{C1R%cGWcLHms69WQEo123XBqEAuN`yrZ70mPY^ zwyVOAAU{cVRYI~0TdtoVL?rqG7MEH3Hm909et?&Ko2}*!Qq7px{dGj^(0!Xr%q#qO zT~4+SzNO?I;=;fX3ND6AY6>q6l;L6|96$(^ji7LTpll?C3j$@MDXa^WjiInUP&SrA zPoT_7VMCxSgTlr@S?0dYgY@y+w>g=fc|6>8AkgryR8~?R-ZqKo=8Z36^S}ju`vP7R zUE1$)9ZabGXsmBoZpd)>cgFxb$lXr&WV{_iZ_I+f1G|>)JZ(-1D|23(h>maVJ_}hg z^ej(N77`_jD2iF>^Rbb`1%8bJq|OnPJ#v|{p!{^ojVQfa3vL3mNW=5a@d%;eK`i;{ zFxv7G$F1ylUdGD17)U}3`H`@%oGtr|FGPX@l7PZzj)C1C^rn&kb5KLCbs!q zJaiuc?w!k%<+0G!0%}A6qQ_~IMM*N;%E^-ced;*u1Ha8V1Q!yv?E5Y= z5aeKB)Y0ggMcBc-CZcJOG7v3>_Nc4T2$-Qh4-Rc+2f9Kq>w4@rhT|B*-p49^Wqs_c z)m=*YG3vi(fI+Yi?8?T3KG{>3G@9F(f| z!88diBDn(z=J6hFB6fyCLv^_(NM+eA*1xP=_IQ+S|K=bfpcB^K3mO)-Z00Wc=7udl z#1s6gT@UG4_*Gk`fBF$o{M8g}7Tm|hZV<)5t1S@4ⅇx=*6xP#eRZfMJJ4)d}edU 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 z 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≷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