{ "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "name": "PDDL", "patterns": [ { "include": "#meta" }, { "include": "#keywords" }, { "include": "#comments" }, { "include": "#scalars" }, { "include": "#time-qualifiers" }, { "include": "#operators" }, { "include": "#parameters" }, { "include": "#unexpected" } ], "repository": { "meta": { "patterns": [{ "name": "meta.preprocessor.pre-parsing", "match": "^;;\\s*!pre-parsing:\\s*{\\s*type:\\s*\"(command|nunjucks|jinja2|python)\"\\s*,\\s*(command:\\s*\"([\\w:\\-/\\\\\\. ]+)\"\\s*(,\\s*args:\\s*\\[([^\\]]*)\\])?|data:\\s*\"([\\w:\\-/\\\\\\. ]+)\")\\s*}", "captures": { "1": { "name": "variable.parameter.pre-parsing.type"}, "3": { "name": "variable.parameter.pre-parsing.command"}, "5": { "patterns":[{ "begin": "\"", "end": "\"", "name": "variable.parameter.pre-parsing.data" }] }, "6": { "name": "variable.parameter.pre-parsing.data"} } }, { "name": "meta.preprocessor", "match": "^;;\\s*!" }, { "name": "meta.preprocessor.template.flow-control", "match": "{%[^%]+%}" }, { "name": "meta.preprocessor.template.literal", "match": "{{[^}]+}}" } ] }, "keywords": { "patterns": [{ "name": "keyword.control.pddl.header", "match": "\\b(define|domain|problem)\\b" }, { "name": "keyword.control.pddl.requirements", "match": ":(strips|typing|negative-preconditions|disjunctive-preconditions|equality|existential-preconditions|universal-preconditions|quantified-preconditions|conditional-effects|fluents|numeric-fluents|object-fluents|adl|durative-actions|duration-inequalities|continuous-effects|derived-predicates|derived-functions|timed-initial-literals|timed-effects|preferences|constraints|action-costs|timed-initial-fluents|time|supply-demand)\\b" }, { "name": "keyword.control.pddl.global", "match": ":(requirements|types|constants|predicates|functions|derived|action|durative-action|event|process|domain|objects|init|goal|metric)\\b" }, { "name": "keyword.control.pddl.action", "match": ":(parameters|precondition|effect)\\b" }, { "name": "keyword.control.pddl.action.durative", "match": ":(parameters|duration|condition|effect)\\b" }] }, "comments": { "patterns": [{ "name": "comment.line", "match": ";.*$" }] }, "scalars": { "patterns": [{ "name": "constant.numeric", "match": "\\b[-+]?([0-9]*\\.[0-9]+|[0-9]+)\\b" }] }, "time-qualifiers":{ "patterns": [ { "name": "keyword.other.pddl_qualifier", "match": "\\b(at start|at end|over all)\\b" }, { "name": "keyword.other.delta_t", "match": "#t\\b" } ] }, "operators":{ "patterns": [ { "name": "keyword.operator.logical", "match": "\\b(and|not|or|either)\\b" }, { "name": "keyword.other.numeric", "match": "(>|<|>=|<=|=|/|\\*|\\+)" }, { "name": "keyword.other.effects", "match": "\\b(assign|increase|decrease|forall|exists)\\b" }, { "name": "keyword.other.undefined", "match": "\\b(undefined)\\b" }, { "name": "keyword.other.metric", "match": "\\b(minimize|maximize)\\b" } ] }, "parameters":{ "patterns": [{ "name": "variable.parameter", "match": "\\?\\w+\\b" }] }, "unexpected": { "patterns": [{ "name": "invalid.illegal", "match": ":[\\w-]+\\b" }] } }, "scopeName": "source.pddl" }