Я новичок в OCaml и пытаюсь создать парсер, я хочу иметь список, в котором хранятся все методы в моем классе. Это одна часть, которая у меня есть в моем файле .mly.Оператор :: OCaml
init_method_list:
{ [] }
| method_list method_decl { List.rev($1) }
;
method_list:
method_decl { [ $1 ] }
| method_list method_decl { $2 :: $1 }
;
Может кто-нибудь объяснить, что здесь происходит? Особенно: операция. Пошел в поисковую систему, но не смог найти оператора в документах.
Получаю, что список может быть пустым или мы делаем правильные рекурсивные вызовы, чтобы заполнить его всеми методами в классе. method_decl
просто ищет совпадение конкретных комбинаций токенов, представляющих метод.
preend '$ 2' и' $ 1'? – cchantep
В Ocaml оператор '::' используется для объединения элемента типа '' a' в список типа ''list'. – alifirat
ладно спасибо, добавляет ли элемент в начало списка? @alifirat – novalain