package lexers import ( . "github.com/alecthomas/chroma" // nolint ) // Cfstatement lexer. var Cfstatement = Register(MustNewLexer( &Config{ Name: "cfstatement", Aliases: []string{"cfs"}, Filenames: []string{}, MimeTypes: []string{}, NotMultiline: true, CaseInsensitive: true, }, Rules{ "root": { {`//.*?\n`, CommentSingle, nil}, {`/\*(?:.|\n)*?\*/`, CommentMultiline, nil}, {`\+\+|--`, Operator, nil}, {`[-+*/^&=!]`, Operator, nil}, {`<=|>=|<|>|==`, Operator, nil}, {`mod\b`, Operator, nil}, {`(eq|lt|gt|lte|gte|not|is|and|or)\b`, Operator, nil}, {`\|\||&&`, Operator, nil}, {`\?`, Operator, nil}, {`"`, LiteralStringDouble, Push("string")}, {`'.*?'`, LiteralStringSingle, nil}, {`\d+`, LiteralNumber, nil}, {`(if|else|len|var|xml|default|break|switch|component|property|function|do|try|catch|in|continue|for|return|while|required|any|array|binary|boolean|component|date|guid|numeric|query|string|struct|uuid|case)\b`, Keyword, nil}, {`(true|false|null)\b`, KeywordConstant, nil}, {`(application|session|client|cookie|super|this|variables|arguments)\b`, NameConstant, nil}, {`([a-z_$][\w.]*)(\s*)(\()`, ByGroups(NameFunction, Text, Punctuation), nil}, {`[a-z_$][\w.]*`, NameVariable, nil}, {`[()\[\]{};:,.\\]`, Punctuation, nil}, {`\s+`, Text, nil}, }, "string": { {`""`, LiteralStringDouble, nil}, {`#.+?#`, LiteralStringInterpol, nil}, {`[^"#]+`, LiteralStringDouble, nil}, {`#`, LiteralStringDouble, nil}, {`"`, LiteralStringDouble, Pop(1)}, }, }, ))