diff --git a/runtime/syntax/zig.yaml b/runtime/syntax/zig.yaml new file mode 100644 index 00000000..5c748626 --- /dev/null +++ b/runtime/syntax/zig.yaml @@ -0,0 +1,37 @@ +filetype: zig + +detect: + filename: "\\.zig$" + +rules: + # function definition + - identifier: "fn [a-z0-9_]+" + # Reserved words + - statement: "\\b(align|and|allowzero|anyerror|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|false|fn|for|if|inline|nakedcc|noalias|null|or|orelse|packed|promise|pub|resume|return|linksection|stdcallcc|struct|suspend|switch|test|threadlocal|true|try|undefined|union|unreachable|use|var|volatile|while)\\b" + # builtin functions + - special: "@+[a-z_]+" + # Constants + - constant: "[A-Z][A-Z_]+([0-9]+)?" + # Numbers (hexadecimal + decimal) + - constant.number: "\\b(0x[A-F0-9]+|[0-9]+)\\b" + # Primitive Types / Derived Data Types + - type: "([A-Z][a-z]+|(i8|u8|i16|u16|i32|u32|i64|u64|i128|u128|isize|usize|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|c_longlong|c_ulonglong|c_longdouble|c_void|f16|f32|f64|f128|bool|void|noreturn|type|anyerror|comptime_int|comptime_float))" + + - constant.string: + start: "\"" + end: "\"" + skip: "\\\\." + rules: + - constant.specialChar: "\\\\." + + - comment: + start: "//" + end: "$" + rules: + - todo: "(TODO|XXX|FIXME):?" + + - comment: + start: "/\\*" + end: "\\*/" + rules: + - todo: "(TODO|XXX|FIXME):?"