parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Parser 3.5.0 RC

moko 14.12 23:43 / 14.12 23:48

Выпущен релиз кандидат версии 3.5.0 (не 3.4.7, потому что расширен синтаксис).
Скачать можно по ссылке https://www.parser.ru/download/beta/.
Приветствуются багрепорты и активное тестирование.

Перечень изменений в новостях.
Документация будет обновлена к релизу, пока есть шпаргалка по классу array из operators.txt:
array
    в выражении
        логическое значение равно "не пуст?"
        числовое значение равно count[]
    $массив.индекс, $массив.(выражение)
        возврат значения по заданному индексу
    $массив.индекс[значение], $массив.(выражение)[значение]
        присваивание значения по индексу
    $массив[значение;значение;...]
        создание массива с заданными значениями
    ^array::create[]
    ^array::create[значение;значение;...]
        создание массива с заданными значениями или пустого массива
    ^array::copy[копируемый массив или хеш с цифровыми ключами]
        копирование массива или хеша с цифровыми ключами
    ^массив.add[добавляемый массив или хеш с цифровыми ключами]
        добавление элементов из другого массива или хеша с перезаписью значений у совпадающих индексов
    ^массив.join[добавляемый массив или произвольный хеш]
        добавление элементов другого массива или хеша в конец массива
    ^массив.append[значение;значение;...]
        добавление элементов в конец массива
    ^массив.insert(индекс)[значение;значение;...]
        вставка элементов в указанную позицию массива
    ^массив.left(n)
        возвращает новый массив из n первых элементов массива
    ^массив.right(n)
        возвращает новый массив из n последних элементов массива
    ^массив.mid(m;n)
        возвращает новый массив, содержащий n инициализированных элементов массива, начиная с позиции m
    ^массив.delete(index)
        удаление элемента массива с оставлением пустого места
    ^массив.remove(index)
        удаление элемента со сдвигом последующих элементов на его место
    ^массив.push[значение]
        добавление элемента в конец массив
    ^массив.pop[]
        возвращает последний элемент и удаляет его из массива
    ^массив.contain(индекс)
        существует ли в массиве элемент по переданому индексу (bool)
    ^array::sql{запрос}[[ $.sparse(false) $.distinct(false) $.limit(2) $.offset(4) $.type[hash|string|table]]]
        создание массива на основе выборки из базы данных
        $.sparse(false), по умолчанию - создать обычный массив. Значения строк выборки последовательно добавляются в массив
        $.sparse(true) - создать разреженный массив. Первая колонка данных должна содержать индексы,
        по которым будут размещены значения (аналогично ^hash::sql{})
        получается array of hash (ключи=названия остальных колонкок ответа) или
        string=значение каждого элемента - строка, при этом надо указать ровно два столбца или
        table=значение каждого элемента - таблица
    ^массив.keys[[название колонки с ключами]]
        таблица из одного столбца key или переданного названия с индексами инициализированных элементов массива
    ^массив.count[]
        количество инициализированных элементов массива
    ^массив.count[all]
        общее количество элементов массива, включая неинициализированные
    ^массив.foreach[index;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}]
        перебирает все инициализированные элементы массива
    ^массив.for[index;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}]
        перебирает все элементы массива
    ^массив.at[first|last][[key|value|hash]]
    ^массив.at([-]число)[[key|value|hash]]
        доступ к элементу массива по порядковому номеру
    ^массив.set[first|last][значение]
    ^массив.set([-]число)[значение]
        установка значения элемента массива по порядковому номеру
    ^массив.compact[]
        удаление неинициализированных элементов массива
    ^массив.compact[undef]
        удаление неинициализированных и пустых элементов массива
    ^массив.sort[key;value]{{ключеделатель строка}|(ключеделатель число)}[[desc|asc]] default=asc
        сортировка массива
    $обратный_массив[^массив.reverse[]]
        возвращает новый массив из элементов исходного в обратном порядке
    $отобранное[^массив.select[key;value](выражение)[ $.limit(N) $.reverse(bool) ]]
        отбор элементов массива, для которых условие истинно