为了学ANTLR,去看B站哈工大的编译原理(以前竟然没有学过编译原理,汗!),里面有一个习题,写出无符号整数的文法,网上看了一些,都不对,自己写了一个:
S -> DT | D | 0
T -> TD | T0 | D | 0
D -> 1 | 2 | ... | 9
一种更紧凑的表达:
S -> 0 | D(D∪0)*
D -> 1|2|3...|9
其中:∪和*都是集合运算符。
这里使用的是2型文法,也就是使用最广泛的上下文无关文法。
为了学ANTLR,去看B站哈工大的编译原理(以前竟然没有学过编译原理,汗!),里面有一个习题,写出无符号整数的文法,网上看了一些,都不对,自己写了一个:
S -> DT | D | 0
T -> TD | T0 | D | 0
D -> 1 | 2 | ... | 9
一种更紧凑的表达:
S -> 0 | D(D∪0)*
D -> 1|2|3...|9
其中:∪和*都是集合运算符。
这里使用的是2型文法,也就是使用最广泛的上下文无关文法。