Разбор вопроса? Равнина С
Я понимаю, что такое токенизация. Я могу заставить Лекса прочитать файл, разделить токены и отобразить его в консоли. Каков же процесс после этого? Как я могу получить маркированную информацию или передать ее синтаксическому анализатору и соединиться с treenode? Код, который у меня есть, печатает весь буфер, который считывается, а затем разбивает каждый на маркеры и помечает их в соответствии с ними.
1)в этот момент я снова пытаюсь вытащить определения из препроцессора и Лекса? Что должно быть в файле lex.h или в файле def, как у доктора Доббса?
2)я называю этот знак.h и treenode.h и начать пытаться сопоставить их?
3)делаю ли я таблицу символов на этом этапе?
Там должна быть какая-то добрая душа, которая поможет мне соединить точки. Лол.
Что я уже пробовал:
.
Patrice T
Этот код не является C.
Rick York
Я думаю, что он хочет написать парсер на языке Си.
Mohibur Rashid
c не имеет типа переменной bool
RavenLee
Что ты имеешь в виду? Код, кажется, работает нормально, без ошибок.
Mohibur Rashid
Как называется ваш файл? с расширением, пожалуйста. В любом случае, быстрый тест для вас
mohibur.rashid@pcname /cygdrive/c/Users/mohibur.rashid $ echo -e '#include <stdio.h>\n int main() {\n\tbool b;\n\tb=true;\n\tprintf("%d\\n", b);\n\treturn 0;\n}' > x.c mohibur.rashid@pcname /cygdrive/c/Users/mohibur.rashid $ gcc x.c x.c: In function ‘main’: x.c:3:2: error: unknown type name ‘bool’ bool b; ^~~~ x.c:4:4: error: ‘true’ undeclared (first use in this function) b=true; ^~~~ x.c:4:4: note: each undeclared identifier is reported only once for each function it appears in
RavenLee
Я понятия не имею об этом коде БАД. Все прекрасно работает в windows и Visual studio. Просто здесь, чтобы попытаться выяснить связи между файлами лексики и синтаксического анализа и деревом AST.