Home
Objective Caml
ocaml@conference.jabber.ru
Среда, 19 октября 2011< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ
Конфигурация комнаты
Участники комнаты

GMT+4
[00:21:57] Kakadu вышел(а) из комнаты
[01:16:32] ygrek вышел(а) из комнаты
[01:24:26] Typhon вошёл(а) в комнату
[01:25:17] Typhon вышел(а) из комнаты
[01:32:05] Typhon вошёл(а) в комнату
[03:36:18] letrec вошёл(а) в комнату
[03:43:24] Typhon вышел(а) из комнаты
[04:38:37] komar вышел(а) из комнаты: Logged out
[04:38:40] komar вошёл(а) в комнату
[04:39:47] letrec вышел(а) из комнаты
[07:04:56] klapaucius вышел(а) из комнаты
[10:02:30] gds вошёл(а) в комнату
[11:27:37] komar вышел(а) из комнаты
[11:29:25] ermine вошёл(а) в комнату
[11:46:25] komar вошёл(а) в комнату
[11:47:03] komar вышел(а) из комнаты
[11:49:38] <ermine> скажите, а почему Pervasives.input возвращает \n на конце строчки, у которой там реально нет \n, а только конец файла?
[11:49:54] <ermine> не пойму как к этому парсер присобачить
[12:04:21] <ermine> присобачилась как-то
[12:05:10] <ermine> жотя не совсем
[12:09:42] <ermine> тут скорее возник интересный вопрос - в какой момент отрабатывать EOF стрима :)
[12:09:52] <ermine> gds: ты с этим не мучался?
[12:16:29] <ermine> если писать newline ::= \n | EOF и потом юзать newline+, то все зацикливается, хе-хе
[12:20:31] <ermine> вот тут наступает новая засада - как писать грамматику, которая не нуждается в бэктрекинге
[12:28:25] <ermine> gds: GLR - без бэктрекинга?
[12:35:01] ermine потыкала шпилькой в gds
[13:15:34] Typhon вошёл(а) в комнату
[13:57:34] ermine вышел(а) из комнаты: Replaced by new connection
[13:57:35] ermine вошёл(а) в комнату
[14:05:33] shaggie вошёл(а) в комнату
[14:23:09] <gds> ermine: eof -- не мучился, итераты же :)  glr -- с альтернативами, строящимися по ходу, как я понял.  но давно вникал.
[14:42:21] <ermine> gds: с еофом у меня возникла проблема в такой грамматике
S = Rule+
Rule = 'a' newline+
newline = '\n' | EOF
[14:43:57] <gds> в чём конкретно проблема?
[14:53:09] <ermine> зацикливается
[14:54:16] <ermine> ну вернет правило eof true, потом правило plus смотрит, что его внутренее правило newline вернуло true и продолжает плюсовать
[14:55:00] <ermine> казалось бы, только терминалы должны смотреть что в стриме
[14:56:34] <ermine> смешно, в общем
[15:02:32] <gds> как тупой вариант -- протащи EOF'ы наверх, тут поможет.
newline = ... | EOF =>
  Rule = 'a' newline+ | EOF
  S = Rule+ | EOF
