// cr = "\r\n" | "\n"
cr.add(5, new Str(4, "\r\n"));
cr.add(7, new Str(6, "\n"));
// row = [!cr+]:content cr
Optional row_1 = new Optional(8, "row_1", defaultSyntaxErrorRowContent);
Repeat row_1_1 = new Repeat(9, "row_1_1");
row_1_1.add(10, cr, NOT);
row_1.add(11, row_1_1);
row.add(12, row_1);
row.add(13, cr);
// defaultSyntaxError = [row+] [!END+]:line END
Optional defaultSyntaxError_1 = new Optional(14, "defaultSyntaxError_1");
Repeat defaultSyntaxError_1_1 = new Repeat(15, "defaultSyntaxError_1_1");
defaultSyntaxError_1_1.add(16, row);
defaultSyntaxError_1.add(17, defaultSyntaxError_1_1);
defaultSyntaxError.add(18, defaultSyntaxError_1);
Optional defaultSyntaxError_2 = new Optional(19, "defaultSyntaxError_2", defaultSyntaxErrorDefaultSyntaxErrorLine);
Repeat defaultSyntaxError_2_1 = new Repeat(20, "defaultSyntaxError_2_1");
defaultSyntaxError_2_1.add(22, new End(21, "defaultSyntaxError_2_1", NOT));
defaultSyntaxError_2.add(23, defaultSyntaxError_2_1);
defaultSyntaxError.add(24, defaultSyntaxError_2);
defaultSyntaxError.add(26, new End(25, "defaultSyntaxError"));
return new TopElement(data2, defaultSyntaxError);