1.non-terminal can not be terminal.
The following is wrong:
?rngConst:INT -> int_const_rng
|CNAME -> name_const_rng
Because such a BNF means a non-termininal is directly a termininal
But we can use the followin instead:
?type_constr:CNAME -> var_type
| (INT |CNAME) ".." (INT |CNAME) -> range_type