diff options
Diffstat (limited to 'vendor/github.com/alecthomas/chroma/v2/lexers/embedded/chaiscript.xml')
| -rw-r--r-- | vendor/github.com/alecthomas/chroma/v2/lexers/embedded/chaiscript.xml | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/chaiscript.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/chaiscript.xml new file mode 100644 index 0000000..860439a --- /dev/null +++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/chaiscript.xml @@ -0,0 +1,134 @@ +<lexer> + <config> + <name>ChaiScript</name> + <alias>chai</alias> + <alias>chaiscript</alias> + <filename>*.chai</filename> + <mime_type>text/x-chaiscript</mime_type> + <mime_type>application/x-chaiscript</mime_type> + <dot_all>true</dot_all> + </config> + <rules> + <state name="dqstring"> + <rule pattern="\$\{[^"}]+?\}"> + <token type="LiteralStringInterpol"/> + </rule> + <rule pattern="\$"> + <token type="LiteralStringDouble"/> + </rule> + <rule pattern="\\\\"> + <token type="LiteralStringDouble"/> + </rule> + <rule pattern="\\""> + <token type="LiteralStringDouble"/> + </rule> + <rule pattern="[^\\"$]+"> + <token type="LiteralStringDouble"/> + </rule> + <rule pattern="""> + <token type="LiteralStringDouble"/> + <pop depth="1"/> + </rule> + </state> + <state name="commentsandwhitespace"> + <rule pattern="\s+"> + <token type="Text"/> + </rule> + <rule pattern="//.*?\n"> + <token type="CommentSingle"/> + </rule> + <rule pattern="/\*.*?\*/"> + <token type="CommentMultiline"/> + </rule> + <rule pattern="^\#.*?\n"> + <token type="CommentSingle"/> + </rule> + </state> + <state name="slashstartsregex"> + <rule> + <include state="commentsandwhitespace"/> + </rule> + <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)"> + <token type="LiteralStringRegex"/> + <pop depth="1"/> + </rule> + <rule pattern="(?=/)"> + <token type="Text"/> + <push state="#pop" state="badregex"/> + </rule> + <rule> + <pop depth="1"/> + </rule> + </state> + <state name="badregex"> + <rule pattern="\n"> + <token type="Text"/> + <pop depth="1"/> + </rule> + </state> + <state name="root"> + <rule> + <include state="commentsandwhitespace"/> + </rule> + <rule pattern="\n"> + <token type="Text"/> + </rule> + <rule pattern="[^\S\n]+"> + <token type="Text"/> + </rule> + <rule pattern="\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|\.\.(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?"> + <token type="Operator"/> + <push state="slashstartsregex"/> + </rule> + <rule pattern="[{(\[;,]"> + <token type="Punctuation"/> + <push state="slashstartsregex"/> + </rule> + <rule pattern="[})\].]"> + <token type="Punctuation"/> + </rule> + <rule pattern="[=+\-*/]"> + <token type="Operator"/> + </rule> + <rule pattern="(for|in|while|do|break|return|continue|if|else|throw|try|catch)\b"> + <token type="Keyword"/> + <push state="slashstartsregex"/> + </rule> + <rule pattern="(var)\b"> + <token type="KeywordDeclaration"/> + <push state="slashstartsregex"/> + </rule> + <rule pattern="(attr|def|fun)\b"> + <token type="KeywordReserved"/> + </rule> + <rule pattern="(true|false)\b"> + <token type="KeywordConstant"/> + </rule> + <rule pattern="(eval|throw)\b"> + <token type="NameBuiltin"/> + </rule> + <rule pattern="`\S+`"> + <token type="NameBuiltin"/> + </rule> + <rule pattern="[$a-zA-Z_]\w*"> + <token type="NameOther"/> + </rule> + <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?"> + <token type="LiteralNumberFloat"/> + </rule> + <rule pattern="0x[0-9a-fA-F]+"> + <token type="LiteralNumberHex"/> + </rule> + <rule pattern="[0-9]+"> + <token type="LiteralNumberInteger"/> + </rule> + <rule pattern="""> + <token type="LiteralStringDouble"/> + <push state="dqstring"/> + </rule> + <rule pattern="'(\\\\|\\'|[^'])*'"> + <token type="LiteralStringSingle"/> + </rule> + </state> + </rules> +</lexer>
\ No newline at end of file |
