syntect-tmlanguage 0.1.0

Load real TextMate .tmLanguage.json grammars into syntect's own SyntaxDefinition data model
Documentation
const std = @import("std");

/// Doc comment for Point.
const Point = struct {
    x: f64,
    y: f64,

    pub fn init(x: f64, y: f64) Point {
        return Point{ .x = x, .y = y };
    }

    pub fn length(self: Point) f64 {
        // nested block comment via line comments
        return std.math.sqrt(self.x * self.x + self.y * self.y);
    }
};

const Error = error{OutOfMemory, InvalidInput};

fn mayFail(n: i32) Error!i32 {
    if (n < 0) {
        return Error.InvalidInput;
    }
    return n * 2;
}

pub fn main() !void {
    var allocator = std.heap.page_allocator;
    var list = std.ArrayList(i32).init(allocator);
    defer list.deinit();

    const p = Point.init(3.0, 4.0);
    std.debug.print("length = {d}\n", .{p.length()});

    const val = mayFail(5) catch |err| switch (err) {
        Error.InvalidInput => {
            std.debug.print("bad input\n", .{});
            return;
        },
        else => return err,
    };

    for (0..val) |i| {
        try list.append(@intCast(i));
    }

    const s = "a raw string with \"escapes\" and \\backslash";
    _ = s;
}