powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / OCaml, задание типов
2 сообщений из 2, страница 1 из 1
OCaml, задание типов
    #38004971
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю parser.mly. В нем надо явно задать тип для стартового слова грамматики.
Почти что методом тыка сообразил что если мне нужно в итоге получить список кодов, то надо писать:
Код: sql
1.
2.
%start operations
%type <Types.code list> operations

Где Types.code это
Код: sql
1.
type code = A | B | C | etc..


ocamlyacc выдает .mli в котором:
Код: sql
1.
2.
val operations :
  (Lexing.lexbuf  -> token) -> Lexing.lexbuf -> Types.code  list

Но что-то я не улавливаю смысла этого интерфейса. Что он конкретно объявляет? И как это работает?

Почему в %type надо обязательно указывать тип элементов для списка? Почему нельзя просто нетипизированный список сделать?
Вообще, меня очень смущает, почему это вдруг вот в этом конкретном месте у OCaml'а возник запрет на угадывание типов? Во всех остальных местах он сам решает какой тип данных лежит, а вот тут ему вдруг надо конкретно указывать?!
...
Рейтинг: 0 / 0
OCaml, задание типов
    #38005277
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl,

про ocamlyacc нашел только это: http://stackoverflow.com/tags/ocamlyacc/info и польскую страницу в вике, из которой ничего не понял.

White Owl
Код: plaintext
1.
val operations :
  (Lexing.lexbuf  -> token) -> Lexing.lexbuf -> Types.code list
Но что-то я не улавливаю смысла этого интерфейса. Что он конкретно объявляет? И как это работает?
Что именно тебе не понятно? operations -- это функция, принимающая первым параметром функцию, читающую из буфера токен, вторым параметром сам буфер и возвращающая список значений типа Types.code.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / OCaml, задание типов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]