diff --git a/syntaxes/ql.tmLanguage.json b/syntaxes/ql.tmLanguage.json index 31df7745d..66e1cc8ec 100644 --- a/syntaxes/ql.tmLanguage.json +++ b/syntaxes/ql.tmLanguage.json @@ -1,1488 +1,1496 @@ -{ - "name": "QL", - "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" - }, - "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" - }, - "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": "#bindingset" - }, - { - "include": "#cached" - }, - { - "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": [ - { - "include": "text.html.markdown#fenced_code_block" - }, - { - "include": "text.html.markdown#lists" - }, - { - "include": "text.html.markdown#inline" - }, - { - "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_])) (?=|>", + "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_])) (?