This commit is contained in:
swrup 2025-11-11 02:07:51 +01:00
parent aa2ff7b2f0
commit 2f3113f55d
11742 changed files with 1223940 additions and 0 deletions

View file

@ -0,0 +1,24 @@
from pygments.lexer import DelegatingLexer, RegexLexer, bygroups, default
from pygments.lexers.shell import BashLexer
from pygments.token import Generic, Other, Comment
class CramBaseLexer(RegexLexer):
tokens = {
"root": [
(r"( \$ )(.*\n)", bygroups(Generic.Prompt, Other.Code), "continuations"),
(r"^ .*\n", Generic.Output),
(r"^.*\n", Comment.Multiline),
],
"continuations": [
(r"( > )(.*\n)", bygroups(Generic.Prompt, Other.Code)),
default("#pop"),
],
}
class CramLexer(DelegatingLexer):
name = "cram"
def __init__(self, **options):
super().__init__(BashLexer, CramBaseLexer, Other.Code, **options)

View file

@ -0,0 +1,36 @@
from pygments.token import Comment, Punctuation, Text, Name, String, Generic
from pygments.lexer import RegexLexer
def after_paren(r):
return r"(?<=\()(%s)" % r
class DuneLexer(RegexLexer):
name = "dune"
atom = r'[^\s()"]+'
tokens = {
"root": [
(r";.*$", Comment.Single),
(r"(\(|\))", Punctuation),
# pforms (%{var} and %{fun:arg}
(r"%{[^}]+}", String.Backtick),
(r":[-\w]+", String.Symbol),
# placeholders like <arg> and ... that appear in docs
(r"<[-\w ]+>", Generic.Emph),
(r"\.\.\.", Generic.Emph),
(r'"\\\|', String.Double, "string-multiline"),
(r'"', String, "string"),
# instead of hardcoding "builtin" names,
# highlight the first atom in a list differently
(after_paren(atom), Name.Function),
(atom, Name),
(r"\s+", Text),
],
"string": [
(r'(\\\\|\\"|[^"])*"', String, "#pop"),
],
"string-multiline": [(r"[^\n]*\n", String, "#pop")],
}

View file

@ -0,0 +1,26 @@
from pygments.lexer import RegexLexer
from pygments.token import (
Keyword,
Number,
Punctuation,
String,
Text,
Whitespace,
)
ident = r"[-\w]+"
class OpamLexer(RegexLexer):
name = "opam"
tokens = {
"root": [
(r"\d\.\d", Number),
(r"^" + ident + ":", Keyword),
(ident, Text),
(r"[\[\]{}>=]", Punctuation),
(r"\s+", Whitespace),
(r'"[^\"]*"', String),
]
}