add sort function

This commit is contained in:
pantor
2018-02-18 19:41:56 +01:00
parent 37d16d3c3a
commit 9f97c9add1
3 changed files with 25 additions and 5 deletions
+9
View File
@@ -12,6 +12,8 @@
#include <iostream>
#include <locale>
#include <regex>
#include <vector>
#include <algorithm>
#include <type_traits>
@@ -242,6 +244,7 @@ struct Parsed {
Lower,
Range,
Length,
Sort,
First,
Last,
Round,
@@ -372,6 +375,11 @@ public:
const std::vector<json> list = eval_expression<std::vector<json>>(element.args[0], data);
return list.size();
}
case Parsed::Function::Sort: {
std::vector<json> list = eval_expression<std::vector<json>>(element.args[0], data);
std::sort(list.begin(), list.end());
return list;
}
case Parsed::Function::First: {
const std::vector<json> list = eval_expression<std::vector<json>>(element.args[0], data);
return list.front();
@@ -605,6 +613,7 @@ public:
{Parsed::Function::Lower, function_regex("lower", 1)},
{Parsed::Function::Range, function_regex("range", 1)},
{Parsed::Function::Length, function_regex("length", 1)},
{Parsed::Function::Sort, function_regex("sort", 1)},
{Parsed::Function::First, function_regex("first", 1)},
{Parsed::Function::Last, function_regex("last", 1)},
{Parsed::Function::Round, function_regex("round", 2)},