какими C функциями можно получить кол-во аргументов переданных программе и сами аргументы? ну, типа, компилятор такой, например
int main(int argc, const char *argv) { // ... }
вот как компилятору брать эти argc и argv?
начинается выполнение программы со _start. Сделайте условный hello world , запустите gdb, поставьте breakpoint на _start и изучите стек и регистры на предмет того, где что :) ответ, конечно, зависит от платформы.
так это же ниже их. crt как раз берут этот результат подготавливают всё и вызывают main
Ниже чего? crt = C runtime. Мысль в том, что конкретный исполняемый файл можно и полезно изучить, но все, что связано с crt, завязано на компилятор, платформу и стандартную библиотеку
Ниже чего? crt = C runtime. Мысль в том, что конкретный исполняемый файл можно и полезно изучить, но все, что связано с crt, завязано на компилятор, платформу и стандартную библиотеку
может, вы не тому ответили? я не призывал изучать crt.
Зачем нужен лексер и в каких случаях без него не обойтись?
Лексер нужен для разгрузки сложности парсера. Обойтись без него можно, но тогда придётся делать это же самое в разных точках парсера. Без лексера сложно обойтись при использовании каких-нибудь yacc/bison/happy
Лексер нужен для разгрузки сложности парсера. Обойтись без него можно, но тогда придётся делать это же самое в разных точках парсера. Без лексера сложно обойтись при использовании каких-нибудь yacc/bison/happy
Ясно, просто увидел грамматику чисел и не понял зачем. Разве не лексер должен их находить? Отсюда и вопрос.
Ясно, просто увидел грамматику чисел и не понял зачем. Разве не лексер должен их находить? Отсюда и вопрос.
Традиционно для лексера использовались регулярные выражения, а для парсеров - кс грамматики. но для лексера тоже можно использовать кс-грамматику, в antlr так и делается.
Традиционно для лексера использовались регулярные выражения, а для парсеров - кс грамматики. но для лексера тоже можно использовать кс-грамматику, в antlr так и делается.