parser

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

 

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

Ответ

moko 05.10.2015 20:57 / 05.10.2015 21:01

1. Возможность сквозного автосоздания хеша
В самом парсере так сделать нельзя, поскольку при обращении к пустому элементу неправильно возвращать пустой хеш, а без этого не получится. Но на парсере это реализуется в несколько строк:
@main[]

$o[^O::create[]]

$o.a.b.c.d[test]
$o.a.b.c.d

@CLASS
O

@create[]

@GET_DEFAULT[name]
$result[^O::create[]]
$self.$name[$result]
2. Глубокое копирование hash как разновидность конструктора
Да, реализация есть на самом парсере, но крутить эти циклы на каждый чих,
лучше бы парсер это умел нативно.
Особой разницы в скорости не будет, максимум в раза в полтора.
3. Операции вставки!
Вот это пожалуй может быть, хотя мне если честно ни разу не было нужно. Но синтаксис надо продумывать, индекс/название ключа вероятно лучше первым.
4. Функции стека/очереди
Все это замечательно реализуется и так, достаточно сделать ключами хеша числа.
@push[v]
$n($stack+1)
$stack.$n[$v]

@pop[]
$n($stack)
$result[$stack.$n]
^stack.delete[$n]
В случае очереди будут кода понятно немного больше, будут два числа $head и $tail, но все равно это порядка десятка строк.
5. Инвертирование порядка ключей хеша.
Причина Очевидна.
Боюсь не мне. :)