в общем же случае -- если EOF, то везде рассматривать окончание матчинга.
я туплю сейчас (точнее, занят кучей других дел, близких по виду занятия, но далёких от парсинга).  попробуй, может, глянуть, как хотя бы в тупейших ll/lalr обрабатывают кончик.
[15:03:59] <ermine> gds: я уже подумала о таком варианте, этот сработает точно, а вот научно ли это?
[15:04:10] <gds> антинаучно!  инженерно!
[15:06:35] <ermine> gds: а вот если в alternate матчить EOF стрима, то до или после матчинга входящими в alternate правил?
[15:07:08] Kakadu вошёл(а) в комнату
[15:07:18] <ermine> видимо после, интересно, не будет ли зацикливания опять, надо поиграться
[15:08:04] <ermine> но опять же проблема в том, что текущее состояние стрима - это как бы пустой (уже закончившийся) чанк
[15:17:55] <ermine> да, вербализация в чате рулит
[15:18:25] <ermine> добавила в plus рассмотрелие случая EOF после успешной отработки подправила, перестало зацикливаться
[15:19:49] <ermine> kewl
[15:28:15] <gds> хз, будет ли всегда работать.
[15:29:04] letrec вошёл(а) в комнату
[15:30:09] <gds> подумалось: если потом запилить частичную вычислялку некоторых известных штук во время компиляции, то вполне получится использовать ML так, как он изначально предназначался для использования (meta-language), а но сразу оптимизируя то, что известно на этапе компиляции.  то есть, если велика вероятность того, что кто-то запилит это дело, можно уже сейчас начинать использовать камло так.  (dsl'ы в языке, например; ну, кое-что добавить надо будет.)
[15:30:47] <Typhon> а метаокамль не это делает?
[15:30:51] <Typhon> http://www.metaocaml.org/
[15:33:33] <gds> делает что-то близкое.
[15:51:54] <gds> гы, ocamlbrowser умеет клавиатуру + поиск по имени модуля (если достаточно быстро набирать, когда курсор на списке модулей, самый левый-верхний раздел).  а я чото мышкой раньше.
[15:53:48] <ermine> gds: фсё будет работать, только надо дочитать книжку про парсинх
[15:53:59] <gds> так вперде!
[15:54:55] <ermine> да я помаленьку пишу читалку грамматики, которая описывает еще одну грамматику, вот так я решила себе проблему с нотацией конечной грамматики
[15:55:18] <ermine> вот еще не решила, как же порождать разумные лексемы, а пока только матчю тупо
[15:55:57] <ermine> в надежде, что когда-нить осенит
[15:56:09] letrec вышел(а) из комнаты
[15:56:47] <gds> кстати, тут манатки кое-чем хороши.  у них bind принимает в качестве аргумента, условно, ('a -> m 'b).  и этот 'a обычно в форме "fun mybinding -> ".  автоматически получаешь привязку к mybinding.  это -- хорошее свойство манаток.
[15:58:38] <ermine> не, манатки тут ни при чем, тут надо решать на каком уровне детализации собирать кусок инпута и отправить в следующий стрим
[15:59:38] <ermine> например
alpha = [a-z]
name = фдзрф+
rule = name space name
space = ' ' | '\n'
[15:59:50] <ermine> как тут твои манатки решают?
[16:00:24] <ermine> name = alpha+
[16:08:07] <gds> манатки решают другой вопрос -- привязку значений к именам.
[16:09:20] <ermine> ну да, а меня вот этот вопрос интересует
[16:10:05] <ermine> да и передавать накапливаемые значения можно без монад, было бы по какой схеме копить
[16:13:56] Kakadu вышел(а) из комнаты
[16:15:52] Kakadu вошёл(а) в комнату
[17:52:52] letrec вошёл(а) в комнату
[21:09:23] letrec вышел(а) из комнаты
[22:00:16] ermine вышел(а) из комнаты
[22:02:52] ygrek вошёл(а) в комнату
[22:15:18] shaggie вышел(а) из комнаты
[22:27:46] gds вышел(а) из комнаты
[22:37:42] Typhon вошёл(а) в комнату
[22:41:29] Typhon вышел(а) из комнаты: Replaced by new connection
[22:41:30] Typhon вошёл(а) в комнату
[23:01:59] shaggie вошёл(а) в комнату
[23:11:41] shaggie вышел(а) из комнаты
[23:18:47] Typhon вошёл(а) в комнату
[23:18:54] <Typhon> http://www.austms.org.au/Jobs/Computing946.html
[23:59:16] <ygrek> Typhon: ты ж это уже кидал?
[23:59:39] <Typhon> вот я ща тоже сижу и думаю, кидали ли
[23:59:41] <Typhon> *кидал
[23:59:42] <Typhon> :-)
[23:59:52] <Typhon> вспомнил, что кидал на сам блог редлизарда
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!