1package a 2 3import ( 4 . "github.com/alecthomas/chroma" // nolint 5 "github.com/alecthomas/chroma/lexers/internal" 6) 7 8// Apl lexer. 9var Apl = internal.Register(MustNewLazyLexer( 10 &Config{ 11 Name: "APL", 12 Aliases: []string{"apl"}, 13 Filenames: []string{"*.apl"}, 14 MimeTypes: []string{}, 15 }, 16 aplRules, 17)) 18 19func aplRules() Rules { 20 return Rules{ 21 "root": { 22 {`\s+`, Text, nil}, 23 {`[⍝#].*$`, CommentSingle, nil}, 24 {`\'((\'\')|[^\'])*\'`, LiteralStringSingle, nil}, 25 {`"(("")|[^"])*"`, LiteralStringDouble, nil}, 26 {`[⋄◇()]`, Punctuation, nil}, 27 {`[\[\];]`, LiteralStringRegex, nil}, 28 {`⎕[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*`, NameFunction, nil}, 29 {`[A-Za-zΔ∆⍙_][A-Za-zΔ∆⍙_¯0-9]*`, NameVariable, nil}, 30 {`¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞)([Jj]¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞))?`, LiteralNumber, nil}, 31 {`[\.\\/⌿⍀¨⍣⍨⍠⍤∘⍥@⌺⌶⍢]`, NameAttribute, nil}, 32 {`[+\-×÷⌈⌊∣|⍳?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⌸⍯↗⊆⍸]`, Operator, nil}, 33 {`⍬`, NameConstant, nil}, 34 {`[⎕⍞]`, NameVariableGlobal, nil}, 35 {`[←→]`, KeywordDeclaration, nil}, 36 {`[⍺⍵⍶⍹∇:]`, NameBuiltinPseudo, nil}, 37 {`[{}]`, KeywordType, nil}, 38 }, 39 } 40} 41