1

我必须为我的词法分析器保留一个标记的信息,例如它的行和列。如果我遇到这样的一些源代码: \t \t int myInt;,我怎么知道令牌的列?因为我不知道 \t 需要多少列。谢谢

4

1 回答 1

2

实验证据表明,gcc 至少将制表符简单地计算为单个字符。

如果您想找到通常显示文本的列号,则必须选择制表符宽度(可能是 8 或 4)并向上舍入到第一个匹配的制表位。但问题当然是不同的用户选择不同的制表符宽度,让编译器任意选择自己的制表符宽度可能只会增加混乱。

于 2013-03-30T20:06:25.267 回答