>>4
わかりやすく32bit符号付き整数としたけど
16進数とか小数とかそういうのにも使う話

BNFとかでもそうだけど、数値の定義は書いてあるけど
その数値の範囲の定義は書いてなかったりするでしょ?

2147483647 までの数値なら OK だけど、2147483648 はエラーにしたい
if (99999999999999 > 2147483647) みたいなことをしようとしたら
オーバーフローになるから構文解析の時点でどうにかしなきゃいけなくない?