fix generated builder: builders didn't have the generalizations registered

This commit is contained in:
Arpad Ryszka 2019-01-27 18:29:30 +01:00
parent 505061f31a
commit 03acd8dea4
3 changed files with 62 additions and 44 deletions

View File

@ -227,6 +227,15 @@ func (b *choiceBuilder) generate(w io.Writer, done map[string]bool) error {
fprintf("name: \"%s\",", b.name) fprintf("name: \"%s\",", b.name)
} }
if len(b.generalizations) > 0 {
fprintf("generalizations: []int{")
for i := range b.generalizations {
fprintf("%d,", b.generalizations[i])
}
fprintf("},")
}
fprintf("};") fprintf("};")
if len(b.options) > 0 { if len(b.options) > 0 {

View File

@ -1058,33 +1058,33 @@ func Parse(r io.Reader) (*Node, error) {
p188.items = []parser{&p186, &p187, &p186} p188.items = []parser{&p186, &p187, &p186}
var b188 = sequenceBuilder{id: 188, commit: 32, name: "syntax", ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} var b188 = sequenceBuilder{id: 188, commit: 32, name: "syntax", ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}}
var b186 = choiceBuilder{id: 186, commit: 2} var b186 = choiceBuilder{id: 186, commit: 2}
var b185 = choiceBuilder{id: 185, commit: 70} var b185 = choiceBuilder{id: 185, commit: 70, generalizations: []int{186}}
var b15 = choiceBuilder{id: 15, commit: 66} var b15 = choiceBuilder{id: 15, commit: 66, generalizations: []int{185, 186}}
var b2 = sequenceBuilder{id: 2, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b2 = sequenceBuilder{id: 2, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}}
var b1 = charBuilder{} var b1 = charBuilder{}
b2.items = []builder{&b1} b2.items = []builder{&b1}
var b4 = sequenceBuilder{id: 4, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b4 = sequenceBuilder{id: 4, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}}
var b3 = charBuilder{} var b3 = charBuilder{}
b4.items = []builder{&b3} b4.items = []builder{&b3}
var b6 = sequenceBuilder{id: 6, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b6 = sequenceBuilder{id: 6, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}}
var b5 = charBuilder{} var b5 = charBuilder{}
b6.items = []builder{&b5} b6.items = []builder{&b5}
var b8 = sequenceBuilder{id: 8, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b8 = sequenceBuilder{id: 8, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}}
var b7 = charBuilder{} var b7 = charBuilder{}
b8.items = []builder{&b7} b8.items = []builder{&b7}
var b10 = sequenceBuilder{id: 10, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b10 = sequenceBuilder{id: 10, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}}
var b9 = charBuilder{} var b9 = charBuilder{}
b10.items = []builder{&b9} b10.items = []builder{&b9}
var b12 = sequenceBuilder{id: 12, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b12 = sequenceBuilder{id: 12, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}}
var b11 = charBuilder{} var b11 = charBuilder{}
b12.items = []builder{&b11} b12.items = []builder{&b11}
var b14 = sequenceBuilder{id: 14, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b14 = sequenceBuilder{id: 14, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}}
var b13 = charBuilder{} var b13 = charBuilder{}
b14.items = []builder{&b13} b14.items = []builder{&b13}
b15.options = []builder{&b2, &b4, &b6, &b8, &b10, &b12, &b14} b15.options = []builder{&b2, &b4, &b6, &b8, &b10, &b12, &b14}
var b54 = sequenceBuilder{id: 54, commit: 72, name: "comment", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} var b54 = sequenceBuilder{id: 54, commit: 72, name: "comment", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}, generalizations: []int{185, 186}}
var b37 = choiceBuilder{id: 37, commit: 74} var b37 = choiceBuilder{id: 37, commit: 74}
var b36 = sequenceBuilder{id: 36, commit: 74, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} var b36 = sequenceBuilder{id: 36, commit: 74, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}, generalizations: []int{37}}
var b33 = sequenceBuilder{id: 33, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} var b33 = sequenceBuilder{id: 33, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}}
var b31 = charBuilder{} var b31 = charBuilder{}
var b32 = charBuilder{} var b32 = charBuilder{}
@ -1093,13 +1093,13 @@ func Parse(r io.Reader) (*Node, error) {
var b34 = charBuilder{} var b34 = charBuilder{}
b35.items = []builder{&b34} b35.items = []builder{&b34}
b36.items = []builder{&b33, &b35} b36.items = []builder{&b33, &b35}
var b30 = sequenceBuilder{id: 30, commit: 74, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}} var b30 = sequenceBuilder{id: 30, commit: 74, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{37}}
var b18 = sequenceBuilder{id: 18, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} var b18 = sequenceBuilder{id: 18, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}}
var b16 = charBuilder{} var b16 = charBuilder{}
var b17 = charBuilder{} var b17 = charBuilder{}
b18.items = []builder{&b16, &b17} b18.items = []builder{&b16, &b17}
var b26 = choiceBuilder{id: 26, commit: 10} var b26 = choiceBuilder{id: 26, commit: 10}
var b23 = sequenceBuilder{id: 23, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} var b23 = sequenceBuilder{id: 23, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{26}}
var b20 = sequenceBuilder{id: 20, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b20 = sequenceBuilder{id: 20, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}}
var b19 = charBuilder{} var b19 = charBuilder{}
b20.items = []builder{&b19} b20.items = []builder{&b19}
@ -1107,7 +1107,7 @@ func Parse(r io.Reader) (*Node, error) {
var b21 = charBuilder{} var b21 = charBuilder{}
b22.items = []builder{&b21} b22.items = []builder{&b21}
b23.items = []builder{&b20, &b22} b23.items = []builder{&b20, &b22}
var b25 = sequenceBuilder{id: 25, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b25 = sequenceBuilder{id: 25, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{26}}
var b24 = charBuilder{} var b24 = charBuilder{}
b25.items = []builder{&b24} b25.items = []builder{&b24}
b26.options = []builder{&b23, &b25} b26.options = []builder{&b23, &b25}
@ -1119,22 +1119,22 @@ func Parse(r io.Reader) (*Node, error) {
b37.options = []builder{&b36, &b30} b37.options = []builder{&b36, &b30}
var b53 = sequenceBuilder{id: 53, commit: 10, ranges: [][]int{{0, -1}, {0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}}} var b53 = sequenceBuilder{id: 53, commit: 10, ranges: [][]int{{0, -1}, {0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}}}
var b50 = choiceBuilder{id: 50, commit: 74} var b50 = choiceBuilder{id: 50, commit: 74}
var b39 = sequenceBuilder{id: 39, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b39 = sequenceBuilder{id: 39, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}}
var b38 = charBuilder{} var b38 = charBuilder{}
b39.items = []builder{&b38} b39.items = []builder{&b38}
var b41 = sequenceBuilder{id: 41, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b41 = sequenceBuilder{id: 41, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}}
var b40 = charBuilder{} var b40 = charBuilder{}
b41.items = []builder{&b40} b41.items = []builder{&b40}
var b43 = sequenceBuilder{id: 43, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b43 = sequenceBuilder{id: 43, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}}
var b42 = charBuilder{} var b42 = charBuilder{}
b43.items = []builder{&b42} b43.items = []builder{&b42}
var b45 = sequenceBuilder{id: 45, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b45 = sequenceBuilder{id: 45, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}}
var b44 = charBuilder{} var b44 = charBuilder{}
b45.items = []builder{&b44} b45.items = []builder{&b44}
var b47 = sequenceBuilder{id: 47, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b47 = sequenceBuilder{id: 47, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}}
var b46 = charBuilder{} var b46 = charBuilder{}
b47.items = []builder{&b46} b47.items = []builder{&b46}
var b49 = sequenceBuilder{id: 49, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b49 = sequenceBuilder{id: 49, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}}
var b48 = charBuilder{} var b48 = charBuilder{}
b49.items = []builder{&b48} b49.items = []builder{&b48}
b50.options = []builder{&b39, &b41, &b43, &b45, &b47, &b49} b50.options = []builder{&b39, &b41, &b43, &b45, &b47, &b49}
@ -1156,7 +1156,7 @@ func Parse(r io.Reader) (*Node, error) {
var b176 = sequenceBuilder{id: 176, commit: 66, ranges: [][]int{{1, 1}, {0, 1}}} var b176 = sequenceBuilder{id: 176, commit: 66, ranges: [][]int{{1, 1}, {0, 1}}}
var b169 = sequenceBuilder{id: 169, commit: 64, name: "definition", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}} var b169 = sequenceBuilder{id: 169, commit: 64, name: "definition", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}}
var b166 = sequenceBuilder{id: 166, commit: 74, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} var b166 = sequenceBuilder{id: 166, commit: 74, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}}
var b92 = sequenceBuilder{id: 92, commit: 72, name: "symbol", ranges: [][]int{{1, -1}, {1, -1}}} var b92 = sequenceBuilder{id: 92, commit: 72, name: "symbol", ranges: [][]int{{1, -1}, {1, -1}}, generalizations: []int{133, 123, 127}}
var b91 = sequenceBuilder{id: 91, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b91 = sequenceBuilder{id: 91, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}}
var b90 = charBuilder{} var b90 = charBuilder{}
b91.items = []builder{&b90} b91.items = []builder{&b90}
@ -1166,24 +1166,24 @@ func Parse(r io.Reader) (*Node, error) {
var b163 = charBuilder{} var b163 = charBuilder{}
b164.items = []builder{&b163} b164.items = []builder{&b163}
var b162 = choiceBuilder{id: 162, commit: 66} var b162 = choiceBuilder{id: 162, commit: 66}
var b139 = sequenceBuilder{id: 139, commit: 72, name: "alias", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} var b139 = sequenceBuilder{id: 139, commit: 72, name: "alias", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{162}}
var b134 = charBuilder{} var b134 = charBuilder{}
var b135 = charBuilder{} var b135 = charBuilder{}
var b136 = charBuilder{} var b136 = charBuilder{}
var b137 = charBuilder{} var b137 = charBuilder{}
var b138 = charBuilder{} var b138 = charBuilder{}
b139.items = []builder{&b134, &b135, &b136, &b137, &b138} b139.items = []builder{&b134, &b135, &b136, &b137, &b138}
var b142 = sequenceBuilder{id: 142, commit: 72, name: "ws", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} var b142 = sequenceBuilder{id: 142, commit: 72, name: "ws", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{162}}
var b140 = charBuilder{} var b140 = charBuilder{}
var b141 = charBuilder{} var b141 = charBuilder{}
b142.items = []builder{&b140, &b141} b142.items = []builder{&b140, &b141}
var b147 = sequenceBuilder{id: 147, commit: 72, name: "nows", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} var b147 = sequenceBuilder{id: 147, commit: 72, name: "nows", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{162}}
var b143 = charBuilder{} var b143 = charBuilder{}
var b144 = charBuilder{} var b144 = charBuilder{}
var b145 = charBuilder{} var b145 = charBuilder{}
var b146 = charBuilder{} var b146 = charBuilder{}
b147.items = []builder{&b143, &b144, &b145, &b146} b147.items = []builder{&b143, &b144, &b145, &b146}
var b156 = sequenceBuilder{id: 156, commit: 72, name: "failpass", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} var b156 = sequenceBuilder{id: 156, commit: 72, name: "failpass", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{162}}
var b148 = charBuilder{} var b148 = charBuilder{}
var b149 = charBuilder{} var b149 = charBuilder{}
var b150 = charBuilder{} var b150 = charBuilder{}
@ -1193,7 +1193,7 @@ func Parse(r io.Reader) (*Node, error) {
var b154 = charBuilder{} var b154 = charBuilder{}
var b155 = charBuilder{} var b155 = charBuilder{}
b156.items = []builder{&b148, &b149, &b150, &b151, &b152, &b153, &b154, &b155} b156.items = []builder{&b148, &b149, &b150, &b151, &b152, &b153, &b154, &b155}
var b161 = sequenceBuilder{id: 161, commit: 72, name: "root", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} var b161 = sequenceBuilder{id: 161, commit: 72, name: "root", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{162}}
var b157 = charBuilder{} var b157 = charBuilder{}
var b158 = charBuilder{} var b158 = charBuilder{}
var b159 = charBuilder{} var b159 = charBuilder{}
@ -1206,11 +1206,11 @@ func Parse(r io.Reader) (*Node, error) {
var b167 = charBuilder{} var b167 = charBuilder{}
b168.items = []builder{&b167} b168.items = []builder{&b167}
var b133 = choiceBuilder{id: 133, commit: 66} var b133 = choiceBuilder{id: 133, commit: 66}
var b89 = choiceBuilder{id: 89, commit: 66} var b89 = choiceBuilder{id: 89, commit: 66, generalizations: []int{133, 123, 127}}
var b56 = sequenceBuilder{id: 56, commit: 72, name: "any-char", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b56 = sequenceBuilder{id: 56, commit: 72, name: "any-char", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{89, 133, 123, 127}}
var b55 = charBuilder{} var b55 = charBuilder{}
b56.items = []builder{&b55} b56.items = []builder{&b55}
var b75 = sequenceBuilder{id: 75, commit: 72, name: "char-class", ranges: [][]int{{1, 1}, {0, 1}, {0, -1}, {1, 1}, {1, 1}, {0, 1}, {0, -1}, {1, 1}}} var b75 = sequenceBuilder{id: 75, commit: 72, name: "char-class", ranges: [][]int{{1, 1}, {0, 1}, {0, -1}, {1, 1}, {1, 1}, {0, 1}, {0, -1}, {1, 1}}, generalizations: []int{89, 133, 123, 127}}
var b71 = sequenceBuilder{id: 71, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b71 = sequenceBuilder{id: 71, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}}
var b70 = charBuilder{} var b70 = charBuilder{}
b71.items = []builder{&b70} b71.items = []builder{&b70}
@ -1218,11 +1218,11 @@ func Parse(r io.Reader) (*Node, error) {
var b57 = charBuilder{} var b57 = charBuilder{}
b58.items = []builder{&b57} b58.items = []builder{&b57}
var b72 = choiceBuilder{id: 72, commit: 10} var b72 = choiceBuilder{id: 72, commit: 10}
var b66 = choiceBuilder{id: 66, commit: 72, name: "class-char"} var b66 = choiceBuilder{id: 66, commit: 72, name: "class-char", generalizations: []int{72}}
var b60 = sequenceBuilder{id: 60, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b60 = sequenceBuilder{id: 60, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{66, 72}}
var b59 = charBuilder{} var b59 = charBuilder{}
b60.items = []builder{&b59} b60.items = []builder{&b59}
var b65 = sequenceBuilder{id: 65, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} var b65 = sequenceBuilder{id: 65, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{66, 72}}
var b62 = sequenceBuilder{id: 62, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b62 = sequenceBuilder{id: 62, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}}
var b61 = charBuilder{} var b61 = charBuilder{}
b62.items = []builder{&b61} b62.items = []builder{&b61}
@ -1231,7 +1231,7 @@ func Parse(r io.Reader) (*Node, error) {
b64.items = []builder{&b63} b64.items = []builder{&b63}
b65.items = []builder{&b62, &b64} b65.items = []builder{&b62, &b64}
b66.options = []builder{&b60, &b65} b66.options = []builder{&b60, &b65}
var b69 = sequenceBuilder{id: 69, commit: 72, name: "char-range", ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} var b69 = sequenceBuilder{id: 69, commit: 72, name: "char-range", ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{72}}
var b68 = sequenceBuilder{id: 68, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b68 = sequenceBuilder{id: 68, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}}
var b67 = charBuilder{} var b67 = charBuilder{}
b68.items = []builder{&b67} b68.items = []builder{&b67}
@ -1241,15 +1241,15 @@ func Parse(r io.Reader) (*Node, error) {
var b73 = charBuilder{} var b73 = charBuilder{}
b74.items = []builder{&b73} b74.items = []builder{&b73}
b75.items = []builder{&b71, &b58, &b72, &b74} b75.items = []builder{&b71, &b58, &b72, &b74}
var b88 = sequenceBuilder{id: 88, commit: 72, name: "char-sequence", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}} var b88 = sequenceBuilder{id: 88, commit: 72, name: "char-sequence", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{89, 133, 123, 127}}
var b85 = sequenceBuilder{id: 85, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b85 = sequenceBuilder{id: 85, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}}
var b84 = charBuilder{} var b84 = charBuilder{}
b85.items = []builder{&b84} b85.items = []builder{&b84}
var b83 = choiceBuilder{id: 83, commit: 72, name: "sequence-char"} var b83 = choiceBuilder{id: 83, commit: 72, name: "sequence-char"}
var b77 = sequenceBuilder{id: 77, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b77 = sequenceBuilder{id: 77, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{83}}
var b76 = charBuilder{} var b76 = charBuilder{}
b77.items = []builder{&b76} b77.items = []builder{&b76}
var b82 = sequenceBuilder{id: 82, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} var b82 = sequenceBuilder{id: 82, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{83}}
var b79 = sequenceBuilder{id: 79, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b79 = sequenceBuilder{id: 79, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}}
var b78 = charBuilder{} var b78 = charBuilder{}
b79.items = []builder{&b78} b79.items = []builder{&b78}
@ -1263,7 +1263,7 @@ func Parse(r io.Reader) (*Node, error) {
b87.items = []builder{&b86} b87.items = []builder{&b86}
b88.items = []builder{&b85, &b83, &b87} b88.items = []builder{&b85, &b83, &b87}
b89.options = []builder{&b56, &b75, &b88} b89.options = []builder{&b56, &b75, &b88}
var b97 = sequenceBuilder{id: 97, commit: 66, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}} var b97 = sequenceBuilder{id: 97, commit: 66, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{133, 123, 127}}
var b94 = sequenceBuilder{id: 94, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b94 = sequenceBuilder{id: 94, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}}
var b93 = charBuilder{} var b93 = charBuilder{}
b94.items = []builder{&b93} b94.items = []builder{&b93}
@ -1271,12 +1271,12 @@ func Parse(r io.Reader) (*Node, error) {
var b95 = charBuilder{} var b95 = charBuilder{}
b96.items = []builder{&b95} b96.items = []builder{&b95}
b97.items = []builder{&b94, &b186, &b133, &b186, &b96} b97.items = []builder{&b94, &b186, &b133, &b186, &b96}
var b126 = sequenceBuilder{id: 126, commit: 64, name: "sequence", ranges: [][]int{{1, 1}, {0, -1}}} var b126 = sequenceBuilder{id: 126, commit: 64, name: "sequence", ranges: [][]int{{1, 1}, {0, -1}}, generalizations: []int{133, 127}}
var b124 = sequenceBuilder{id: 124, commit: 72, name: "item", ranges: [][]int{{1, 1}, {0, 1}, {1, 1}, {0, 1}}} var b124 = sequenceBuilder{id: 124, commit: 72, name: "item", ranges: [][]int{{1, 1}, {0, 1}, {1, 1}, {0, 1}}}
var b123 = choiceBuilder{id: 123, commit: 10} var b123 = choiceBuilder{id: 123, commit: 10}
b123.options = []builder{&b89, &b92, &b97} b123.options = []builder{&b89, &b92, &b97}
var b122 = choiceBuilder{id: 122, commit: 66} var b122 = choiceBuilder{id: 122, commit: 66}
var b106 = sequenceBuilder{id: 106, commit: 64, name: "count-quantifier", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}} var b106 = sequenceBuilder{id: 106, commit: 64, name: "count-quantifier", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{122}}
var b103 = sequenceBuilder{id: 103, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b103 = sequenceBuilder{id: 103, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}}
var b102 = charBuilder{} var b102 = charBuilder{}
b103.items = []builder{&b102} b103.items = []builder{&b102}
@ -1291,7 +1291,7 @@ func Parse(r io.Reader) (*Node, error) {
var b104 = charBuilder{} var b104 = charBuilder{}
b105.items = []builder{&b104} b105.items = []builder{&b104}
b106.items = []builder{&b103, &b186, &b101, &b186, &b105} b106.items = []builder{&b103, &b186, &b101, &b186, &b105}
var b115 = sequenceBuilder{id: 115, commit: 64, name: "range-quantifier", ranges: [][]int{{1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}}} var b115 = sequenceBuilder{id: 115, commit: 64, name: "range-quantifier", ranges: [][]int{{1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}}, generalizations: []int{122}}
var b110 = sequenceBuilder{id: 110, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b110 = sequenceBuilder{id: 110, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}}
var b109 = charBuilder{} var b109 = charBuilder{}
b110.items = []builder{&b109} b110.items = []builder{&b109}
@ -1306,13 +1306,13 @@ func Parse(r io.Reader) (*Node, error) {
var b113 = charBuilder{} var b113 = charBuilder{}
b114.items = []builder{&b113} b114.items = []builder{&b113}
b115.items = []builder{&b110, &b186, &b107, &b186, &b112, &b186, &b108, &b186, &b114} b115.items = []builder{&b110, &b186, &b107, &b186, &b112, &b186, &b108, &b186, &b114}
var b117 = sequenceBuilder{id: 117, commit: 72, name: "one-or-more", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b117 = sequenceBuilder{id: 117, commit: 72, name: "one-or-more", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{122}}
var b116 = charBuilder{} var b116 = charBuilder{}
b117.items = []builder{&b116} b117.items = []builder{&b116}
var b119 = sequenceBuilder{id: 119, commit: 72, name: "zero-or-more", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b119 = sequenceBuilder{id: 119, commit: 72, name: "zero-or-more", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{122}}
var b118 = charBuilder{} var b118 = charBuilder{}
b119.items = []builder{&b118} b119.items = []builder{&b118}
var b121 = sequenceBuilder{id: 121, commit: 72, name: "zero-or-one", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b121 = sequenceBuilder{id: 121, commit: 72, name: "zero-or-one", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{122}}
var b120 = charBuilder{} var b120 = charBuilder{}
b121.items = []builder{&b120} b121.items = []builder{&b120}
b122.options = []builder{&b106, &b115, &b117, &b119, &b121} b122.options = []builder{&b106, &b115, &b117, &b119, &b121}
@ -1320,7 +1320,7 @@ func Parse(r io.Reader) (*Node, error) {
var b125 = sequenceBuilder{id: 125, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} var b125 = sequenceBuilder{id: 125, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}}
b125.items = []builder{&b186, &b124} b125.items = []builder{&b186, &b124}
b126.items = []builder{&b124, &b125} b126.items = []builder{&b124, &b125}
var b132 = sequenceBuilder{id: 132, commit: 64, name: "choice", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} var b132 = sequenceBuilder{id: 132, commit: 64, name: "choice", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}, generalizations: []int{133}}
var b127 = choiceBuilder{id: 127, commit: 66} var b127 = choiceBuilder{id: 127, commit: 66}
b127.options = []builder{&b89, &b92, &b97, &b126} b127.options = []builder{&b89, &b92, &b97, &b126}
var b130 = sequenceBuilder{id: 130, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}}} var b130 = sequenceBuilder{id: 130, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}}}

View File

@ -394,6 +394,15 @@ func (b *sequenceBuilder) generate(w io.Writer, done map[string]bool) error {
fprintf("},") fprintf("},")
} }
if len(b.generalizations) > 0 {
fprintf("generalizations: []int{")
for i := range b.generalizations {
fprintf("%d,", b.generalizations[i])
}
fprintf("},")
}
fprintf("};") fprintf("};")
if len(b.items) > 0 { if len(b.items) > 0 {