Когда построена таблица символов для этой программы?

Когда я запускаю make на следующем Makefile, когда создается таблица символов, если она вообще есть?

LEX = flex
YACC = yacc
CC = gcc

calcu: y.tab.o lex.yy.o
    $(CC) -o calcu y.tab.o lex.yy.o -ly -lfl

y.tab.c y.tab.h: parser.y
    $(YACC) -d parser.y

y.tab.o: y.tab.c parser.h
    $(CC) -c y.tab.c

lex.yy.o: y.tab.h lex.yy.c 
    $(CC) -c lex.yy.c

lex.yy.c: calclexer.l parser.h
    $(LEX) calclexer.l

clean:
    rm *.o
    rm *.c
    rm calcu

1 ответ

Решение

make не создает таблицы символов (очевидно, компиляторы и компоновщики, которые он вызывает, должны это делать!). Я предполагаю, что вы имеете в виду все, что в результате calcu Вместо этого бинарный ввод

Если какая-либо такая вещь, как "таблица символов" когда-либо строится calcu, это будет код, который вы вставили в parser.y который перемещается в yacc.tab.c; о том, когда, это будет в течение calcu запускать все, что его ввод - постепенно, так как каждый синтаксис производства, включая "код построения таблицы символов" совпадает.

Другие вопросы по тегам