diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/language_c7.lua | 80 | ||||
-rw-r--r-- | plugins/language_fe.lua | 39 |
2 files changed, 108 insertions, 11 deletions
diff --git a/plugins/language_c7.lua b/plugins/language_c7.lua new file mode 100644 index 0000000..2c3e2fc --- /dev/null +++ b/plugins/language_c7.lua @@ -0,0 +1,80 @@ +-- mod-version:3 +local syntax = require "core.syntax" + +syntax.add { + name = "cel7", + files = "%.c7$", + comment = ";", + patterns = { + { pattern = ";.*", type = "comment" }, + { pattern = { '"', '"', '\\' }, type = "string" }, + { pattern = "0x4000", type = "literal" }, + { pattern = "0x4040", type = "literal" }, + { pattern = "0x52a0", type = "literal" }, + { pattern = "0x[%da-fA-F]+", type = "number" }, + { pattern = "-?%d+[%d%.]*", type = "number" }, + { pattern = "-?%.?%d+", type = "number" }, + { pattern = "'", type = "symbol" }, + { pattern = "=", type = "symbol" }, + { pattern = "<=?", type = "symbol" }, + { pattern = "[%+-%*/]", type = "symbol" }, + { pattern = "//", type = "keyword2" }, + { pattern = "%%", type = "keyword2" }, + { pattern = "%f[^(][^()'%s\"]+", type = "function" }, + { pattern = "[^()'%s\"]+", type = "symbol" }, + }, + symbols = { + ["let"] = "keyword", + ["="] = "operator", + ["if"] = "keyword", + ["fn"] = "keyword", + ["mac"] = "keyword", + ["while"] = "keyword", + ["quote"] = "keyword", + ["'"] = "keyword", + ["and"] = "keyword", + ["or"] = "keyword", + ["do"] = "keyword", + ["cons"] = "keyword", + ["car"] = "keyword", + ["cdr"] = "keyword", + ["setcar"] = "keyword", + ["setcdr"] = "keyword", + ["list"] = "keyword", + ["not"] = "keyword", + ["is"] = "keyword", + ["atom"] = "keyword", + ["print"] = "keyword", + ["<"] = "operator", + ["<="] = "operator", + ["="] = "operator", + ["+"] = "operator", + ["-"] = "operator", + ["*"] = "operator", + ["/"] = "operator", + ["nil"] = "literal", + ["t"] = "literal", + + -- reserved variables (config) + ["title"] = "keyword2", + ["width"] = "keyword2", + ["height"] = "keyword2", + ["debug"] = "keyword2", + + -- callbacks + ["init"] = "keyword2", + ["step"] = "keyword2", + ["keydown"] = "keyword2", + ["keyup"] = "keyword2", + + -- built-in functions + ["quit"] = "keyword2", + ["rand"] = "keyword2", + ["poke"] = "keyword2", + ["peek"] = "keyword2", + ["color"] = "keyword2", + ["put"] = "keyword2", + ["get"] = "keyword2", + ["fill"] = "keyword2", + } +} diff --git a/plugins/language_fe.lua b/plugins/language_fe.lua index aee9b85..041512f 100644 --- a/plugins/language_fe.lua +++ b/plugins/language_fe.lua @@ -6,29 +6,46 @@ syntax.add { files = "%.fe$", comment = ";", patterns = { - { pattern = ";.-\n", type = "comment" }, + { pattern = ";.*", type = "comment" }, { pattern = { '"', '"', '\\' }, type = "string" }, { pattern = "0x[%da-fA-F]+", type = "number" }, { pattern = "-?%d+[%d%.]*", type = "number" }, { pattern = "-?%.?%d+", type = "number" }, - { pattern = "'", type = "symbol" }, + { pattern = "'", type = "symbol" }, + { pattern = "=", type = "symbol" }, + { pattern = "<=?", type = "symbol" }, + { pattern = "[%+-%*/]", type = "symbol" }, { pattern = "%f[^(][^()'%s\"]+", type = "function" }, { pattern = "[^()'%s\"]+", type = "symbol" }, }, symbols = { - ["if"] = "keyword2", - ["let"] = "keyword2", - ["do"] = "keyword2", - ["fn"] = "keyword2", - ["mac"] = "keyword2", - ["'"] = "keyword2", - ["print"] = "keyword", + ["let"] = "keyword", + ["if"] = "keyword", + ["fn"] = "keyword", + ["mac"] = "keyword", ["while"] = "keyword", + ["quote"] = "keyword", + ["'"] = "keyword", + ["and"] = "keyword", + ["or"] = "keyword", + ["do"] = "keyword", + ["cons"] = "keyword", ["car"] = "keyword", ["cdr"] = "keyword", - ["not"] = "keyword", - ["setcdr"] = "keyword", ["setcar"] = "keyword", + ["setcdr"] = "keyword", + ["list"] = "keyword", + ["not"] = "keyword", + ["is"] = "keyword", + ["atom"] = "keyword", + ["print"] = "keyword", + ["<"] = "operator", + ["<="] = "operator", + ["="] = "operator", + ["+"] = "operator", + ["-"] = "operator", + ["*"] = "operator", + ["/"] = "operator", ["nil"] = "literal", ["t"] = "literal", } |