{
  "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
  "name": "Глагол",
  "scopeName": "source.glagol",
  "fileTypes": ["гл"],
  "patterns": [
    { "name": "comment.line.prim.glagol", "match": "(?<![\\p{L}0-9])прим(?![\\p{L}0-9]).*$" },
    { "name": "string.quoted.double.glagol", "begin": "\"", "end": "\"" },
    { "name": "entity.name.label.glagol", "match": "«[^»]*»" },
    { "name": "constant.numeric.glagol", "match": "(?<![\\p{L}0-9])\\d+" },
    { "name": "keyword.control.glagol", "match": "(?<![\\p{L}0-9])(?:если|то|иначе|оно|выбор|брось|попытка|тип|кольцо|поле|тело|раздел|библиотека|пара|множество|разные|словарь|служба|открывает|подключи|слой|требует|гарантирует|обеспечивает|типа|строгость|свободная|обычная|строгая|внешнее|запись|сущность|контроллер|приложение|хранилище|хранит|ключ|встрой|задай|пометка|при|много|один|общие|найти|обязательно|только|цифры|сохрани|удали|проверь|проверка|проверки|требуй|заглушка|пусть|получил|получила|получило|шпион|свойство|для|любого|любой|генератор|выбор|отметь|когда|параллельно|поручи|дождись|далее|прозой|построчно)(?![\\p{L}0-9])" },
    { "name": "keyword.other.glagol", "match": "(?<![\\p{L}0-9])(?:это|как|где|подключи|создать|метод|возвращает|помечена|помечено|запомни|запиши|зафиксируй|помни|напечатай|соедини|прочитай|прочитать|читай|прочти|должно|должен|должна|быть|равняться|вызвать|ошибку|нечто|ничего|успех|сбой|итог|сложение|умножение|противоположное|обратное|единица|вложение|всё|все|пустой|список)(?![\\p{L}0-9])" },
    { "name": "keyword.operator.word.glagol", "match": "(?<![\\p{L}0-9])(?:плюс|минус|умножить|разделить|нацело|остаток|деления|на|в|по|над|под|за|до|от|равно|больше|меньше|не|и|или|со|с|из|к|у)(?![\\p{L}0-9])" },
    { "name": "storage.type.predicate.glagol", "match": "(?<![\\p{L}0-9])(?:пуст|чётн|нечётн|положительн|отрицательн)[аоыий]*(?![\\p{L}0-9])" },
    { "name": "constant.language.glagol", "match": "(?<![\\p{L}0-9])(?:да|нет|истина|ложь)(?![\\p{L}0-9])" },
    { "name": "support.function.glagol", "match": "(?<![\\p{L}0-9])(?:длина|первый|голова|хвост|добавить|символ|цифра|первое|второе|содержит|объединение|пересечение|разность|ключи|значения|пары|элементы|элемент|натуральные|повторяй|отображай|отфильтровывай|пока|поток|символы|спари|приблизительно|корень|синус|косинус|тангенс|арксинус|арккосинус|арктангенс|логарифм|экспонента|пи|деньги|округли)(?![\\p{L}0-9])" },
    { "name": "keyword.operator.glagol", "match": "--|→|->|\\[|\\]|[+\\-*/%=<>|—×÷≤≥≠]" }
  ]
}
