package lexers import ( . "github.com/alecthomas/chroma" // nolint ) // Pig lexer. var Pig = Register(MustNewLexer( &Config{ Name: "Pig", Aliases: []string{"pig"}, Filenames: []string{"*.pig"}, MimeTypes: []string{"text/x-pig"}, CaseInsensitive: true, }, Rules{ "root": { {`\s+`, Text, nil}, {`--.*`, Comment, nil}, {`/\*[\w\W]*?\*/`, CommentMultiline, nil}, {`\\\n`, Text, nil}, {`\\`, Text, nil}, {`\'(?:\\[ntbrf\\\']|\\u[0-9a-f]{4}|[^\'\\\n\r])*\'`, LiteralString, nil}, Include("keywords"), Include("types"), Include("builtins"), Include("punct"), Include("operators"), {`[0-9]*\.[0-9]+(e[0-9]+)?[fd]?`, LiteralNumberFloat, nil}, {`0x[0-9a-f]+`, LiteralNumberHex, nil}, {`[0-9]+L?`, LiteralNumberInteger, nil}, {`\n`, Text, nil}, {`([a-z_]\w*)(\s*)(\()`, ByGroups(NameFunction, Text, Punctuation), nil}, {`[()#:]`, Text, nil}, {`[^(:#\'")\s]+`, Text, nil}, {`\S+\s+`, Text, nil}, }, "keywords": { {`(assert|and|any|all|arrange|as|asc|bag|by|cache|CASE|cat|cd|cp|%declare|%default|define|dense|desc|describe|distinct|du|dump|eval|exex|explain|filter|flatten|foreach|full|generate|group|help|if|illustrate|import|inner|input|into|is|join|kill|left|limit|load|ls|map|matches|mkdir|mv|not|null|onschema|or|order|outer|output|parallel|pig|pwd|quit|register|returns|right|rm|rmf|rollup|run|sample|set|ship|split|stderr|stdin|stdout|store|stream|through|union|using|void)\b`, Keyword, nil}, }, "builtins": { {`(AVG|BinStorage|cogroup|CONCAT|copyFromLocal|copyToLocal|COUNT|cross|DIFF|MAX|MIN|PigDump|PigStorage|SIZE|SUM|TextLoader|TOKENIZE)\b`, NameBuiltin, nil}, }, "types": { {`(bytearray|BIGINTEGER|BIGDECIMAL|chararray|datetime|double|float|int|long|tuple)\b`, KeywordType, nil}, }, "punct": { {`[;(){}\[\]]`, Punctuation, nil}, }, "operators": { {`[#=,./%+\-?]`, Operator, nil}, {`(eq|gt|lt|gte|lte|neq|matches)\b`, Operator, nil}, {`(==|<=|<|>=|>|!=)`, Operator, nil}, }, }, ))