Comments 11
Название уже хорошее... евпочя
+5
Разве для Раста нет кодогенератора грамматического парсера на основе какого-нибудь из языков описания грамматик? Было бы гораздо легче декларативно её описать.
+3
re2c в последней версии для раста генерит код
0
Кодогенераторы есть, конечно. Но кажется, что освоить язык Rust лучше помогает изучение языка, а не правил написания грамматик. Да и автору другие руководства по парсингу в Rust показались слишком сложными.
+2
Конкретно на Раст есть библиотека Pest, поддерживающая крайне удобный способ описания грамматик.
+2
Код будет почище, если pc, fp объявить как usize, а то эти постоянные `as i32`, `as usize`…
ps ага, вижу что значения pc/fp кладутся в стек `data`, а потому преобразование не избежать в этих местах.
ps ага, вижу что значения pc/fp кладутся в стек `data`, а потому преобразование не избежать в этих местах.
0
Лексер читать больно. Каждый токен делает копию строки из входного потока, а функции типа lex_number делают посимвольно push_str, разве это не лишние аллокации?
Идеально было бы придумать что-то типа «срезов», чтобы токен ссылался на позицию+длину во входном файле.
Идеально было бы придумать что-то типа «срезов», чтобы токен ссылался на позицию+длину во входном файле.
+2
Only those users with full accounts are able to leave comments. Log in, please.
Минимальная реализация Lua на Rust