var codeql_tmLanguage = {name:"codeql",scopeName:"source.ql",fileTypes:["ql","qll"],uuid:"7F6926BF-1C6C-468A-A7AA-215EBAC86A4E",patterns:[{include:"#module-member"}],repository:{"id-character":{match:"(?x)[0-9A-Za-z_]"},"end-of-id":{match:"(?x)(?!(?:[0-9A-Za-z_]))"},"simple-id":{match:"(?x)\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"},"lower-id":{match:"(?x)\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"},"upper-id":{match:"(?x)\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"},"at-lower-id":{match:"(?x)@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"},"comment-start":{match:"(?x)// | /\\*"},"whitespace-or-comment-start":{match:"(?x)\\s | $ | (?:// | /\\*)"},"non-context-sensitive":{patterns:[{include:"#comment"},{include:"#literal"},{include:"#operator-or-punctuation"},{include:"#keyword"}]},"relational-operator":{match:"(?x)<=|<|>=|>",name:"keyword.operator.relational.ql"},"comparison-operator":{match:"(?x)=|\\!\\=",name:"keyword.operator.comparison.ql"},"arithmetic-operator":{match:"(?x)\\+|-|\\*|/|%",name:"keyword.operator.arithmetic.ql"},comma:{match:"(?x),",name:"punctuation.separator.comma.ql"},semicolon:{match:"(?x);",name:"punctuation.separator.statement.ql"},dot:{match:"(?x)\\.",name:"punctuation.accessor.ql"},dotdot:{match:"(?x)\\.\\.",name:"punctuation.operator.range.ql"},pipe:{match:"(?x)\\|",name:"punctuation.separator.pipe.ql"},"open-paren":{match:"(?x)\\(",name:"punctuation.parenthesis.open.ql"},"close-paren":{match:"(?x)\\)",name:"punctuation.parenthesis.close.ql"},"open-brace":{match:"(?x)\\{",name:"punctuation.curlybrace.open.ql"},"close-brace":{match:"(?x)\\}",name:"punctuation.curlybrace.close.ql"},"open-bracket":{match:"(?x)\\[",name:"punctuation.squarebracket.open.ql"},"close-bracket":{match:"(?x)\\]",name:"punctuation.squarebracket.close.ql"},"operator-or-punctuation":{patterns:[{include:"#relational-operator"},{include:"#comparison-operator"},{include:"#arithmetic-operator"},{include:"#comma"},{include:"#semicolon"},{include:"#dot"},{include:"#dotdot"},{include:"#pipe"},{include:"#open-paren"},{include:"#close-paren"},{include:"#open-brace"},{include:"#close-brace"},{include:"#open-bracket"},{include:"#close-bracket"}]},"dont-care":{match:"(?x)\\b(?:_)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.dont-care.ql"},and:{match:"(?x)\\b(?:and)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.and.ql"},any:{match:"(?x)\\b(?:any)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.quantifier.any.ql"},as:{match:"(?x)\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.as.ql"},asc:{match:"(?x)\\b(?:asc)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.order.asc.ql"},avg:{match:"(?x)\\b(?:avg)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.avg.ql"},boolean:{match:"(?x)\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.boolean.ql"},by:{match:"(?x)\\b(?:by)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.order.by.ql"},"class":{match:"(?x)\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.class.ql"},concat:{match:"(?x)\\b(?:concat)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.concat.ql"},count:{match:"(?x)\\b(?:count)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.count.ql"},date:{match:"(?x)\\b(?:date)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.date.ql"},desc:{match:"(?x)\\b(?:desc)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.order.desc.ql"},"else":{match:"(?x)\\b(?:else)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.else.ql"},exists:{match:"(?x)\\b(?:exists)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.quantifier.exists.ql"},"extends":{match:"(?x)\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.extends.ql"},"false":{match:"(?x)\\b(?:false)(?:(?!(?:[0-9A-Za-z_])))",name:"constant.language.boolean.false.ql"},float:{match:"(?x)\\b(?:float)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.float.ql"},forall:{match:"(?x)\\b(?:forall)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.quantifier.forall.ql"},forex:{match:"(?x)\\b(?:forex)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.quantifier.forex.ql"},from:{match:"(?x)\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.from.ql"},"if":{match:"(?x)\\b(?:if)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.if.ql"},implies:{match:"(?x)\\b(?:implies)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.implies.ql"},"import":{match:"(?x)\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.import.ql"},"in":{match:"(?x)\\b(?:in)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.in.ql"},"instanceof":{match:"(?x)\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.instanceof.ql"},int:{match:"(?x)\\b(?:int)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.int.ql"},max:{match:"(?x)\\b(?:max)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.max.ql"},min:{match:"(?x)\\b(?:min)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.min.ql"},module:{match:"(?x)\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.module.ql"},newtype:{match:"(?x)\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.newtype.ql"},none:{match:"(?x)\\b(?:none)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.quantifier.none.ql"},not:{match:"(?x)\\b(?:not)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.not.ql"},or:{match:"(?x)\\b(?:or)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.or.ql"},order:{match:"(?x)\\b(?:order)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.order.order.ql"},predicate:{match:"(?x)\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.predicate.ql"},rank:{match:"(?x)\\b(?:rank)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.rank.ql"},result:{match:"(?x)\\b(?:result)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.result.ql"},select:{match:"(?x)\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.query.select.ql"},strictconcat:{match:"(?x)\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.strictconcat.ql"},strictcount:{match:"(?x)\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.strictcount.ql"},strictsum:{match:"(?x)\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.strictsum.ql"},string:{match:"(?x)\\b(?:string)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.string.ql"},sum:{match:"(?x)\\b(?:sum)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.sum.ql"},"super":{match:"(?x)\\b(?:super)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.super.ql"},then:{match:"(?x)\\b(?:then)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.then.ql"},"this":{match:"(?x)\\b(?:this)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.this.ql"},"true":{match:"(?x)\\b(?:true)(?:(?!(?:[0-9A-Za-z_])))",name:"constant.language.boolean.true.ql"},unique:{match:"(?x)\\b(?:unique)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.unique.ql"},where:{match:"(?x)\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.query.where.ql"},keyword:{patterns:[{include:"#dont-care"},{include:"#and"},{include:"#any"},{include:"#as"},{include:"#asc"},{include:"#avg"},{include:"#boolean"},{include:"#by"},{include:"#class"},{include:"#concat"},{include:"#count"},{include:"#date"},{include:"#desc"},{include:"#else"},{include:"#exists"},{include:"#extends"},{include:"#false"},{include:"#float"},{include:"#forall"},{include:"#forex"},{include:"#from"},{include:"#if"},{include:"#implies"},{include:"#import"},{include:"#in"},{include:"#instanceof"},{include:"#int"},{include:"#max"},{include:"#min"},{include:"#module"},{include:"#newtype"},{include:"#none"},{include:"#not"},{include:"#or"},{include:"#order"},{include:"#predicate"},{include:"#rank"},{include:"#result"},{include:"#select"},{include:"#strictconcat"},{include:"#strictcount"},{include:"#strictsum"},{include:"#string"},{include:"#sum"},{include:"#super"},{include:"#then"},{include:"#this"},{include:"#true"},{include:"#unique"},{include:"#where"}]},"predicate-start-keyword":{patterns:[{include:"#boolean"},{include:"#date"},{include:"#float"},{include:"#int"},{include:"#predicate"},{include:"#string"}]},abstract:{match:"(?x)\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.abstract.ql"},additional:{match:"(?x)\\b(?:additional)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.additional.ql"},bindingset:{match:"(?x)\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.bindingset.ql"},cached:{match:"(?x)\\b(?:cached)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.cached.ql"},"default":{match:"(?x)\\b(?:default)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.default.ql"},deprecated:{match:"(?x)\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.deprecated.ql"},external:{match:"(?x)\\b(?:external)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.external.ql"},final:{match:"(?x)\\b(?:final)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.final.ql"},language:{match:"(?x)\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.language.ql"},library:{match:"(?x)\\b(?:library)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.library.ql"},override:{match:"(?x)\\b(?:override)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.override.ql"},pragma:{match:"(?x)\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.pragma.ql"},"private":{match:"(?x)\\b(?:private)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.private.ql"},query:{match:"(?x)\\b(?:query)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.query.ql"},signature:{match:"(?x)\\b(?:signature)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.signature.ql"},transient:{match:"(?x)\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.transient.ql"},"annotation-keyword":{patterns:[{include:"#abstract"},{include:"#additional"},{include:"#bindingset"},{include:"#cached"},{include:"#default"},{include:"#deprecated"},{include:"#external"},{include:"#final"},{include:"#language"},{include:"#library"},{include:"#override"},{include:"#pragma"},{include:"#private"},{include:"#query"},{include:"#signature"},{include:"#transient"}]},"implements":{match:"(?x)\\b(?:implements)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.implements.ql"},comment:{patterns:[{begin:"(?x)/\\*\\*",end:"(?x)\\*/",name:"comment.block.documentation.ql",patterns:[{begin:"(?x)(?<=/\\*\\*)([^*]|\\*(?!/))*$","while":"(?x)(^|\\G)\\s*([^*]|\\*(?!/))(?=([^*]|[*](?!/))*$)",patterns:[{match:"(?x)\\G\\s* (@\\S+)",name:"keyword.tag.ql"}]}]},{begin:"(?x)/\\*",end:"(?x)\\*/",name:"comment.block.ql"},{match:"(?x)//.*$",name:"comment.line.double-slash.ql"}]},"module-member":{patterns:[{include:"#import-directive"},{include:"#import-as-clause"},{include:"#module-declaration"},{include:"#newtype-declaration"},{include:"#newtype-branch-name-with-prefix"},{include:"#predicate-parameter-list"},{include:"#predicate-body"},{include:"#class-declaration"},{include:"#select-clause"},{include:"#predicate-or-field-declaration"},{include:"#non-context-sensitive"},{include:"#annotation"}]},"import-directive":{end:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?!\\s*(\\.|\\:\\:))",endCaptures:{"0":{name:"entity.name.type.namespace.ql"}},name:"meta.block.import-directive.ql",patterns:[{include:"#non-context-sensitive"},{match:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.namespace.ql"}],begin:"(?x)((?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{"1":{patterns:[{include:"#import"}]}}},"end-of-as-clause":{match:"(?x)(?: (?<=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?