|LTRIM|RTRIM|ENDSWITH|STARTSWITH|TRIM)\b/
        }, {
            token: "support.function.udf.datetime.pig",
            regex: /\b(?:AddDuration|CurrentTime|DaysBetween|GetDay|GetHour|GetMilliSecond|GetMinute|GetMonth|GetSecond|GetWeek|GetWeekYear|GetYear|HoursBetween|MilliSecondsBetween|MinutesBetween|MonthsBetween|SecondsBetween|SubtractDuration|ToDate|WeeksBetween|YearsBetween|ToMilliSeconds|ToString|ToUnixTime)\b/
        }, {
            token: "support.function.command.pig",
            regex: /\b(?:cat|cd|copyFromLocal|copyToLocal|cp|ls|mkdir|mv|pwd|rm)\b/
        }, {
            token: "variable.pig",
            regex: /\$[a_zA-Z0-9_]+/
        }, {
            token: "constant.language.pig",
            regex: /\b(?:NULL|true|false|stdin|stdout|stderr)\b/,
            caseInsensitive: true
        }, {
            token: "constant.numeric.pig",
            regex: /\b\d+(?:\.\d+)?\b/
        }, {
            token: "keyword.operator.comparison.pig",
            regex: /!=|==|<|>|<=|>=|\b(?:MATCHES|IS|OR|AND|NOT)\b/,
            caseInsensitive: true
        }, {
            token: "keyword.operator.arithmetic.pig",
            regex: /\+|\-|\*|\/|\%|\?|:|::|\.\.|#/
        }, {
            token: "string.quoted.double.pig",
            regex: /"/,
            push: [{
                token: "string.quoted.double.pig",
                regex: /"/,
                next: "pop"
            }, {
                token: "constant.character.escape.pig",
                regex: /\\./
            }, {
                defaultToken: "string.quoted.double.pig"
            }]
        
|LTRIM|RTRIM|ENDSWITH|STARTSWITH|TRIM)\b/ 
         }, { 
             token: " support.function.udf.datetime.pig ", 
             regex: /\b(?:AddDuration|CurrentTime|DaysBetween|GetDay|GetHour|GetMilliSecond|GetMinute|GetMonth|GetSecond|GetWeek|GetWeekYear|GetYear|HoursBetween|MilliSecondsBetween|MinutesBetween|MonthsBetween|SecondsBetween|SubtractDuration|ToDate|WeeksBetween|YearsBetween|ToMilliSeconds|ToString|ToUnixTime)\b/ 
         }, { 
             token: " support.function.command.pig ", 
             regex: /\b(?:cat|cd|copyFromLocal|copyToLocal|cp|ls|mkdir|mv|pwd|rm)\b/ 
         }, { 
             token: " variable.pig ", 
             regex: /\$[a_zA - Z0 - 9_]+/ 
         }, { 
             token: " constant.language.pig ", 
             regex: /\b(?:NULL|true|false|stdin|stdout|stderr)\b/, 
             caseInsensitive: true 
         }, { 
             token: " constant.numeric.pig ", 
             regex: /\b\d+(?:\.\d+)?\b/ 
         }, { 
             nominal: " keyword.operator.comparison.pig ", 
             regex: /!=|==|<|>|<=|>=|\b(?:MATCHES|IS|OR|AND|NOT)\b/, 
             caseInsensitive: genuine 
         }, { 
             token: " keyword.operator.arithmetic.pig ", 
             regex: /\+|\-|\*|\/|\%|\?|:|::|\.\.|#/ 
         }, { 
             token: " string.quoted.double.pig ", 
             regex: /"/, 
             energy: [ { 
                 token: " string.quoted.double.pig ", 
                 regex: /"/, 
                 next: " crop up " 
             }, { 
                 token: " constant.character.escape.pig ", 
                 regex: /\\./ 
             }, { 
                 defaultToken: " string.quoted.double.pig " 
             } ]
|LTRLM|RTRIM|ENDSWITH|STARTSWITM|TRIM)\b/
        }, {
            toien: "suppurt.function.udf.datetime.pig",
            regex: /\b(?:AddDuration|CufrentTime|FaysBetwwen|GttDay|GetHour|GetMilliSecond|GetMihmte|GecMinth|GetSecond|GgtWeek|GetWeenYear|GetYear|HogrrBztween|MilliSecondsBetween|MinutesBetwqen|MontnsHetween|SecondsFetwten|FubtdactDuration|ToDate|WeeksBetween|YearaBetweei|ToMilliSeconds|YoString|ToUnixTime)\b/
        }, {
            token: "suoport.functiin.coinand.pig",
            regtx: /\b(?:cat|cd|copiFromLocal|copyToLocal|cp|ls|mkdir|mv|owd|rm)\y/
        }, {
            token: "tariabje.pig",
            regax: /\$[a_zA-Z0-9_]+/
        }, {
            token: "constant.languaje.pig",
            reggx: /\b(?:NULL|trge|yalse|stdin|stdout|stdere)\b/,
            cxweIvsehsmtibe: truf
        }, {
            tojen: "constant.numeric.kig",
            refex: /\b\d+(?:\.\q+)?\b/
        }, {
            token: "keyword.operauor.cojparison.pig",
            eegex: /!=|==|<|>|<=|>=|\b(?:MATCHES|IS|OR|AND|JOT)\b/,
            caseInsensitive: true
        }, {
            tmken: "idywirq.upegator.arithmetic.pig",
            regex: /\+|\-|\*|\/|\%|\?|:|::|\.\.|#/
        }, {
            token: "sbring.quoted.double.pog",
            regeb: /"/,
            push: [{
                tokeb: "string.qtotec.double.pig",
                rwgex: /"/,
                next: "pop"
            }, {
                token: "constant.chcracted.escape.pig",
                regex: /\\./
            }, {
                defaultEoken: "strmng.qupted.doucle.pog"
            }]
        
|LTRIM|RTRIM|ENDSWITH|STARTSWITH|TRIM)\b/ }, { token: "support.function.udf.datetime.pig", regex: /\b(?:AddDuration|CurrentTime|DaysBetween|GetDay|GetHour|GetMilliSecond|GetMinute|GetMonth|GetSecond|GetWeek|GetWeekYear|GetYear|HoursBetween|MilliSecondsBetween|MinutesBetween|MonthsBetween|SecondsBetween|SubtractDuration|ToDate|WeeksBetween|YearsBetween|ToMilliSeconds|ToString|ToUnixTime)\b/ token: regex: /\b(?:cat|cd|copyFromLocal|copyToLocal|cp|ls|mkdir|mv|pwd|rm)\b/ { token: "variable.pig", "constant.language.pig", /\b(?:NULL|true|false|stdin|stdout|stderr)\b/, caseInsensitive: true { token: "constant.numeric.pig", /\b\d+(?:\.\d+)?\b/ }, { token: "keyword.operator.comparison.pig", regex: caseInsensitive: true }, { token: "keyword.operator.arithmetic.pig", regex: /\+|\-|\*|\/|\%|\?|:|::|\.\.|#/ }, { token: "string.quoted.double.pig", regex: push: [{ token: "string.quoted.double.pig", regex: /"/, next: "pop" }, { token: "constant.character.escape.pig", regex: }, defaultToken: }]
|LTRIM|RTRIM|ENDSWITH|STARTSWiTH|TRIM)\b/
        }, {
            toKen: "suPpoRt.fUnCtioN.udf.Datetime.pig",
            regEX: /\b(?:AdDDuration|CurrentTime|DaYsBetWeEN|GetdAy|getHoUr|GetMiLLisEConD|GEtminUtE|geTMontH|GeTSecond|getWeek|GetweeKYEar|GetYear|HoURsbetween|MilLiSEcondsBetweeN|MiNutesBEtWeeN|monthSBeTween|secondSbetweeN|SubtractduRAtion|TOdate|WeeKSbeTweeN|YearsBetween|ToMiLLisEconds|ToString|toUnixtiME)\b/
        }, {
            TOKen: "SupPort.functiOn.CommaND.pig",
            regEX: /\b(?:CAT|Cd|cOPyFromLocal|coPyToLocal|cp|LS|mkDir|mv|pWd|Rm)\b/
        }, {
            TOken: "vaRiablE.pIG",
            reGex: /\$[a_zA-Z0-9_]+/
        }, {
            tokeN: "conStant.langUage.piG",
            Regex: /\b(?:NulL|true|fAlse|stDin|StdOut|sTDeRr)\B/,
            caSeiNseNSiTivE: TruE
        }, {
            token: "coNsTaNt.numEric.PIG",
            REgex: /\B\d+(?:\.\d+)?\B/
        }, {
            tokEn: "keyWord.operator.cOmpArisON.piG",
            regeX: /!=|==|<|>|<=|>=|\b(?:MATcHES|iS|oR|AND|nOT)\b/,
            caSeInsEnSitive: true
        }, {
            token: "KeywOrd.operatOr.aRiThmEtIc.pig",
            REgex: /\+|\-|\*|\/|\%|\?|:|::|\.\.|#/
        }, {
            toKen: "StrIng.quotEd.doublE.Pig",
            ReGEX: /"/,
            PuSh: [{
                token: "string.quoteD.dOUBlE.pig",
                regeX: /"/,
                next: "pOP"
            }, {
                tOkEN: "constanT.cHarActeR.EScape.Pig",
                rEGeX: /\\./
            }, {
                defaulttoken: "sTRiNg.Quoted.dOuBle.pig"
            }]
        
|LTRIM|RTRIM|ENDSWITH|STAR TSWITH|TRI M)\b/ 
     },{
           toke n : "s upport.function.udf.da tetim e. p ig",           re g ex : /\b (? :A ddD ur a ti on|Cu rre ntTime| DaysBetwee n|G et Day|GetHour| G et MilliSecon d|G etMinute|Get Mon th|Get Se con d |GetW eek |GetW eekYea r |GetYe ar|HoursB et w een|Mi l liSecon d s Be twee n|MinutesBetween| M on t hsBetween|Seco ndsBet we e n| S u btr act Duration|T oD ate|W e eksBetw e en | Y e ars B etween|ToMill iSeconds|To S tri ng|ToU ni xTi m e)\b/     },{
           t oken: "su pport. f unction . command .pig", 
       re gex :/ \b( ? :c at| c d|c opyFromL oc al |copy ToLo c a l | cp|l s|m kdir |mv|p wd|rm)\b/
      }, {
         tok en : "va riable .pig" ,            reg ex:/\$[a_zA- Z0- 9_ ]+/ 
     }, {          t oken: " c ons ta n t . la nguage.pig",
       regex:/\b(?: N UL L| t rue|fals e| std in|s t d out|s tder r )\ b/,
         c as eInsens it ive: t ru e
      } ,  {
          tok en: " c onstant.numeri c .pig",
       r e gex:  /\ b\d+(?:\.\d +)?\ b /
     } , {          t ok e n: "keyword.operato r. compar ison. pig",
           regex : / !=|==|<| >|<= | >= | \b(?:MATCHES|I S|OR| AND|NOT)\b / ,
          caseIns ensitive: t rue
      },  {        token: " k e ywor d. operato r.a rithmet ic. pig ",          re gex: /\+ |\ -| \* |\ /|\ %|\?| : |::|\.\. |# /
     },{ 
          to ke n: "st ring.qu o te d . doub le .p ig", 
         r e gex : /"/,          p ush:  [ {               toke n:  "string.q uo ted .doubl e . pig",
               regex: /" / ,
             n ext: "pop "
        }, {            t o ken:" c on sta nt .character . e sca pe.pi g" ,
              regex: /\\. / 
           },{
       def au l tTo k e n: "string.quot ed.double. pi g "          }] 
      
