2009-11-16 3 views
0

Когда я запустил 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 

ответ

2

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

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

+0

Я думаю, что таблица символов полностью построена до того, как программа будет запущена. – neuromancer