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/smalltalk.xml | |
| parent | 0130404a1dc663d4aa68d780c9bcb23a4243e68d (diff) | |
| download | jbmafp-master.tar.gz | |
Diffstat (limited to 'vendor/github.com/alecthomas/chroma/v2/lexers/embedded/smalltalk.xml')
| -rw-r--r-- | vendor/github.com/alecthomas/chroma/v2/lexers/embedded/smalltalk.xml | 294 |
1 files changed, 294 insertions, 0 deletions
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/smalltalk.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/smalltalk.xml new file mode 100644 index 0000000..0027111 --- /dev/null +++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/smalltalk.xml @@ -0,0 +1,294 @@ +<lexer> + <config> + <name>Smalltalk</name> + <alias>smalltalk</alias> + <alias>squeak</alias> + <alias>st</alias> + <filename>*.st</filename> + <mime_type>text/x-smalltalk</mime_type> + </config> + <rules> + <state name="inner_parenth"> + <rule pattern="\)"> + <token type="LiteralStringSymbol"/> + <pop depth="1"/> + </rule> + <rule> + <include state="_parenth_helper"/> + </rule> + </state> + <state name="objects"> + <rule pattern="\["> + <token type="Text"/> + <push state="blockvariables"/> + </rule> + <rule pattern="\]"> + <token type="Text"/> + <push state="afterobject"/> + </rule> + <rule pattern="\b(self|super|true|false|nil|thisContext)\b"> + <token type="NameBuiltinPseudo"/> + <push state="afterobject"/> + </rule> + <rule pattern="\b[A-Z]\w*(?!:)\b"> + <token type="NameClass"/> + <push state="afterobject"/> + </rule> + <rule pattern="\b[a-z]\w*(?!:)\b"> + <token type="NameVariable"/> + <push state="afterobject"/> + </rule> + <rule pattern="#("(""|[^"])*"|[-+*/\\~<>=|&!?,@%]+|[\w:]+)"> + <token type="LiteralStringSymbol"/> + <push state="afterobject"/> + </rule> + <rule> + <include state="literals"/> + </rule> + </state> + <state name="afterobject"> + <rule pattern="! !$"> + <token type="Keyword"/> + <pop depth="1"/> + </rule> + <rule> + <include state="whitespaces"/> + </rule> + <rule pattern="\b(ifTrue:|ifFalse:|whileTrue:|whileFalse:|timesRepeat:)"> + <token type="NameBuiltin"/> + <pop depth="1"/> + </rule> + <rule pattern="\b(new\b(?!:))"> + <token type="NameBuiltin"/> + </rule> + <rule pattern=":=|_"> + <token type="Operator"/> + <pop depth="1"/> + </rule> + <rule pattern="\b[a-zA-Z]+\w*:"> + <token type="NameFunction"/> + <pop depth="1"/> + </rule> + <rule pattern="\b[a-zA-Z]+\w*"> + <token type="NameFunction"/> + </rule> + <rule pattern="\w+:?|[-+*/\\~<>=|&!?,@%]+"> + <token type="NameFunction"/> + <pop depth="1"/> + </rule> + <rule pattern="\."> + <token type="Punctuation"/> + <pop depth="1"/> + </rule> + <rule pattern=";"> + <token type="Punctuation"/> + </rule> + <rule pattern="[\])}]"> + <token type="Text"/> + </rule> + <rule pattern="[\[({]"> + <token type="Text"/> + <pop depth="1"/> + </rule> + </state> + <state name="literals"> + <rule pattern="'(''|[^'])*'"> + <token type="LiteralString"/> + <push state="afterobject"/> + </rule> + <rule pattern="\$."> + <token type="LiteralStringChar"/> + <push state="afterobject"/> + </rule> + <rule pattern="#\("> + <token type="LiteralStringSymbol"/> + <push state="parenth"/> + </rule> + <rule pattern="\)"> + <token type="Text"/> + <push state="afterobject"/> + </rule> + <rule pattern="(\d+r)?-?\d+(\.\d+)?(e-?\d+)?"> + <token type="LiteralNumber"/> + <push state="afterobject"/> + </rule> + </state> + <state name="root"> + <rule pattern="(<)(\w+:)(.*?)(>)"> + <bygroups> + <token type="Text"/> + <token type="Keyword"/> + <token type="Text"/> + <token type="Text"/> + </bygroups> + </rule> + <rule> + <include state="squeak fileout"/> + </rule> + <rule> + <include state="whitespaces"/> + </rule> + <rule> + <include state="method definition"/> + </rule> + <rule pattern="(\|)([\w\s]*)(\|)"> + <bygroups> + <token type="Operator"/> + <token type="NameVariable"/> + <token type="Operator"/> + </bygroups> + </rule> + <rule> + <include state="objects"/> + </rule> + <rule pattern="\^|:=|_"> + <token type="Operator"/> + </rule> + <rule pattern="[\]({}.;!]"> + <token type="Text"/> + </rule> + </state> + <state name="_parenth_helper"> + <rule> + <include state="whitespaces"/> + </rule> + <rule pattern="(\d+r)?-?\d+(\.\d+)?(e-?\d+)?"> + <token type="LiteralNumber"/> + </rule> + <rule pattern="[-+*/\\~<>=|&#!?,@%\w:]+"> + <token type="LiteralStringSymbol"/> + </rule> + <rule pattern="'(''|[^'])*'"> + <token type="LiteralString"/> + </rule> + <rule pattern="\$."> + <token type="LiteralStringChar"/> + </rule> + <rule pattern="#*\("> + <token type="LiteralStringSymbol"/> + <push state="inner_parenth"/> + </rule> + </state> + <state name="parenth"> + <rule pattern="\)"> + <token type="LiteralStringSymbol"/> + <push state="root" state="afterobject"/> + </rule> + <rule> + <include state="_parenth_helper"/> + </rule> + </state> + <state name="whitespaces"> + <rule pattern="\s+"> + <token type="Text"/> + </rule> + <rule pattern=""(""|[^"])*""> + <token type="Comment"/> + </rule> + </state> + <state name="squeak fileout"> + <rule pattern="^"(""|[^"])*"!"> + <token type="Keyword"/> + </rule> + <rule pattern="^'(''|[^'])*'!"> + <token type="Keyword"/> + </rule> + <rule pattern="^(!)(\w+)( commentStamp: )(.*?)( prior: .*?!\n)(.*?)(!)"> + <bygroups> + <token type="Keyword"/> + <token type="NameClass"/> + <token type="Keyword"/> + <token type="LiteralString"/> + <token type="Keyword"/> + <token type="Text"/> + <token type="Keyword"/> + </bygroups> + </rule> + <rule pattern="^(!)(\w+(?: class)?)( methodsFor: )('(?:''|[^'])*')(.*?!)"> + <bygroups> + <token type="Keyword"/> + <token type="NameClass"/> + <token type="Keyword"/> + <token type="LiteralString"/> + <token type="Keyword"/> + </bygroups> + </rule> + <rule pattern="^(\w+)( subclass: )(#\w+)(\s+instanceVariableNames: )(.*?)(\s+classVariableNames: )(.*?)(\s+poolDictionaries: )(.*?)(\s+category: )(.*?)(!)"> + <bygroups> + <token type="NameClass"/> + <token type="Keyword"/> + <token type="LiteralStringSymbol"/> + <token type="Keyword"/> + <token type="LiteralString"/> + <token type="Keyword"/> + <token type="LiteralString"/> + <token type="Keyword"/> + <token type="LiteralString"/> + <token type="Keyword"/> + <token type="LiteralString"/> + <token type="Keyword"/> + </bygroups> + </rule> + <rule pattern="^(\w+(?: class)?)(\s+instanceVariableNames: )(.*?)(!)"> + <bygroups> + <token type="NameClass"/> + <token type="Keyword"/> + <token type="LiteralString"/> + <token type="Keyword"/> + </bygroups> + </rule> + <rule pattern="(!\n)(\].*)(! !)$"> + <bygroups> + <token type="Keyword"/> + <token type="Text"/> + <token type="Keyword"/> + </bygroups> + </rule> + <rule pattern="! !$"> + <token type="Keyword"/> + </rule> + </state> + <state name="method definition"> + <rule pattern="([a-zA-Z]+\w*:)(\s*)(\w+)"> + <bygroups> + <token type="NameFunction"/> + <token type="Text"/> + <token type="NameVariable"/> + </bygroups> + </rule> + <rule pattern="^(\b[a-zA-Z]+\w*\b)(\s*)$"> + <bygroups> + <token type="NameFunction"/> + <token type="Text"/> + </bygroups> + </rule> + <rule pattern="^([-+*/\\~<>=|&!?,@%]+)(\s*)(\w+)(\s*)$"> + <bygroups> + <token type="NameFunction"/> + <token type="Text"/> + <token type="NameVariable"/> + <token type="Text"/> + </bygroups> + </rule> + </state> + <state name="blockvariables"> + <rule> + <include state="whitespaces"/> + </rule> + <rule pattern="(:)(\s*)(\w+)"> + <bygroups> + <token type="Operator"/> + <token type="Text"/> + <token type="NameVariable"/> + </bygroups> + </rule> + <rule pattern="\|"> + <token type="Operator"/> + <pop depth="1"/> + </rule> + <rule> + <pop depth="1"/> + </rule> + </state> + </rules> +</lexer>
\ No newline at end of file |
