刚看完词法分析器这章,可还不明白输入与输出结果的具体形式
今天做了一个程序,打开三个文件,分别为输入,输出,关键字文件,
当然,还应该有常量表,标识符表等,但我不清楚有什么用,不知怎么用。
"input.txt"
void main(void)
{
if a11==11b
printf();
bye missing you!
}
"keyword.txt"
auto break case char const
continue default do double else
enum extern float for goto
if int long register return
short signed sizeof static struct
switch typedef union unsigned void
volatile while
"output.txt"
void 4(保留字,-)
main 4(标识符,-)
((右括号运算符,-)
void 4(保留字,-)
)(左括号运算符,-)
{(边界运算符,-)
if 2(保留字,-)
a11 3(标识符,-)
==(等于比较符,-)
11 2(常量,-)
b 1(标识符,-)
printf 6(标识符,-)
((右括号运算符,-)
)(左括号运算符,-)
;(逗号界符,-)
bye 3(标识符,-)
missing 7(标识符,-)
you 3(标识符,-)
! (error,-)
}(边界运算符,-)
以上输出结果,11b是错误,现还没分析出来,我自己认为这其中有些地方,比如表达式方面与语法分析有些不清,请大虾指点。