--mod-version:3 local syntax = require 'core.syntax' syntax.add { name = "Zongor's Transpiler Language", files = { "%.ztl$" }, comment = "!", block_comment = { '!!', '!!' }, patterns = { { pattern = { "!!", "!!" }, type = "comment" }, -- tested ok { pattern = "!.*", type = "comment" }, { pattern = { '"', '"', '\\' }, type = "string" }, { pattern = { "'", "'", '\\' }, type = "string" }, { pattern = ";", type = "operator" }, { pattern = "[%a_][%w_]*()%s*%(", type = {"function", "normal"} }, { pattern = "[viu][%d_]+", type = "keyword2" }, { pattern = "[A-Z][%w_]*", type = "keyword2" }, { pattern = "[9][%w_]*", type = "keyword2" }, { pattern = "-?%.?%d+f?", type = "number" }, }, symbols = { ["fn"] = "keyword", ["to"] = "keyword", ["in"] = "keyword", ["is"] = "keyword", ["as"] = "keyword", ["use"] = "keyword", ["set"] = "keyword", ["if"] = "keyword", ["else"] = "keyword", ["for"] = "keyword", ["loop"] = "keyword", ["while"] = "keyword", ["push"] = "keyword", ["pop"] = "keyword", ["return"] = "keyword", ["const"] = "keyword", ["type"] = "keyword", ["this"] = "keyword", ["eq"] = "keyword", ["ne"] = "keyword", ["mod"] = "keyword", ["not"] = "keyword", ["and"] = "keyword", ["or"] = "keyword", ["xor"] = "keyword", ["band"] = "keyword", ["bor"] = "keyword", ["bxor"] = "keyword", ["srl"] = "keyword", ["sll"] = "keyword", ["char"] = "keyword2", ["str"] = "keyword2", ["f16"] = "keyword2", ["f32"] = "keyword2", ["f64"] = "keyword2", ["f128"] = "keyword2", ["true"] = "literal", ["false"] = "literal", }, }