From a1fa9a663e1caae2176b8f18e10161521f752368 Mon Sep 17 00:00:00 2001 From: ThaCuber <70547062+ThaCuber@users.noreply.github.com> Date: Mon, 1 May 2023 19:49:04 -0400 Subject: added language_tal.lua (#238) * added language_tal.lua * forgot to link to the page about the language --- plugins/language_tal.lua | 70 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 plugins/language_tal.lua (limited to 'plugins/language_tal.lua') diff --git a/plugins/language_tal.lua b/plugins/language_tal.lua new file mode 100644 index 0000000..aef83cd --- /dev/null +++ b/plugins/language_tal.lua @@ -0,0 +1,70 @@ +--mod-version:3 +local syntax = require 'core.syntax' + +local label, sublabel = "function", "keyword2" + +syntax.add { + name = "Uxntal", + files = { "%.tal$" }, + block_comment = { '(', ')' }, + patterns = { + { pattern = {'%(', '%)'}, type = "comment" }, + { pattern = "@%S*%s+%f[[]", type = label }, + { pattern = "@%S+", type = "string" }, + { pattern = "%u+()[2kr]*", type = { "symbol", "keyword" } }, + { pattern = "%%%S+", type = "keyword" }, + { pattern = "&%S+", type = sublabel }, + { pattern = "\"%S+", type = "string" }, + { pattern = "%.%S+()/%S*", type = { label, sublabel } }, + { pattern = "%.%S+", type = label }, + { pattern = "|%x+", type = "string" }, + { pattern = "[.,;_=-]%S+", type = sublabel }, + { pattern = "%$%d+", type = "number" }, + { pattern = "#?%x%x%x%x%f[%X]", type = "number" }, + { pattern = "#?%x%x%f[%X]", type = "number" }, + { pattern = "[!?]()[^%[%]{}%s]+", type = { "operator", "function" } }, + { pattern = "[^%[%]{}%s]+", type = "function" }, + }, + symbols = { + -- no mode keywords + ["JCI"] = "keyword", + ["JMI"] = "keyword", + ["JSI"] = "keyword", + ["BRK"] = "keyword", + + -- lit only has 4 modes + ["LIT"] = "keyword", + + -- the rest + ["EQU"] = "keyword", + ["LDZ"] = "keyword", + ["ADD"] = "keyword", + ["INC"] = "keyword", + ["NEQ"] = "keyword", + ["STZ"] = "keyword", + ["SUB"] = "keyword", + ["POP"] = "keyword", + ["GTH"] = "keyword", + ["LDR"] = "keyword", + ["MUL"] = "keyword", + ["NIP"] = "keyword", + ["LTH"] = "keyword", + ["STR"] = "keyword", + ["DIV"] = "keyword", + ["SWP"] = "keyword", + ["JMP"] = "keyword", + ["LDA"] = "keyword", + ["AND"] = "keyword", + ["ROT"] = "keyword", + ["JCN"] = "keyword", + ["STA"] = "keyword", + ["ORA"] = "keyword", + ["DUP"] = "keyword", + ["JSR"] = "keyword", + ["DEI"] = "keyword", + ["EOR"] = "keyword", + ["OVR"] = "keyword", + ["STH"] = "keyword", + ["DEO"] = "keyword", + ["SFT"] = "keyword", + }} -- cgit v1.2.3