diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-10-25 00:47:47 +0200 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-10-25 00:47:47 +0200 |
| commit | c6cc0108ca7738023b45e0eeac0fa2390532dd93 (patch) | |
| tree | 36890e6cd3091bbab8efbe686cc56f467f645bfd /vendor/github.com/alecthomas/chroma/v2/lexers/embedded/standard_ml.xml | |
| parent | 0130404a1dc663d4aa68d780c9bcb23a4243e68d (diff) | |
| download | jbmafp-master.tar.gz | |
Diffstat (limited to 'vendor/github.com/alecthomas/chroma/v2/lexers/embedded/standard_ml.xml')
| -rw-r--r-- | vendor/github.com/alecthomas/chroma/v2/lexers/embedded/standard_ml.xml | 548 |
1 files changed, 548 insertions, 0 deletions
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/standard_ml.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/standard_ml.xml new file mode 100644 index 0000000..39cf4f2 --- /dev/null +++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/standard_ml.xml @@ -0,0 +1,548 @@ +<lexer> + <config> + <name>Standard ML</name> + <alias>sml</alias> + <filename>*.sml</filename> + <filename>*.sig</filename> + <filename>*.fun</filename> + <mime_type>text/x-standardml</mime_type> + <mime_type>application/x-standardml</mime_type> + </config> + <rules> + <state name="delimiters"> + <rule pattern="\(|\[|\{"> + <token type="Punctuation"/> + <push state="main"/> + </rule> + <rule pattern="\)|\]|\}"> + <token type="Punctuation"/> + <pop depth="1"/> + </rule> + <rule pattern="\b(let|if|local)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="main" state="main"/> + </rule> + <rule pattern="\b(struct|sig|while)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="main"/> + </rule> + <rule pattern="\b(do|else|end|in|then)\b(?!\')"> + <token type="KeywordReserved"/> + <pop depth="1"/> + </rule> + </state> + <state name="root"> + <rule> + <push state="main"/> + </rule> + </state> + <state name="breakout"> + <rule pattern="(?=\b(where|do|handle|if|sig|op|while|case|as|else|signature|andalso|struct|infixr|functor|in|structure|then|local|rec|end|fun|of|orelse|val|include|fn|with|exception|let|and|infix|sharing|datatype|type|abstype|withtype|eqtype|nonfix|raise|open)\b(?!\'))"> + <token type="Text"/> + <pop depth="1"/> + </rule> + </state> + <state name="tyvarseq"> + <rule pattern="\s"> + <token type="Text"/> + </rule> + <rule pattern="\(\*"> + <token type="CommentMultiline"/> + <push state="comment"/> + </rule> + <rule pattern="\'[\w\']*"> + <token type="NameDecorator"/> + </rule> + <rule pattern="[a-zA-Z][\w']*"> + <token type="Name"/> + </rule> + <rule pattern=","> + <token type="Punctuation"/> + </rule> + <rule pattern="\)"> + <token type="Punctuation"/> + <pop depth="1"/> + </rule> + <rule pattern="[!%&$#+\-/:<=>?@\\~`^|*]+"> + <token type="Name"/> + </rule> + </state> + <state name="char"> + <rule pattern="[^"\\]"> + <token type="LiteralStringChar"/> + </rule> + <rule pattern="\\[\\"abtnvfr]"> + <token type="LiteralStringEscape"/> + </rule> + <rule pattern="\\\^[\x40-\x5e]"> + <token type="LiteralStringEscape"/> + </rule> + <rule pattern="\\[0-9]{3}"> + <token type="LiteralStringEscape"/> + </rule> + <rule pattern="\\u[0-9a-fA-F]{4}"> + <token type="LiteralStringEscape"/> + </rule> + <rule pattern="\\\s+\\"> + <token type="LiteralStringInterpol"/> + </rule> + <rule pattern="""> + <token type="LiteralStringChar"/> + <pop depth="1"/> + </rule> + </state> + <state name="datbind"> + <rule> + <include state="whitespace"/> + </rule> + <rule pattern="\b(and)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="#pop" state="dname"/> + </rule> + <rule pattern="\b(withtype)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="#pop" state="tname"/> + </rule> + <rule pattern="\b(of)\b(?!\')"> + <token type="KeywordReserved"/> + </rule> + <rule pattern="(\|)(\s*)([a-zA-Z][\w']*)"> + <bygroups> + <token type="Punctuation"/> + <token type="Text"/> + <token type="NameClass"/> + </bygroups> + </rule> + <rule pattern="(\|)(\s+)([!%&$#+\-/:<=>?@\\~`^|*]+)"> + <bygroups> + <token type="Punctuation"/> + <token type="Text"/> + <token type="NameClass"/> + </bygroups> + </rule> + <rule> + <include state="breakout"/> + </rule> + <rule> + <include state="core"/> + </rule> + <rule pattern="\S+"> + <token type="Error"/> + </rule> + </state> + <state name="string"> + <rule pattern="[^"\\]"> + <token type="LiteralStringDouble"/> + </rule> + <rule pattern="\\[\\"abtnvfr]"> + <token type="LiteralStringEscape"/> + </rule> + <rule pattern="\\\^[\x40-\x5e]"> + <token type="LiteralStringEscape"/> + </rule> + <rule pattern="\\[0-9]{3}"> + <token type="LiteralStringEscape"/> + </rule> + <rule pattern="\\u[0-9a-fA-F]{4}"> + <token type="LiteralStringEscape"/> + </rule> + <rule pattern="\\\s+\\"> + <token type="LiteralStringInterpol"/> + </rule> + <rule pattern="""> + <token type="LiteralStringDouble"/> + <pop depth="1"/> + </rule> + </state> + <state name="tname"> + <rule> + <include state="whitespace"/> + </rule> + <rule> + <include state="breakout"/> + </rule> + <rule pattern="\'[\w\']*"> + <token type="NameDecorator"/> + </rule> + <rule pattern="\("> + <token type="Punctuation"/> + <push state="tyvarseq"/> + </rule> + <rule pattern="=(?![!%&$#+\-/:<=>?@\\~`^|*]+)"> + <token type="Punctuation"/> + <push state="#pop" state="typbind"/> + </rule> + <rule pattern="([a-zA-Z][\w']*)"> + <token type="KeywordType"/> + </rule> + <rule pattern="([!%&$#+\-/:<=>?@\\~`^|*]+)"> + <token type="KeywordType"/> + </rule> + <rule pattern="\S+"> + <token type="Error"/> + <pop depth="1"/> + </rule> + </state> + <state name="dname"> + <rule> + <include state="whitespace"/> + </rule> + <rule> + <include state="breakout"/> + </rule> + <rule pattern="\'[\w\']*"> + <token type="NameDecorator"/> + </rule> + <rule pattern="\("> + <token type="Punctuation"/> + <push state="tyvarseq"/> + </rule> + <rule pattern="(=)(\s*)(datatype)"> + <bygroups> + <token type="Punctuation"/> + <token type="Text"/> + <token type="KeywordReserved"/> + </bygroups> + <pop depth="1"/> + </rule> + <rule pattern="=(?![!%&$#+\-/:<=>?@\\~`^|*]+)"> + <token type="Punctuation"/> + <push state="#pop" state="datbind" state="datcon"/> + </rule> + <rule pattern="([a-zA-Z][\w']*)"> + <token type="KeywordType"/> + </rule> + <rule pattern="([!%&$#+\-/:<=>?@\\~`^|*]+)"> + <token type="KeywordType"/> + </rule> + <rule pattern="\S+"> + <token type="Error"/> + <pop depth="1"/> + </rule> + </state> + <state name="typbind"> + <rule> + <include state="whitespace"/> + </rule> + <rule pattern="\b(and)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="#pop" state="tname"/> + </rule> + <rule> + <include state="breakout"/> + </rule> + <rule> + <include state="core"/> + </rule> + <rule pattern="\S+"> + <token type="Error"/> + <pop depth="1"/> + </rule> + </state> + <state name="ename"> + <rule> + <include state="whitespace"/> + </rule> + <rule pattern="(exception|and)\b(\s+)([a-zA-Z][\w']*)"> + <bygroups> + <token type="KeywordReserved"/> + <token type="Text"/> + <token type="NameClass"/> + </bygroups> + </rule> + <rule pattern="(exception|and)\b(\s*)([!%&$#+\-/:<=>?@\\~`^|*]+)"> + <bygroups> + <token type="KeywordReserved"/> + <token type="Text"/> + <token type="NameClass"/> + </bygroups> + </rule> + <rule pattern="\b(of)\b(?!\')"> + <token type="KeywordReserved"/> + </rule> + <rule> + <include state="breakout"/> + </rule> + <rule> + <include state="core"/> + </rule> + <rule pattern="\S+"> + <token type="Error"/> + </rule> + </state> + <state name="vname"> + <rule> + <include state="whitespace"/> + </rule> + <rule pattern="\'[\w\']*"> + <token type="NameDecorator"/> + </rule> + <rule pattern="\("> + <token type="Punctuation"/> + <push state="tyvarseq"/> + </rule> + <rule pattern="([a-zA-Z][\w']*)(\s*)(=(?![!%&$#+\-/:<=>?@\\~`^|*]+))"> + <bygroups> + <token type="NameVariable"/> + <token type="Text"/> + <token type="Punctuation"/> + </bygroups> + <pop depth="1"/> + </rule> + <rule pattern="([!%&$#+\-/:<=>?@\\~`^|*]+)(\s*)(=(?![!%&$#+\-/:<=>?@\\~`^|*]+))"> + <bygroups> + <token type="NameVariable"/> + <token type="Text"/> + <token type="Punctuation"/> + </bygroups> + <pop depth="1"/> + </rule> + <rule pattern="([a-zA-Z][\w']*)"> + <token type="NameVariable"/> + <pop depth="1"/> + </rule> + <rule pattern="([!%&$#+\-/:<=>?@\\~`^|*]+)"> + <token type="NameVariable"/> + <pop depth="1"/> + </rule> + <rule> + <pop depth="1"/> + </rule> + </state> + <state name="sname"> + <rule> + <include state="whitespace"/> + </rule> + <rule> + <include state="breakout"/> + </rule> + <rule pattern="([a-zA-Z][\w']*)"> + <token type="NameNamespace"/> + </rule> + <rule> + <pop depth="1"/> + </rule> + </state> + <state name="main-fun"> + <rule> + <include state="whitespace"/> + </rule> + <rule pattern="\s"> + <token type="Text"/> + </rule> + <rule pattern="\(\*"> + <token type="CommentMultiline"/> + <push state="comment"/> + </rule> + <rule pattern="\b(fun|and)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="fname"/> + </rule> + <rule pattern="\b(val)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="#pop" state="main" state="vname"/> + </rule> + <rule pattern="\|"> + <token type="Punctuation"/> + <push state="fname"/> + </rule> + <rule pattern="\b(case|handle)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="#pop" state="main"/> + </rule> + <rule> + <include state="delimiters"/> + </rule> + <rule> + <include state="core"/> + </rule> + <rule pattern="\S+"> + <token type="Error"/> + </rule> + </state> + <state name="datcon"> + <rule> + <include state="whitespace"/> + </rule> + <rule pattern="([a-zA-Z][\w']*)"> + <token type="NameClass"/> + <pop depth="1"/> + </rule> + <rule pattern="([!%&$#+\-/:<=>?@\\~`^|*]+)"> + <token type="NameClass"/> + <pop depth="1"/> + </rule> + <rule pattern="\S+"> + <token type="Error"/> + <pop depth="1"/> + </rule> + </state> + <state name="dotted"> + <rule pattern="([a-zA-Z][\w']*)(\.)"> + <token type="NameNamespace"/> + </rule> + <rule pattern="([a-zA-Z][\w']*)"> + <token type="Name"/> + <pop depth="1"/> + </rule> + <rule pattern="([!%&$#+\-/:<=>?@\\~`^|*]+)"> + <token type="Name"/> + <pop depth="1"/> + </rule> + <rule pattern="\s+"> + <token type="Error"/> + </rule> + <rule pattern="\S+"> + <token type="Error"/> + </rule> + </state> + <state name="main"> + <rule> + <include state="whitespace"/> + </rule> + <rule pattern="\b(val|and)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="vname"/> + </rule> + <rule pattern="\b(fun)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="#pop" state="main-fun" state="fname"/> + </rule> + <rule> + <include state="delimiters"/> + </rule> + <rule> + <include state="core"/> + </rule> + <rule pattern="\S+"> + <token type="Error"/> + </rule> + </state> + <state name="comment"> + <rule pattern="[^(*)]"> + <token type="CommentMultiline"/> + </rule> + <rule pattern="\(\*"> + <token type="CommentMultiline"/> + <push/> + </rule> + <rule pattern="\*\)"> + <token type="CommentMultiline"/> + <pop depth="1"/> + </rule> + <rule pattern="[(*)]"> + <token type="CommentMultiline"/> + </rule> + </state> + <state name="whitespace"> + <rule pattern="\s+"> + <token type="Text"/> + </rule> + <rule pattern="\(\*"> + <token type="CommentMultiline"/> + <push state="comment"/> + </rule> + </state> + <state name="core"> + <rule pattern="(_|\}|\{|\)|;|,|\[|\(|\]|\.\.\.)"> + <token type="Punctuation"/> + </rule> + <rule pattern="#""> + <token type="LiteralStringChar"/> + <push state="char"/> + </rule> + <rule pattern="""> + <token type="LiteralStringDouble"/> + <push state="string"/> + </rule> + <rule pattern="~?0x[0-9a-fA-F]+"> + <token type="LiteralNumberHex"/> + </rule> + <rule pattern="0wx[0-9a-fA-F]+"> + <token type="LiteralNumberHex"/> + </rule> + <rule pattern="0w\d+"> + <token type="LiteralNumberInteger"/> + </rule> + <rule pattern="~?\d+\.\d+[eE]~?\d+"> + <token type="LiteralNumberFloat"/> + </rule> + <rule pattern="~?\d+\.\d+"> + <token type="LiteralNumberFloat"/> + </rule> + <rule pattern="~?\d+[eE]~?\d+"> + <token type="LiteralNumberFloat"/> + </rule> + <rule pattern="~?\d+"> + <token type="LiteralNumberInteger"/> + </rule> + <rule pattern="#\s*[1-9][0-9]*"> + <token type="NameLabel"/> + </rule> + <rule pattern="#\s*([a-zA-Z][\w']*)"> + <token type="NameLabel"/> + </rule> + <rule pattern="#\s+([!%&$#+\-/:<=>?@\\~`^|*]+)"> + <token type="NameLabel"/> + </rule> + <rule pattern="\b(datatype|abstype)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="dname"/> + </rule> + <rule pattern="(?=\b(exception)\b(?!\'))"> + <token type="Text"/> + <push state="ename"/> + </rule> + <rule pattern="\b(functor|include|open|signature|structure)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="sname"/> + </rule> + <rule pattern="\b(type|eqtype)\b(?!\')"> + <token type="KeywordReserved"/> + <push state="tname"/> + </rule> + <rule pattern="\'[\w\']*"> + <token type="NameDecorator"/> + </rule> + <rule pattern="([a-zA-Z][\w']*)(\.)"> + <token type="NameNamespace"/> + <push state="dotted"/> + </rule> + <rule pattern="\b(abstype|and|andalso|as|case|datatype|do|else|end|exception|fn|fun|handle|if|in|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|then|type|val|with|withtype|while|eqtype|functor|include|sharing|sig|signature|struct|structure|where)\b"> + <token type="KeywordReserved"/> + </rule> + <rule pattern="([a-zA-Z][\w']*)"> + <token type="Name"/> + </rule> + <rule pattern="\b(:|\|,=|=>|->|#|:>)\b"> + <token type="KeywordReserved"/> + </rule> + <rule pattern="([!%&$#+\-/:<=>?@\\~`^|*]+)"> + <token type="Name"/> + </rule> + </state> + <state name="fname"> + <rule> + <include state="whitespace"/> + </rule> + <rule pattern="\'[\w\']*"> + <token type="NameDecorator"/> + </rule> + <rule pattern="\("> + <token type="Punctuation"/> + <push state="tyvarseq"/> + </rule> + <rule pattern="([a-zA-Z][\w']*)"> + <token type="NameFunction"/> + <pop depth="1"/> + </rule> + <rule pattern="([!%&$#+\-/:<=>?@\\~`^|*]+)"> + <token type="NameFunction"/> + <pop depth="1"/> + </rule> + <rule> + <pop depth="1"/> + </rule> + </state> + </rules> +</lexer>
\ No newline at end of file |
