我正在尝试使用 C 和野牛制作一个逻辑计算器,但我遇到了麻烦,因为 C 没有布尔类型。
这是我的 Flex 规则的一部分:
"TRUE" |
"T" |
"t" {yylval = 1; return TRUE; }
"FALSE" |
"F" |
"f" {yylval = 0; return TRUE; }
这是我的 Bison 规则的一部分:
line:
EOL
| exp EOL {printf("%d %d %d \n"), $1, $2,$$;}
;
exp: TRUE
| FALSE
;
这是我在计算器中键入 T 后跟 EOL(行尾)时的输出:
10 12 1
10 是换行符的 ascii,12 是回车的 ascii,1 是开始的 Ascii 我对 F 有相同的输出。
如果我输入 T,我怎样才能做到 1 在 1 美元中,如果我输入 F,0 在 1 美元中?