summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/alecthomas/chroma/lexers/i/io.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/alecthomas/chroma/lexers/i/io.go')
-rw-r--r--vendor/github.com/alecthomas/chroma/lexers/i/io.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/vendor/github.com/alecthomas/chroma/lexers/i/io.go b/vendor/github.com/alecthomas/chroma/lexers/i/io.go
new file mode 100644
index 000000000..8b2e53a07
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/lexers/i/io.go
@@ -0,0 +1,44 @@
+package i
+
+import (
+ . "github.com/alecthomas/chroma" // nolint
+ "github.com/alecthomas/chroma/lexers/internal"
+)
+
+// Io lexer.
+var Io = internal.Register(MustNewLazyLexer(
+ &Config{
+ Name: "Io",
+ Aliases: []string{"io"},
+ Filenames: []string{"*.io"},
+ MimeTypes: []string{"text/x-iosrc"},
+ },
+ ioRules,
+))
+
+func ioRules() Rules {
+ return Rules{
+ "root": {
+ {`\n`, Text, nil},
+ {`\s+`, Text, nil},
+ {`//(.*?)\n`, CommentSingle, nil},
+ {`#(.*?)\n`, CommentSingle, nil},
+ {`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil},
+ {`/\+`, CommentMultiline, Push("nestedcomment")},
+ {`"(\\\\|\\"|[^"])*"`, LiteralString, nil},
+ {`::=|:=|=|\(|\)|;|,|\*|-|\+|>|<|@|!|/|\||\^|\.|%|&|\[|\]|\{|\}`, Operator, nil},
+ {`(clone|do|doFile|doString|method|for|if|else|elseif|then)\b`, Keyword, nil},
+ {`(nil|false|true)\b`, NameConstant, nil},
+ {`(Object|list|List|Map|args|Sequence|Coroutine|File)\b`, NameBuiltin, nil},
+ {`[a-zA-Z_]\w*`, Name, nil},
+ {`(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?`, LiteralNumberFloat, nil},
+ {`\d+`, LiteralNumberInteger, nil},
+ },
+ "nestedcomment": {
+ {`[^+/]+`, CommentMultiline, nil},
+ {`/\+`, CommentMultiline, Push()},
+ {`\+/`, CommentMultiline, Pop(1)},
+ {`[+/]`, CommentMultiline, nil},
+ },
+ }
+}