История изменений
Исправление fluorite, (текущая версия) :
Срочно нужна формализация этого ввиде ll1-грамматики.
«Следующий проход» - это обход ast. Я изначально это и имел ввиду. Парсер оставляем LL(1), а приседания делаем после.
причём тут переменные, llvm, машкод
Ты же сказал, что таблица символов это чушь из википедии. Пока не объяснишь что это такое по-твоему, объяснять не буду.
на это тоже ответ.
банально потому что их так удобнее писать
// let a : int ;
// var ::= letKeyword identifier : type ;?
Var parseVar() {
Token t = look();
// и вот с генератором ты тут так не сделаешь
if (t == "leet") {
out("Maybe you mean 'let'?");
}
}
Исходная версия fluorite, :
Срочно нужна формализация этого ввиде ll1-грамматики.
«Следующий проход» - это обход ast. Я изначально это и имел ввиду. Парсер оставляем LL(1), а приседания делаем после.
причём тут переменные, llvm, машкод
Ты же сказал, что таблица символов это чушь из википедии. Пока не объяснишь что это такое по-твоему, объяснять не буду.
на это тоже ответ.
банально потому что их так удобнее писать
// let a : int ;
// var ::= letKeyword identifier type ;?
Var parseVar() {
Token t = look();
// и вот с генератором ты тут так не сделаешь
if (t == "leet") {
out("Maybe you mean 'let'?");
}
}