{"name":"Turtle","scopeName":"source.turtle","patterns":[{"include":"#turtleDoc"}],"repository":{"ANON":{"name":"meta.spec.ANON.turtle"},"BLANK_NODE_LABEL":{"name":"meta.spec.BLANK_NODE_LABEL.turtle","captures":{"1":{"name":"keyword.other.BLANK_NODE_LABEL.turtle"},"2":{"name":"variable.other.BLANK_NODE_LABEL.turtle"}}},"BlankNode":{"name":"meta.spec.BlankNode.turtle","patterns":[{"include":"#BLANK_NODE_LABEL"},{"include":"#ANON"}]},"IRIREF":{"name":"entity.name.type.IRIREF.turtle","match":"(?x) (\\\u003c) (?:[^\\x00-\\x20\\\u003c\\\u003e\\\\\\\"\\{\\}\\|\\^`] | (?:\\\\u[0-9A-Fa-f]{4}|\\\\U[0-9A-Fa-f]{8}))* (\\\u003e)","captures":{"1":{"name":"punctuation.definition.entity.begin.turtle"},"2":{"name":"punctuation.definition.entity.end.turtle"}}},"PNAME_LN":{"name":"meta.spec.PNAME_LN.turtle","captures":{"PNAME_NS":{"name":"variable.other.PNAME_NS.turtle"},"PN_LOCAL":{"name":"support.variable.PN_LOCAL.turtle"}}},"PNAME_NS":{"name":"variable.other.PNAME_NS.turtle"},"PN_LOCAL":{"name":"support.variable.PN_LOCAL.turtle"},"PrefixedName":{"name":"meta.spec.PrefixedName.turtle","patterns":[{"include":"#PNAME_LN"},{"include":"#PNAME_NS"}]},"blankNodePropertyList":{"name":"meta.spec.blankNodePropertyList.turtle","begin":"\\b(\\[)\\b","end":"\\b(\\])(?=\\b|\\s|[.;,])","patterns":[{"name":"punctuation.terminator.stmt.turtle","match":"((?\u003c=\\s)[.;,](?=\\b))"},{"include":"#literal"},{"include":"#blankNodePropertyList"},{"include":"#iri"},{"include":"#BlankNode"},{"include":"#collection"},{"name":"keyword.other.typeOf.turtle","match":"(?\u003c=[ ])(a)(?=[ ])"}],"captures":{"1":{"name":"punctuation.terminator.blankNodePropertyList.turtle"}}},"collection":{"name":"meta.spec.collection.turtle","begin":"(\\b\\(\\b)","end":"(\\b\\)\\b)","patterns":[{"include":"#literal"},{"include":"#iri"},{"include":"#BlankNode"},{"include":"#collection"},{"name":"keyword.other.typeOf.turtle","match":"(?\u003c=[ ])(a)(?=[ ])"},{"include":"#blankNodePropertyList"}],"captures":{"1":{"name":"punctuation.terminator.collection.turtle"}}},"directive":{"name":"meta.spec.directive.turtle","begin":"(?i)(^(?=@prefix|@base|PREFIX|BASE))","end":"($)","patterns":[{"name":"meta.spec.prefixID.turtle","begin":"^(@prefix)(?=\\s)","end":"(\\.?)$","patterns":[{"include":"#IRIREF"},{"include":"#PNAME_NS"}],"beginCaptures":{"1":{"name":"keyword.other.directive.prefix.turtle"}},"endCaptures":{"1":{"name":"punctuation.terminator.directive.turtle"}}},{"name":"meta.spec.base.turtle","begin":"^(@base)","end":"(\\.?)$","patterns":[{"include":"#IRIREF"}],"beginCaptures":{"1":{"name":"keyword.other.directive.base.turtle"}},"endCaptures":{"1":{"name":"punctuation.terminator.directive.turtle"}}},{"name":"meta.spec.sparqlPrefix.turtle","begin":"^(?i)(PREFIX)(?=\\b)","end":"$","patterns":[{"include":"#IRIREF"},{"include":"#PNAME_NS"}],"beginCaptures":{"1":{"name":"keyword.other.directive.sparqlPrefix.turtle"}}},{"name":"meta.spec.sparqlBase.turtle","begin":"^(?i)(BASE)(?=\\b)","end":"$","patterns":[{"include":"#IRIREF"}],"beginCaptures":{"1":{"name":"keyword.other.directive.sparqlBase.turtle"}}}]},"iri":{"name":"meta.spec.iri.turtle","patterns":[{"include":"#IRIREF"},{"include":"#PrefixedName"}]},"literal":{"name":"meta.spec.literal.turtle","patterns":[{"name":"constant.numeric.turtle","match":"(?x)\n\t\t\t\t\t\t(?\u003c=\\s)[+-]?\t\t\t\t\t\t\n\t\t\t\t\t\t( (?: \\d+?\\.?\\d*[eE][+-]?\\d+) | \\d*\\.\\d+ | \\d+)\n\t\t\t\t\t\t(?=[ ]*[,.;]?)\n\t\t\t\t\t"},{"name":"constant.language.boolean.turtle","match":"(?\u003c=\\s)(true|false)(?=[ ]*[,.;]?)"},{"name":"meta.spec.RDFLiteral.turtle","patterns":[{"include":"#literal_triple"},{"include":"#literal_double"},{"include":"#literal_single"}]}]},"literal_double":{"name":"string.quoted.double.turtle","match":"(?x)\n\t\t\t\t(\")[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*(\")\n\t\t\t\t(?\u003clang\u003e@(?:[a-z]{2}(?:-[a-z0-9]{2})*)?)?\n\t\t\t\t(?\u003cdt\u003e\\^\\^\\w*:\\w*|\\\u003c[^\\\u003e]+\\\u003e)?\n\t\t\t","captures":{"1":{"name":"punctuation.definition.string.begin.turtle"},"2":{"name":"punctuation.definition.string.end.turtle"},"dt":{"name":"storage.type.datatype.turtle"},"lang":{"name":"constant.language.language_tag.turtle"}}},"literal_single":{"name":"string.quoted.single.turtle","match":"(?x)\n\t\t\t\t(')[^'\\\\]*(?:\\.[^'\\\\]*)*(')\n\t\t\t\t(?\u003clang\u003e@(?:[a-z]{2}(?:-[a-z0-9]{2})*)?)?\n\t\t\t\t(?\u003cdt\u003e\\^\\^\\w*:\\w*|\\\u003c[^\\\u003e]+\\\u003e)?\n\t\t\t","captures":{"1":{"name":"punctuation.definition.string.begin.turtle"},"2":{"name":"punctuation.definition.string.end.turtle"},"dt":{"name":"storage.type.datatype.turtle"},"lang":{"name":"constant.language.language_tag.turtle"}}},"literal_triple":{"name":"string.quoted.triple.turtle","begin":"(['\"]{3})","end":"(?x)\n\t\t\t\t(\\1)\n\t\t\t\t(?\u003clang\u003e@(?:[a-z]{2}(?:-[a-z0-9]{2})*)?)?\n\t\t\t\t(?\u003cdt\u003e\\^\\^\\w*:\\w*|\\\u003c[^\\\u003e]+\\\u003e)?\n\t\t\t\t(?=[ ]*[.;,]?)\n\t\t\t","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.turtle"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.turtle"},"dt":{"name":"storage.type.datatype.turtle"},"lang":{"name":"constant.language.language_tag.turtle"}}},"sparqlClausedKeywords":{"begin":"(?x)(\n\t\t\t\t(?# Special case because FILTER can have clauses what makes the lexer dizzy)\n\t\t\t\tFILTER\n\t\t\t)\\s*(\\((?=\\s*))","end":"\\s*(\\))","patterns":[{"include":"#sparqlVars"},{"include":"#sparqlFilterFns"},{"include":"#sparqlLangConsts"}],"beginCaptures":{"1":{"name":"keyword.control.sparql.turtle"},"2":{"name":"punctuation.terminator.sparqlKeyword.turtle"}},"endCaptures":{"1":{"name":"punctuation.terminator.sparqlKeyword.turtle"}}},"sparqlFilterFns":{"begin":"(?x)(\n\t\t\t\t(?# Special case because FILTER can have clauses what makes the lexer dizzy)\n\t\t\t\tFILTER|\n\t\t\t\t(?# Builtin callables )\n\t\t\t\tSTR|LANG|LANGMATCHES|DATATYPE|BOUND|IRI|URI|BNODE|RAND|ABS|CEIL|FLOOR|ROUND|CONCAT|STRLEN|UCASE|LCASE|ENCODE_FOR_URI|CONTAINS|STRSTARTS|STRENDS|STRBEFORE|STRAFTER|YEAR|MONTH|DAY|HOURS|MINUTES|SECONDS|TIMEZONE|TZ|NOW|UUID|STRUUID|MD5|SHA1|SHA256|SHA384|SHA512|COALESCE|IF|STRLANG|STRDT|sameTerm|isIRI|isURI|isBLANK|isLITERAL|isNUMERIC|COUNT|SUM|MIN|MAX|AVG|SAMPLE|GROUP_CONCAT|\n\t\t\t\tBOUND|COALESCE|NOT EXISTS|EXISTS|REGEX|SUBSTR|REPLACE\n\t\t\t)\\s*(\\((?=\\s*))","end":"\\s*(\\))","patterns":[{"include":"#sparqlVars"},{"include":"#sparqlFilterFns"},{"include":"#sparqlLangConsts"}],"beginCaptures":{"1":{"name":"support.function.sparql.turtle"},"2":{"name":"punctuation.terminator.sparqlFunc.turtle"}},"endCaptures":{"1":{"name":"punctuation.terminator.sparqlFunc.turtle"}}},"sparqlKeywords":{"name":"keyword.control.sparql.turtle","match":"(?x)(\n\t\t\t\t\t(?# SPARQL )\n\t\t\t\t\tSELECT|ASK|CONSTRUCT|DESCRIBE|FROM|NAMED|WHERE|GRAPH|AS|\n\t\t\t\t\tUNION|FILTER|HAVING|VALUES|\n\t\t\t\t\tOPTIONAL|SERVICE|\t\t\t \n\t\t\t\t\t(?# SPARUL )\n\t\t\t\t\tSILENT|DATA|\t\t\t\t\t\n\t\t\t\t\tADD|MOVE|COPY|\n\t\t\t\t\tINSERT|DELETE|\n\t\t\t\t\tLOAD|INTO|\n\t\t\t\t\tGRAPH|ALL|DEFAULT|\t\t\t\t\t\n\t\t\t\t\tCLEAR|CREATE|DROP|\n\t\t\t\t\tWITH|USING|\n\t\t\t\t\t(?# Solution sequence modifiers )\n\t\t\t\t\tDISTINCT|REDUCED|\n\t\t\t\t\tORDER|ASC|DESC|OFFSET|LIMITED|REDUCED|\n\t\t\t\t\tGROUP|BY|LIMIT\t\t\t\t\t\n\t\t\t\t)"},"sparqlLangConsts":{"name":"constant.language.sparql.turtle","match":"(true|false)"},"sparqlVars":{"name":"constant.variable.sparql.turtle","match":"(\\?\\w+|\\*)"},"triples":{"name":"meta.spec.triples.turtle","begin":"(?i)^(?!@|\\#|PREFIX|BASE)","end":"([.;,]?)$","patterns":[{"name":"comment.line.number-sign.turtle","match":"(#.+$)","captures":{"1":{"name":"punctuation.definition.comment.turtle"}}},{"name":"punctuation.terminator.stmt.turtle","match":"[.;,](?=\\s|\\b)"},{"include":"#literal"},{"include":"#sparqlVars"},{"include":"#sparqlClausedKeywords"},{"include":"#sparqlKeywords"},{"include":"#sparqlFilterFns"},{"include":"#sparqlLangConsts"},{"include":"#blankNodePropertyList"},{"include":"#iri"},{"include":"#BlankNode"},{"include":"#collection"},{"name":"keyword.other.typeOf.turtle","match":"\\b(a)(?=[ ])"}],"beginCaptures":{"1":{"name":"meta.spec.triples.turtle"}},"endCaptures":{"1":{"name":"punctuation.terminator.triple.turtle"}}},"turtleDoc":{"name":"meta.spec.turtleDoc.turtle","begin":"^","end":"\\z","patterns":[{"name":"comment.line.number-sign.turtle","match":"^(#).+$","captures":{"1":{"name":"punctuation.definition.comment.turtle"}}},{"include":"#directive"},{"include":"#sparqlClausedKeywords"},{"include":"#sparqlKeywords"},{"include":"#sparqlFilterFns"},{"include":"#sparqlLangConsts"},{"include":"#sparqlVars"},{"include":"#triples"}]}}}