Когда построена таблица символов для этой программы?
Когда я запускаю 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
запускать все, что его ввод - постепенно, так как каждый синтаксис производства, включая "код построения таблицы символов" совпадает.