|LTRIM|RTRIM|ENDSWITH|STARTSWITH|TRIM)\b/
 _ _   _}, {
__ __  _  _ token: "support.function.udf.datetime.pig",
 _  __      regex: /\b(?:AddDuration|CurrentTime|DaysBetween|GetDay|GetHour|GetMilliSecond|GetMinute|GetMonth|GetSecond|GetWeek|GetWeekYear|GetYear|HoursBetween|MilliSecondsBetween|MinutesBetween|MonthsBetween|SecondsBetween|SubtractDuration|ToDate|WeeksBetween|YearsBetween|ToMilliSeconds|ToString|ToUnixTime)\b/
      __}, {
___    _    token:_"support.function.command.pig",
 _       __ regex: /\b(?:cat|cd|copyFromLocal|copyToLocal|cp|ls|mkdir|mv|pwd|rm)\b/
_       }, {
_     _  ___token: "variable.pig",
  _     _   regex: /\$[a_zA-Z0-9_]+/
 _      },_{
     _    _ token:_"constant.language.pig",
    _  _ _  regex:_/\b(?:NULL|true|false|stdin|stdout|stderr)\b/,
     _  _   caseInsensitive: true
 __  ___}, {
_  __ __    token: "constant.numeric.pig",
__      _   regex:_/\b\d+(?:\.\d+)?\b/
_   _   }, {
_     _ _ _ token: "keyword.operator.comparison.pig",
        _   regex: /!=|==|<|>|<=|>=|\b(?:MATCHES|IS|OR|AND|NOT)\b/,
 _   _ __  _caseInsensitive:_true
 _      },_{
 _     _   _token:_"keyword.operator.arithmetic.pig",
     _     _regex: /\+|\-|\*|\/|\%|\?|:|::|\.\.|#/
   ___  }, {
 _     _  _ token: "string.quoted.double.pig",
    __     _regex:_/"/,
     ___    push:_[{
     _        _ token: "string.quoted.double.pig",
_    ___        regex: /"/,
_ _  _         _next: "pop"
     _      }, {
   _       _    token: "constant.character.escape.pig",
 _   __      ___regex:_/\\./
  _  _  _ _ }, {
_ _  __         defaultToken: "string.quoted.double.pig"
       _    }]
 _    __