{
  "foldingStartMarker": "\\{",
  "foldingStopMarker": "}",
  "fileTypes": ["pkl", "pcf"],
  "uuid": "0598575b-33f4-42c1-b797-5b93a6cfc03a",
  "patterns": [
    {
      "match": "(?x:\n  \\b\n  (module)\n  \\s+\n  (\n    [\\p{L}_$][\\p{L}0-9_$]*(?:\\.[\\p{L}_$][\\p{L}0-9_$]*)*\n  )\n)",
      "captures": {
        "1": { "name": "variable.language.pkl" },
        "2": { "name": "variable.other.module.pkl" }
      }
    },
    {
      "match": "(?x:\n  (typealias)\n  \\s+\n  ([\\p{L}_$][\\p{L}0-9_$]*)\n  \\s*(=)\\s*\n  ((?x:\n  (?x:\n  [\\p{L}_$][\\p{L}0-9_$]* # ident\n  \\s*\n  (?:<[^>]*>)? # optional type parameters\n  \\s*\n  (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n  \\s*\n  \\?? # optional nulability indicator\n)\n  \\s*\n  (\\|\\s*(?x:\n  [\\p{L}_$][\\p{L}0-9_$]* # ident\n  \\s*\n  (?:<[^>]*>)? # optional type parameters\n  \\s*\n  (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n  \\s*\n  \\?? # optional nulability indicator\n))*\n))\n)",
      "captures": {
        "3": { "name": "punctuation.pkl" },
        "1": { "name": "keyword.class.pkl" },
        "4": { "name": "entity.name.type.pkl" },
        "2": { "name": "entity.name.type.pkl" }
      }
    },
    {
      "name": "entity.name.type.pkl",
      "match": "\\b(class)\\s+[\\p{L}_$][\\p{L}0-9_$]*",
      "captures": { "1": { "name": "keyword.class.pkl" } }
    },
    {
      "match": "(?x:\n  \\b(for)\n  \\s*\\(\n  ([\\p{L}_$][\\p{L}0-9_$]*)(?:\\s*,\\s*([\\p{L}_$][\\p{L}0-9_$]*))* # bindings\n  \\s+\n  (in)\n)",
      "captures": {
        "3": { "name": "variable.other.property.pkl" },
        "1": { "name": "keyword.control.pkl" },
        "4": { "name": "storage.modifier.pkl" },
        "2": { "name": "variable.other.property.pkl" }
      }
    },
    {
      "match": "\\b(new)\\s+((?x:\n  (?x:\n  [\\p{L}_$][\\p{L}0-9_$]* # ident\n  \\s*\n  (?:<[^>]*>)? # optional type parameters\n  \\s*\n  (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n  \\s*\n  \\?? # optional nulability indicator\n)\n  \\s*\n  (\\|\\s*(?x:\n  [\\p{L}_$][\\p{L}0-9_$]* # ident\n  \\s*\n  (?:<[^>]*>)? # optional type parameters\n  \\s*\n  (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n  \\s*\n  \\?? # optional nulability indicator\n))*\n))",
      "captures": {
        "1": { "name": "keyword.control.pkl" },
        "2": { "name": "entity.name.type.pkl" }
      }
    },
    {
      "match": "\\b(function)\\s+([\\p{L}_$][\\p{L}0-9_$]*)",
      "captures": {
        "1": { "name": "keyword.pkl" },
        "2": { "name": "variable.other.property.pkl" }
      }
    },
    {
      "match": "\\b(as)\\s+((?x:\n  (?x:\n  [\\p{L}_$][\\p{L}0-9_$]* # ident\n  \\s*\n  (?:<[^>]*>)? # optional type parameters\n  \\s*\n  (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n  \\s*\n  \\?? # optional nulability indicator\n)\n  \\s*\n  (\\|\\s*(?x:\n  [\\p{L}_$][\\p{L}0-9_$]* # ident\n  \\s*\n  (?:<[^>]*>)? # optional type parameters\n  \\s*\n  (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n  \\s*\n  \\?? # optional nulability indicator\n))*\n))",
      "captures": {
        "1": { "name": "keyword.pkl" },
        "2": { "name": "entity.name.type.pkl" }
      }
    },
    {
      "name": "constant.character.language.pkl",
      "match": "\\b(true|false|null)\\b"
    },
    { "name": "comment.line.pkl", "match": "\/\/.*" },
    { "name": "comment.block.pkl", "begin": "\/\\*", "end": "\\*\/" },
    {
      "begin": "(?x:\n  (\n    (?:\\b|\\s*)[\\p{L}_$][\\p{L}0-9_$]* # variable name\n    |\n    `[^`]+` # quoted variable name\n  )\n  \\s*\n  (:)\n  \\s*\n  ((?x:\n  (?x:\n  [\\p{L}_$][\\p{L}0-9_$]* # ident\n  \\s*\n  (?:<[^>]*>)? # optional type parameters\n  \\s*\n  (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n  \\s*\n  \\?? # optional nulability indicator\n)\n  \\s*\n  (\\|\\s*(?x:\n  [\\p{L}_$][\\p{L}0-9_$]* # ident\n  \\s*\n  (?:<[^>]*>)? # optional type parameters\n  \\s*\n  (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n  \\s*\n  \\?? # optional nulability indicator\n))*\n)) # type\n)",
      "end": "\\s*=|,|\\)|^[ \\t]*$",
      "captures": {
        "1": { "name": "variable.other.property.pkl" },
        "2": { "name": "punctuation.pkl" },
        "3": { "name": "entity.name.type.pkl" }
      }
    },
    {
      "match": "(?x:\n  (\n    \\b[\\p{L}_$][\\p{L}0-9_$]* # variable name\n    |\n    `[^`]+` # quoted variable name\n  )\n  \\s*\n  (=)(?!=)\n)",
      "captures": {
        "1": { "name": "variable.other.property.pkl" },
        "2": { "name": "punctuation.pkl" }
      }
    },
    {
      "match": "(:)\\s*((?x:\n  (?x:\n  [\\p{L}_$][\\p{L}0-9_$]* # ident\n  \\s*\n  (?:<[^>]*>)? # optional type parameters\n  \\s*\n  (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n  \\s*\n  \\?? # optional nulability indicator\n)\n  \\s*\n  (\\|\\s*(?x:\n  [\\p{L}_$][\\p{L}0-9_$]* # ident\n  \\s*\n  (?:<[^>]*>)? # optional type parameters\n  \\s*\n  (?:\\([^)]*\\))? # optional constraint (this is an approximation)\n  \\s*\n  \\?? # optional nulability indicator\n))*\n))",
      "captures": {
        "1": { "name": "punctuation.pkl" },
        "2": { "name": "entity.name.type.pkl" }
      }
    },
    {
      "match": "^\\s*([\\p{L}_$][\\p{L}0-9_$]*)\\s*\\{",
      "captures": { "1": { "name": "variable.other.property.pkl" } }
    },
    {
      "name": "storage.modifier.pkl",
      "match": "\\b(hidden|local|abstract|external|open|in|out|amends|extends|fixed|const)\\b"
    },
    {
      "name": "keyword.pkl",
      "match": "\\b(amends|as|extends|function|is|let|read|read\\?|import|throw|trace)\\b"
    },
    {
      "name": "keyword.control.pkl",
      "match": "\\b(if|else|when|for|import|new)\\b"
    },
    {
      "name": "constant.numeric.hex.pkl",
      "match": "(?x:\n  \\b\n  0x(?:[\\da-fA-F][\\da-fA-F_]*[\\da-fA-F]|[\\da-fA-F_])\n  \\b\n)"
    },
    {
      "name": "constant.numeric.binary.pkl",
      "match": "(?x:\n  \\b\n  0b(?:[0-1][0-1_]*[0-1]|[0-1])\n  \\b\n)"
    },
    {
      "name": "constant.numeric.octal.pkl",
      "match": "(?x:\n  \\b\n  0o(?:[0-7][0-7_]*[0-7]|[0-7])\n  \\b\n)"
    },
    {
      "name": "constant.numeric.decimal.pkl",
      "match": "(?x:\n  \\b\n  (?:\\d[0-9_]*\\d|\\d)\n  \\b\n)"
    },
    {
      "name": "constant.numeric.pkl",
      "match": "(?x:\n  \\b\n  (?:\n    (?:\\d[0-9_]*\\d|\\d)?              # 0 or more digits\n    \\.                               # dot literal\n    (?:\\d[0-9_]*\\d|\\d)               # 1 or more digits\n    (?:[eE][+-]?(?:\\d[0-9_]*\\d|\\d))? # optional exponent\n    |                                # OR\n    (?:\\d[0-9_]*\\d|\\d)               # 1 or more digits\n    [eE][+-]?(?:\\d[0-9_]*\\d|\\d)      # exponent\n  )\n  \\b\n)"
    },
    {
      "name": "keyword.operator.pkl",
      "match": "(?x:\n  # MATH\n  \\+    # add\n  |\n  -     # minus\n  |\n  \\*    # multiply\n  |\n  \/     # divide\n  |\n  ~\/    # integer divide\n  |\n  %     # modulo\n  |\n  \\*\\*  # power\n  |\n  >     # greater than\n  |\n  >=    # greater than or equals\n  |\n  <     # less than\n  |\n  <=    # less than or equals\n  |\n  ==    # equals\n  |\n  !=    # not equals\n\n  # LOGICAL\n  |\n  !     # unary not\n  |\n  &&    # and\n  |\n  \\|\\|  # or\n  |\n\n  # MISCELLANEOUS\n  \\|>   # function pipe\n  |\n  \\?\\?  # nullish coalesce\n  |\n  !!    # non-null assertion\n  |\n  =     # assignment\n  |\n  ->    # lambda arrow\n  |\n  \\|    # type union\n)"
    },
    {
      "name": "variable.language.pkl",
      "match": "\\b(this|module|outer|super)\\b"
    },
    { "name": "support.type.pkl", "match": "\\b(unknown|never)\\b" },
    { "name": "meta.brace.pkl", "match": "[(){}\\[\\]]" },
    { "name": "keyword.class.pkl", "match": "\\b(class|typealias)\\b" },
    {
      "name": "punctuation.pkl",
      "match": "(?x:\n  \\.\\?  # optional chain\n  |\n  \\.    # member access\n  |\n  ;     # semicolon\n  |\n  :     # colon\n)"
    },
    { "name": "entity.name.type.pkl", "match": "@[\\p{L}_$][\\p{L}0-9_$]*" },
    {
      "begin": "(\"\"\")",
      "end": "(\"\"\")",
      "patterns": [
        {
          "name": "constant.character.escape.0.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.triple.0.pkl",
      "captures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(\")",
      "endCaptures": {
        "1": { "name": "punctuation.delimimter.pkl" },
        "2": { "name": "invalid.illegal.newline.pkl" }
      },
      "end": "(?x:\n  (\")         # string end\n  |                     # OR\n  (.?$)                 # error; unterminated string (flag last character as an error)\n)",
      "patterns": [
        {
          "name": "constant.character.escape.0.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.double.0.pkl",
      "beginCaptures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(#\"\"\")",
      "end": "(\"\"\"#)",
      "patterns": [
        {
          "name": "constant.character.escape.1.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\\#\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\\\#   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.triple.1.pkl",
      "captures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(#\")",
      "endCaptures": {
        "1": { "name": "punctuation.delimimter.pkl" },
        "2": { "name": "invalid.illegal.newline.pkl" }
      },
      "end": "(?x:\n  (\"\\#)         # string end\n  |                     # OR\n  (.?$)                 # error; unterminated string (flag last character as an error)\n)",
      "patterns": [
        {
          "name": "constant.character.escape.1.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\\#\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\\\#   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.double.1.pkl",
      "beginCaptures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(##\"\"\")",
      "end": "(\"\"\"##)",
      "patterns": [
        {
          "name": "constant.character.escape.2.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\\#\\#\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\\\#\\#   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.triple.2.pkl",
      "captures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(##\")",
      "endCaptures": {
        "1": { "name": "punctuation.delimimter.pkl" },
        "2": { "name": "invalid.illegal.newline.pkl" }
      },
      "end": "(?x:\n  (\"\\#\\#)         # string end\n  |                     # OR\n  (.?$)                 # error; unterminated string (flag last character as an error)\n)",
      "patterns": [
        {
          "name": "constant.character.escape.2.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\\#\\#\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\\\#\\#   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.double.2.pkl",
      "beginCaptures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(###\"\"\")",
      "end": "(\"\"\"###)",
      "patterns": [
        {
          "name": "constant.character.escape.3.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\\#\\#\\#\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\\\#\\#\\#   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.triple.3.pkl",
      "captures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(###\")",
      "endCaptures": {
        "1": { "name": "punctuation.delimimter.pkl" },
        "2": { "name": "invalid.illegal.newline.pkl" }
      },
      "end": "(?x:\n  (\"\\#\\#\\#)         # string end\n  |                     # OR\n  (.?$)                 # error; unterminated string (flag last character as an error)\n)",
      "patterns": [
        {
          "name": "constant.character.escape.3.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\\#\\#\\#\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\\\#\\#\\#   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.double.3.pkl",
      "beginCaptures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(####\"\"\")",
      "end": "(\"\"\"####)",
      "patterns": [
        {
          "name": "constant.character.escape.4.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\\#\\#\\#\\#\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\\\#\\#\\#\\#   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.triple.4.pkl",
      "captures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(####\")",
      "endCaptures": {
        "1": { "name": "punctuation.delimimter.pkl" },
        "2": { "name": "invalid.illegal.newline.pkl" }
      },
      "end": "(?x:\n  (\"\\#\\#\\#\\#)         # string end\n  |                     # OR\n  (.?$)                 # error; unterminated string (flag last character as an error)\n)",
      "patterns": [
        {
          "name": "constant.character.escape.4.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\\#\\#\\#\\#\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\\\#\\#\\#\\#   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.double.4.pkl",
      "beginCaptures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(#####\"\"\")",
      "end": "(\"\"\"#####)",
      "patterns": [
        {
          "name": "constant.character.escape.5.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\\#\\#\\#\\#\\#\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\\\#\\#\\#\\#\\#   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.triple.5.pkl",
      "captures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(#####\")",
      "endCaptures": {
        "1": { "name": "punctuation.delimimter.pkl" },
        "2": { "name": "invalid.illegal.newline.pkl" }
      },
      "end": "(?x:\n  (\"\\#\\#\\#\\#\\#)         # string end\n  |                     # OR\n  (.?$)                 # error; unterminated string (flag last character as an error)\n)",
      "patterns": [
        {
          "name": "constant.character.escape.5.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\\#\\#\\#\\#\\#\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\\\#\\#\\#\\#\\#   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.double.5.pkl",
      "beginCaptures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(######\"\"\")",
      "end": "(\"\"\"######)",
      "patterns": [
        {
          "name": "constant.character.escape.6.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\\#\\#\\#\\#\\#\\#\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\\\#\\#\\#\\#\\#\\#   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.triple.6.pkl",
      "captures": { "1": { "name": "punctuation.delimiter.pkl" } }
    },
    {
      "begin": "(######\")",
      "endCaptures": {
        "1": { "name": "punctuation.delimimter.pkl" },
        "2": { "name": "invalid.illegal.newline.pkl" }
      },
      "end": "(?x:\n  (\"\\#\\#\\#\\#\\#\\#)         # string end\n  |                     # OR\n  (.?$)                 # error; unterminated string (flag last character as an error)\n)",
      "patterns": [
        {
          "name": "constant.character.escape.6.pkl",
          "match": "(?x:                 # turn on extended mode\n  \\\\\\#\\#\\#\\#\\#\\#\n  (?:\n    [trn\"\\\\]         # tab, carriage return, newline, quote, backslash\n    |                # OR\n    u                # the letter u\n    \\{               # curly opening brace literal\n    [\\da-fA-F]+      # 1 or more hex number literal\n    }                # curly end literal\n    |                # OR\n    \\(               # interpolation start\n    .+?              # one or more characters lazily (correct syntax highlighting within here should be provided by semantic tokens)\n    \\)               # interpolation end\n  )\n  |                  # OR\n  (                  # capture group: invalid escape\n    \\\\\\#\\#\\#\\#\\#\\#   # the escape char\n    .                # any character\n  )\n)",
          "captures": {
            "1": { "name": "invalid.illegal.unrecognized-string-escape.pkl" }
          }
        }
      ],
      "name": "string.quoted.double.6.pkl",
      "beginCaptures": { "1": { "name": "punctuation.delimiter.pkl" } }
    }
  ],
  "name": "Pkl",
  "scopeName": "source.pkl"
}
