Size: a a a

Programming Offtop

2021 February 12

I

Ilmir in Programming Offtop
Igor
Бля почему по peg-парсерам гуглятся статья Гвидо 😒
Потому что этот мегамозг только пару лет назад с ними познакомился. До этого был LL(1).
источник

I

Ilmir in Programming Offtop
(
Так, и почему у тебя здесь будет копипаст?
У тебя, грубо говоря, должна быть функция grammar(string), которая вызывает у себя внутри себя функции из массива rules[<rule-name>](results_of_subrules_application). Проблема в том, что когда ты компилируешь grammar, тебе не известны типы, которые возвращают rules.
источник

(

( in Programming Offtop
Ilmir
У тебя, грубо говоря, должна быть функция grammar(string), которая вызывает у себя внутри себя функции из массива rules[<rule-name>](results_of_subrules_application). Проблема в том, что когда ты компилируешь grammar, тебе не известны типы, которые возвращают rules.
И почему тебе не известны типы, которые возвращают rules?
источник

I

Ilmir in Programming Offtop
(
И почему тебе не известны типы, которые возвращают rules?
Потому что хочется переиспользовать грамматику под каждый новый набор правил. Скобка, заебал тупить.
источник

(

( in Programming Offtop
Ilmir
Потому что хочется переиспользовать грамматику под каждый новый набор правил. Скобка, заебал тупить.
Что значит переиспользовать грамматику под каждый новый набор правил? Грамматика же и есть набор правил
Ильмир, заебал непонятно писать.
источник

I

Ilmir in Programming Offtop
(
Что значит переиспользовать грамматику под каждый новый набор правил? Грамматика же и есть набор правил
Ильмир, заебал непонятно писать.
Читай
grammar Calculator {
   token TOP { <calc-op> }

   proto rule calc-op          {*}
         rule calc-op:sym<add> { <num> '+' <num> }
         rule calc-op:sym<sub> { <num> '-' <num> }

   token num { \d+ }
}

class Calculations {
   method TOP              ($/) { make $<calc-op>.made; }
   method calc-op:sym<add> ($/) { make [+] $<num>; }
   method calc-op:sym<sub> ($/) { make [-] $<num>; }
}
источник

(

( in Programming Offtop
Ilmir
Читай
grammar Calculator {
   token TOP { <calc-op> }

   proto rule calc-op          {*}
         rule calc-op:sym<add> { <num> '+' <num> }
         rule calc-op:sym<sub> { <num> '-' <num> }

   token num { \d+ }
}

class Calculations {
   method TOP              ($/) { make $<calc-op>.made; }
   method calc-op:sym<add> ($/) { make [+] $<num>; }
   method calc-op:sym<sub> ($/) { make [-] $<num>; }
}
Ну, так и шо? Грамматика универсально квантифицирована по целевому языку, как и в твоем примере на котлине
источник

I

Ilmir in Programming Offtop
(
Ну, так и шо? Грамматика универсально квантифицирована по целевому языку, как и в твоем примере на котлине
У тебя, грубо говоря, должна быть функция grammar(string), которая вызывает у себя внутри себя функции из массива rules[<rule-name>](results_of_subrules_application). Проблема в том, что когда ты компилируешь grammar, тебе не известны типы, которые возвращают rules.
источник

(

( in Programming Offtop
ля
источник

(

( in Programming Offtop
Ilmir
У тебя, грубо говоря, должна быть функция grammar(string), которая вызывает у себя внутри себя функции из массива rules[<rule-name>](results_of_subrules_application). Проблема в том, что когда ты компилируешь grammar, тебе не известны типы, которые возвращают rules.
Универсальная квантификация как бы и нужна для того, когда ты не знаешь, с чем работаешь
источник

(

( in Programming Offtop
Проблема-то в чем?
источник

I

Igor in Programming Offtop
Посмотрел: Концовка доклада явно показывается почему пытаться совмещать ООП и ФП это плохая идея 😏
источник

I

Ilmir in Programming Offtop
(
Проблема-то в чем?
В том, что ты заставляешь юзера писать все эти forall и тп в грамматике, когда компилятор может вывести эти типы, если отложить компиляцию грамматики. Да ты садист!
источник

(

( in Programming Offtop
Ilmir
В том, что ты заставляешь юзера писать все эти forall и тп в грамматике, когда компилятор может вывести эти типы, если отложить компиляцию грамматики. Да ты садист!
ну да, типы ставятся в месте использования, так стат-тайпинг и работает
источник

(

( in Programming Offtop
А что поделать
источник

I

Ilmir in Programming Offtop
(
А что поделать
отложить компиляцию грамматики
источник

D

Dmitry in Programming Offtop
Что такое компиляция грамматики?
источник

I

Ilmir in Programming Offtop
Dmitry
Что такое компиляция грамматики?
У тебя, грубо говоря, должна быть функция grammar(string), которая вызывает у себя внутри себя функции из массива rules[<rule-name>](results_of_subrules_application). Проблема в том, что когда ты компилируешь grammar, тебе не известны типы, которые возвращают rules.
источник

D

Dmitry in Programming Offtop
Ну то есть надо же распарсить ключевые слова, построить аст, а потом уже компилировать его, оптимизируя и преобращуя в другой код. Какой из этих стапов называется компиляцией грамматики?
источник

D

Dmitry in Programming Offtop
Аха, речь про компиляцию компилятора?
источник