brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.2 KiB · 47c8968 Raw
524 lines · json
1{2  "name": "PDLL",3  "fileTypes": [4    "pdll"5  ],6  "patterns": [7    {8      "include": "#comment"9    },10    {11      "include": "#string"12    },13    {14      "include": "#string_block"15    },16    {17      "include": "#integer"18    },19    {20      "include": "#include"21    },22    {23      "include": "#user_constraint"24    },25    {26      "include": "#user_rewrite"27    },28    {29      "include": "#pattern"30    },31    {32      "include": "#inside_pattern"33    }34  ],35  "repository": {36    "comment": {37      "match": "\/\/.*$",38      "name": "comment.line.double-slash.pdll"39    },40    "string": {41      "name": "string.quoted.double.pdll",42      "begin": "\"",43      "end": "\"",44      "beginCaptures": {45        "0": {46          "name": "punctuation.definition.string.begin.pdll"47        }48      },49      "patterns": [50        {51          "match": "\\\\[nt\"]",52          "name": "constant.character.escape.pdll"53        },54        {55          "match": "\\\\.",56          "name": "invalid.illegal.pdll"57        }58      ],59      "endCaptures": {60        "0": {61          "name": "punctuation.definition.string.end.pdll"62        }63      }64    },65    "string_block": {66      "name": "string.quoted.triple.pdll",67      "begin": "\\[{",68      "end": "}]",69      "beginCaptures": {70        "0": {71          "name": "punctuation.definition.string.begin.pdll"72        }73      },74      "patterns": [75        {76          "match": "\\\\[nt\"]",77          "name": "constant.character.escape.pdll"78        },79        {80          "match": "\\\\.",81          "name": "invalid.illegal.pdll"82        }83      ],84      "endCaptures": {85        "0": {86          "name": "punctuation.definition.string.end.pdll"87        }88      }89    },90    "integer": {91      "match": "[0-9]+",92      "name": "constant.numeric.pdll"93    },94    "include": {95      "patterns": [96        {97          "match": "(#include)",98          "name": "keyword.control.pdll"99        }100      ]101    },102    "argument_or_result_list": {103      "patterns": [104        {105          "match": "\\b([aA-zZ_0-9]*)\\b\\s*:\\s*([aA-zZ_0-9]+)\\b(\\<([^\\>]+)\\>)?",106          "captures": {107            "1": {108              "name": "variable.parameter.pdll"109            },110            "2": {111              "name": "entity.name.type.pdll"112            },113            "4": {114              "name": "variable.other.enummember.pdll"115            }116          }117        },118        {119          "match": "(\\(|\\>|,)\\s*([aA-zZ_0-9]+)\\b(\\<([^\\>]+)\\>)?\\s*(?=[^:])",120          "captures": {121            "2": {122              "name": "entity.name.type.pdll"123            },124            "4": {125              "name": "variable.other.enummember.pdll"126            }127          }128        }129      ]130    },131    "user_constraint": {132      "patterns": [133        {134          "begin": "\\b(Constraint)\\b\\s*(\\b[aA-zZ_0-9]*\\b)?",135          "beginCaptures": {136            "1": {137              "name": "keyword.other.pdll"138            },139            "2": {140              "name": "entity.name.type.pdll"141            }142          },143          "patterns": [144            {145              "begin": "(\\[{)",146              "patterns": [147                {148                  "include": "source.cpp"149                }150              ],151              "end": "(}])"152            },153            {154              "begin": "(?=\\()",155              "patterns": [156                {157                  "include": "#argument_or_result_list"158                }159              ],160              "end": "\\)"161            },162            {163              "include": "#argument_or_result_list"164            },165            {166              "begin": "{",167              "patterns": [168                {169                  "include": "#inside_pattern"170                }171              ],172              "end": "(?=})"173            },174            {175              "begin": "=>",176              "patterns": [177                {178                  "include": "#inside_pattern"179                }180              ],181              "end": "(?=;|,|\\))"182            }183          ],184          "end": "(}|;|,)|(?=\\))"185        }186      ]187    },188    "user_rewrite": {189      "patterns": [190        {191          "begin": "\\b(Rewrite)\\b\\s*(\\b[aA-zZ_0-9]*\\b)?",192          "beginCaptures": {193            "1": {194              "name": "keyword.other.pdll"195            },196            "2": {197              "name": "entity.name.function.pdll"198            }199          },200          "patterns": [201            {202              "begin": "(\\[{)",203              "patterns": [204                {205                  "include": "source.cpp"206                }207              ],208              "end": "(}])"209            },210            {211              "begin": "(?=\\()",212              "patterns": [213                {214                  "include": "#argument_or_result_list"215                }216              ],217              "end": "\\)"218            },219            {220              "include": "#argument_or_result_list"221            },222            {223              "begin": "{",224              "patterns": [225                {226                  "include": "#inside_pattern"227                }228              ],229              "end": "(?=})"230            },231            {232              "begin": "=>",233              "patterns": [234                {235                  "include": "#inside_pattern"236                }237              ],238              "end": "(?=;|,|\\))"239            }240          ],241          "end": "(}|;|,)|(?=\\))"242        }243      ]244    },245    "pattern_metadata": {246      "patterns": [247        {248          "match": "\\b(with)\\b",249          "name": "keyword.other.pdll"250        },251        {252          "match": "\\b(benefit)\\b\\(([0-9]+)\\)",253          "captures": {254            "1": {255              "name": "entity.name.variable.pdll"256            },257            "2": {258              "name": "constant.numeric.pdll"259            }260          }261        },262        {263          "match": "\\b(recursion)\\b",264          "name": "entity.name.variable.pdll"265        }266      ]267    },268    "pattern": {269      "patterns": [270        {271          "begin": "\\b(Pattern)\\b\\s*(\\b[aA-zZ_0-9]*\\b)?\\s*(\\bwith\\b\\s*[^\\{]*)?\\s*({)",272          "beginCaptures": {273            "1": {274              "name": "keyword.other.pdll"275            },276            "2": {277              "name": "entity.name.function.pdll"278            },279            "3": {280              "patterns": [281                {282                  "include": "#pattern_metadata"283                }284              ]285            }286          },287          "patterns": [288            {289              "include": "#inside_pattern"290            }291          ],292          "end": "(})"293        },294        {295          "begin": "\\b(Pattern)\\b\\s*(\\b[aA-zZ_0-9]*\\b)?\\s*(\\bwith\\b\\s*[^\\=]*)?\\s*(=>)",296          "beginCaptures": {297            "1": {298              "name": "keyword.other.pdll"299            },300            "2": {301              "name": "entity.name.function.pdll"302            },303            "3": {304              "patterns": [305                {306                  "include": "#pattern_metadata"307                }308              ]309            }310          },311          "patterns": [312            {313              "include": "#inside_pattern"314            }315          ],316          "end": ";"317        }318      ]319    },320    "inside_pattern": {321      "patterns": [322        {323          "match": "\\b(erase|let|replace|return|rewrite|with)\\b",324          "captures": {325            "1": {326              "name": "keyword.control.pdll"327            }328          }329        },330        {331          "include": "#expressions"332        }333      ]334    },335    "variable_constraint": {336      "patterns": [337        {338          "match": "\\b(Op)<([a-zA-Z0-9_\\.$-]*)>",339          "captures": {340            "1": {341              "name": "entity.name.type.pdll"342            },343            "2": {344              "name": "variable.other.enummember.pdll"345            }346          }347        },348        {349          "begin": "<",350          "patterns": [351            {352              "include": "#expressions"353            }354          ],355          "end": ">"356        },357        {358          "match": "[a-zA-Z_0-9]+",359          "name": "entity.name.type.pdll"360        }361      ]362    },363    "variable_definition": {364      "patterns": [365        {366          "begin": "\\b([aA-zZ_0-9]*)\\b\\s*:\\s*\\[",367          "beginCaptures": {368            "1": {369              "name": "entity.name.variable.pdll"370            }371          },372          "patterns": [373            {374              "include": "#variable_constraint"375            }376          ],377          "end": "\\]"378        },379        {380          "match": "\\b([aA-zZ_0-9]*)\\b\\s*:\\s*([aA-zZ_0-9]+(\\<([^\\>]+)\\>)?)",381          "captures": {382            "1": {383              "name": "entity.name.variable.pdll"384            },385            "2": {386              "patterns": [387                {388                  "include": "#variable_constraint"389                }390              ]391            }392          }393        }394      ]395    },396    "expressions": {397      "patterns": [398        {399          "include": "#user_constraint"400        },401        {402          "include": "#user_rewrite"403        },404        {405          "include": "#attr_expr"406        },407        {408          "include": "#op_expr"409        },410        {411          "include": "#type_expr"412        },413        {414          "include": "#call_expr"415        },416        {417          "include": "#variable_definition"418        },419        {420          "include": "#identifier_expr"421        },422        {423          "include": "#string"424        },425        {426          "include": "#string_block"427        },428        {429          "include": "#comment"430        },431        {432          "begin": "{",433          "patterns": [434            {435              "include": "#inside_pattern"436            }437          ],438          "end": "}"439        },440        {441          "begin": "\\(",442          "patterns": [443            {444              "include": "#expressions"445            }446          ],447          "end": "\\)"448        }449      ]450    },451    "attr_expr": {452      "patterns": [453        {454          "begin": "(attr)<",455          "beginCaptures": {456            "1": {457              "name": "keyword.other.pdll"458            }459          },460          "patterns": [461            {462              "include": "#string"463            },464            {465              "include": "#string_block"466            }467          ],468          "end": ">"469        }470      ]471    },472    "call_expr": {473      "begin": "\\b([a-zA-Z0-9_]+)\\(",474      "beginCaptures": {475        "1": {476          "name": "entity.name.variable.pdll"477        }478      },479      "patterns": [480        {481          "include": "#expressions"482        }483      ],484      "end": "\\)"485    },486    "identifier_expr": {487      "match": "\\b([a-zA-Z0-9_]+)\\b",488      "name": "entity.name.variable.pdll"489    },490    "op_expr": {491      "match": "\\b(op)<([0-9a-zA-Z_\\.]*)>",492      "captures": {493        "1": {494          "name": "keyword.other.pdll"495        },496        "2": {497          "name": "variable.other.enummember.pdll"498        }499      }500    },501    "type_expr": {502      "patterns": [503        {504          "begin": "\\b(type)<",505          "beginCaptures": {506            "1": {507              "name": "keyword.other.pdll"508            }509          },510          "patterns": [511            {512              "include": "#string"513            },514            {515              "include": "#string_block"516            }517          ],518          "end": ">"519        }520      ]521    }522  },523  "scopeName": "source.pdll"524}