const lang = Object.freeze({ "displayName": "Prolog", "fileTypes": ["pl", "pro"], "name": "prolog", "patterns": [{ "include": "#comments" }, { "begin": "(?<=:-)\\s*", "end": "(\\.)", "endCaptures": { "1": { "name": "keyword.control.clause.bodyend.prolog" } }, "name": "meta.clause.body.prolog", "patterns": [{ "include": "#comments" }, { "include": "#builtin" }, { "include": "#controlandkeywords" }, { "include": "#atom" }, { "include": "#variable" }, { "include": "#constants" }, { "match": ".", "name": "meta.clause.body.prolog" }] }, { "begin": "^\\s*([a-z][a-zA-Z0-9_]*)(\\(?)(?=.*:-.*)", "beginCaptures": { "1": { "name": "entity.name.function.clause.prolog" }, "2": { "name": "punctuation.definition.parameters.begin" } }, "end": "((\\)?))\\s*(:-)", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end" }, "3": { "name": "keyword.control.clause.bodybegin.prolog" } }, "name": "meta.clause.head.prolog", "patterns": [{ "include": "#atom" }, { "include": "#variable" }, { "include": "#constants" }] }, { "begin": "^\\s*([a-z][a-zA-Z0-9_]*)(\\(?)(?=.*-->.*)", "beginCaptures": { "1": { "name": "entity.name.function.dcg.prolog" }, "2": { "name": "punctuation.definition.parameters.begin" } }, "end": "((\\)?))\\s*(-->)", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end" }, "3": { "name": "keyword.control.dcg.bodybegin.prolog" } }, "name": "meta.dcg.head.prolog", "patterns": [{ "include": "#atom" }, { "include": "#variable" }, { "include": "#constants" }] }, { "begin": "(?<=-->)\\s*", "end": "(\\.)", "endCaptures": { "1": { "name": "keyword.control.dcg.bodyend.prolog" } }, "name": "meta.dcg.body.prolog", "patterns": [{ "include": "#comments" }, { "include": "#controlandkeywords" }, { "include": "#atom" }, { "include": "#variable" }, { "include": "#constants" }, { "match": ".", "name": "meta.dcg.body.prolog" }] }, { "begin": "^\\s*([a-zA-Z][a-zA-Z0-9_]*)(\\(?)(?!.*(:-|-->).*)", "beginCaptures": { "1": { "name": "entity.name.function.fact.prolog" }, "2": { "name": "punctuation.definition.parameters.begin" } }, "end": "((\\)?))\\s*(\\.)(?!\\d+)", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end" }, "3": { "name": "keyword.control.fact.end.prolog" } }, "name": "meta.fact.prolog", "patterns": [{ "include": "#comments" }, { "include": "#atom" }, { "include": "#variable" }, { "include": "#constants" }] }], "repository": { "atom": { "patterns": [{ "match": "(?)", "beginCaptures": { "1": { "name": "keyword.control.if.prolog" } }, "end": "(;)", "endCaptures": { "1": { "name": "keyword.control.else.prolog" } }, "name": "meta.if.prolog", "patterns": [{ "include": "$self" }, { "include": "#builtin" }, { "include": "#comments" }, { "include": "#atom" }, { "include": "#variable" }, { "match": ".", "name": "meta.if.body.prolog" }] }, { "match": "!", "name": "keyword.control.cut.prolog" }, { "match": "(\\s(is)\\s)|=:=|=\\.\\.|=?\\\\?=|\\\\\\+|@?>|@?=?<|\\+|\\*|\\-", "name": "keyword.operator.prolog" }] }, "variable": { "patterns": [{ "match": "(?