sportdb-parser 0.6.20 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1 -1
  3. data/Manifest.txt +14 -8
  4. data/Rakefile +1 -1
  5. data/lib/sportdb/parser/blocktxt.rb +99 -0
  6. data/lib/sportdb/parser/lexer.rb +958 -395
  7. data/lib/sportdb/parser/lexer_buffer.rb +97 -0
  8. data/lib/sportdb/parser/lexer_tty.rb +111 -0
  9. data/lib/sportdb/parser/parser.rb +1768 -855
  10. data/lib/sportdb/parser/racc_parser.rb +1 -1
  11. data/lib/sportdb/parser/racc_tree.rb +327 -41
  12. data/lib/sportdb/parser/token-date.rb +160 -178
  13. data/lib/sportdb/parser/token-date_duration.rb +190 -0
  14. data/lib/sportdb/parser/token-geo.rb +59 -59
  15. data/lib/sportdb/parser/token-goals.rb +460 -0
  16. data/lib/sportdb/parser/token-group.rb +43 -0
  17. data/lib/sportdb/parser/token-note.rb +40 -0
  18. data/lib/sportdb/parser/token-prop.rb +70 -54
  19. data/lib/sportdb/parser/token-prop_name.rb +74 -0
  20. data/lib/sportdb/parser/token-round.rb +102 -0
  21. data/lib/sportdb/parser/token-score.rb +323 -47
  22. data/lib/sportdb/parser/token-score_fuller.rb +435 -0
  23. data/lib/sportdb/parser/token-score_legs.rb +59 -0
  24. data/lib/sportdb/parser/token-status.rb +157 -160
  25. data/lib/sportdb/parser/token-table.rb +149 -0
  26. data/lib/sportdb/parser/token-text.rb +72 -23
  27. data/lib/sportdb/parser/token-time.rb +141 -0
  28. data/lib/sportdb/parser/token.rb +242 -105
  29. data/lib/sportdb/parser/token_helpers.rb +92 -0
  30. data/lib/sportdb/parser/version.rb +2 -2
  31. data/lib/sportdb/parser.rb +24 -2
  32. metadata +18 -18
  33. data/config/rounds_de.txt +0 -125
  34. data/config/rounds_en.txt +0 -29
  35. data/config/rounds_es.txt +0 -26
  36. data/config/rounds_misc.txt +0 -25
  37. data/config/rounds_pt.txt +0 -4
  38. data/config/zones_en.txt +0 -20
  39. data/lib/sportdb/parser/lang.rb +0 -298
  40. data/lib/sportdb/parser/token-minute.rb +0 -205
@@ -9,414 +9,588 @@ class RaccMatchParser < Racc::Parser
9
9
  ##### State transition tables begin ###
10
10
 
11
11
  racc_action_table = [
12
- 21, 13, 22, 176, 121, 215, 106, 174, 23, 70,
13
- 67, 24, 58, 231, 66, 101, 25, 110, 51, 26,
14
- 27, 252, 28, 72, 73, 214, 32, 232, 106, 97,
15
- 29, 228, 48, 30, 34, 232, 35, 36, 37, 107,
16
- 39, 42, 44, 45, 57, 177, 178, 21, 13, 22,
17
- 101, 86, 57, 53, 55, 23, 98, 100, 24, 86,
18
- 111, 107, 227, 25, 171, 51, 26, 27, 89, 28,
19
- 60, 147, 94, 32, 222, 258, 146, 29, 220, 48,
20
- 30, 34, 92, 35, 36, 37, 250, 39, 42, 44,
21
- 45, 98, 100, 82, 86, 83, 57, 61, 55, 57,
22
- 53, 55, 70, 223, 91, 113, 103, 70, 104, 162,
23
- 163, 57, 63, 55, 44, 45, 72, 73, 155, 116,
24
- 51, 72, 73, 152, 138, 144, 141, 147, 154, 247,
25
- 191, 140, 146, 150, 126, 147, 249, 77, 195, 78,
26
- 146, 130, 133, 131, 132, 67, 193, 194, 79, 66,
27
- 130, 133, 131, 132, 80, 86, -109, -110, 87, 88,
28
- 48, 105, 117, 118, 57, 126, 127, 134, 136, 137,
29
- 142, 143, 148, 149, 158, 160, 164, 165, 167, 168,
30
- -99, 169, 48, 179, 180, 182, 183, 51, 185, 126,
31
- 187, 57, 189, 57, 197, 198, 199, 200, 201, 202,
32
- 203, 204, 206, 207, 208, 209, 70, 211, 212, 213,
33
- 77, 217, 218, 220, 224, 225, 226, 229, 48, 233,
34
- 234, 235, 180, 237, 57, 126, 239, 240, 241, 242,
35
- 243, 244, 245, 246, 251, 48, 254, 158, 256, 77,
36
- 259, 220, 261 ]
12
+ 28, 21, 29, 270, 30, 31, 32, 33, 34, 35,
13
+ 36, 37, 38, 250, 274, 39, 76, 342, 40, 41,
14
+ 42, 280, 43, 44, 45, 48, 228, 249, 287, 250,
15
+ 139, 86, 60, 61, 62, 63, 135, 64, 68, 250,
16
+ 73, 74, 75, 249, 358, 324, 137, 88, 269, 250,
17
+ 250, 357, 173, 249, 89, 175, 288, 257, 229, 275,
18
+ 77, 140, 325, 249, 249, 136, 281, 356, 78, 280,
19
+ 79, 272, 80, 285, -160, 81, 138, 263, 278, 82,
20
+ 83, 84, 85, 28, 21, 29, 90, 30, 31, 32,
21
+ 33, 34, 35, 36, 37, 38, 91, 341, 39, 76,
22
+ -160, 40, 41, 42, 92, 43, 44, 45, 48, 247,
23
+ 248, -160, 125, 123, 281, 60, 61, 62, 63, 128,
24
+ 64, 68, 216, 73, 74, 75, 283, 189, 178, 128,
25
+ 371, 189, 98, 99, 266, 126, -77, 73, 74, 75,
26
+ 179, 93, 123, 77, 292, 126, 265, 68, 115, 103,
27
+ 102, 78, 190, 79, 94, 80, 190, 68, 81, 260,
28
+ 112, 113, 82, 83, 84, 85, 73, 74, 75, 116,
29
+ 117, 118, 173, 95, 261, 175, 262, 155, 156, 157,
30
+ 158, 160, 161, 162, 170, 293, 163, 164, 165, 166,
31
+ 167, 168, 169, 42, 178, 43, 44, 45, 294, 295,
32
+ 157, 158, 160, 161, 162, 170, 179, 163, 164, 165,
33
+ 166, 167, 168, 169, 112, 113, 353, 96, 60, 61,
34
+ 62, 63, 197, 64, 97, 68, 116, 117, 150, 116,
35
+ 117, 118, 254, 318, 256, 319, 348, 350, 349, 203,
36
+ 204, 112, 113, 112, 113, 314, -169, 369, 370, 101,
37
+ 105, 106, 108, 129, 129, 132, 133, 134, 141, 68,
38
+ 149, 152, 153, 154, 182, 183, 186, 193, 193, 197,
39
+ 199, 201, 205, 212, 213, 214, 217, 68, 220, 221,
40
+ 224, 225, 226, 227, 68, 231, 232, 233, 234, 235,
41
+ 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
42
+ 175, 259, 267, 271, 276, 277, 282, 289, 292, 296,
43
+ 298, 299, 129, 302, 303, 304, 305, 306, 307, 308,
44
+ 175, 310, 311, 312, 175, 316, 320, 321, 322, 182,
45
+ 326, 327, 328, 329, 186, 331, 333, 334, 335, 336,
46
+ 193, 338, 339, 340, 197, 344, 345, 354, 359, 360,
47
+ 256, 362, 363, 364, 365, 366, 367, 368, 372, 197,
48
+ 374, 375, 376, 292, 378, 379 ]
37
49
 
38
50
  racc_action_check = [
39
- 0, 0, 0, 99, 54, 152, 47, 98, 0, 26,
40
- 25, 0, 1, 172, 25, 41, 0, 48, 0, 0,
41
- 0, 230, 0, 26, 26, 152, 0, 172, 48, 41,
42
- 0, 166, 0, 0, 0, 230, 0, 0, 0, 47,
43
- 0, 0, 0, 0, 54, 99, 99, 2, 2, 2,
44
- 95, 98, 0, 0, 0, 2, 41, 41, 2, 41,
45
- 48, 48, 166, 2, 95, 2, 2, 2, 38, 2,
46
- 22, 221, 38, 2, 159, 255, 221, 2, 255, 2,
47
- 2, 2, 38, 2, 2, 2, 221, 2, 2, 2,
48
- 2, 95, 95, 32, 95, 32, 53, 23, 53, 2,
49
- 2, 2, 27, 159, 38, 49, 42, 158, 42, 79,
50
- 79, 32, 24, 32, 42, 42, 27, 27, 75, 49,
51
- 49, 158, 158, 75, 64, 68, 64, 68, 75, 220,
52
- 124, 64, 68, 74, 124, 74, 220, 28, 128, 29,
53
- 74, 128, 128, 128, 128, 139, 126, 126, 30, 139,
54
- 60, 60, 60, 60, 31, 33, 34, 35, 36, 37,
55
- 40, 45, 51, 52, 55, 57, 58, 61, 62, 63,
56
- 66, 67, 70, 71, 77, 78, 81, 84, 86, 90,
57
- 92, 93, 97, 100, 108, 109, 112, 114, 116, 117,
58
- 119, 120, 121, 123, 130, 131, 132, 133, 134, 135,
59
- 136, 138, 140, 141, 142, 144, 145, 147, 150, 151,
60
- 153, 154, 155, 156, 161, 164, 165, 168, 171, 175,
61
- 177, 178, 183, 187, 188, 191, 197, 198, 199, 202,
62
- 203, 213, 214, 215, 228, 232, 246, 247, 248, 249,
63
- 257, 258, 260 ]
51
+ 0, 0, 0, 184, 0, 0, 0, 0, 0, 0,
52
+ 0, 0, 0, 252, 187, 0, 0, 285, 0, 0,
53
+ 0, 191, 0, 0, 0, 0, 141, 252, 195, 176,
54
+ 62, 1, 0, 0, 0, 0, 60, 0, 0, 309,
55
+ 0, 0, 0, 176, 297, 265, 61, 29, 184, 180,
56
+ 172, 297, 77, 309, 30, 77, 195, 176, 141, 187,
57
+ 0, 62, 265, 180, 172, 60, 191, 297, 0, 194,
58
+ 0, 187, 0, 195, 252, 0, 61, 180, 191, 0,
59
+ 0, 0, 0, 2, 2, 2, 31, 2, 2, 2,
60
+ 2, 2, 2, 2, 2, 2, 32, 285, 2, 2,
61
+ 309, 2, 2, 2, 33, 2, 2, 2, 2, 172,
62
+ 172, 172, 53, 52, 194, 2, 2, 2, 2, 53,
63
+ 2, 2, 120, 2, 2, 2, 194, 82, 78, 120,
64
+ 351, 273, 39, 39, 182, 53, 110, 52, 52, 52,
65
+ 78, 34, 207, 2, 351, 120, 182, 53, 51, 41,
66
+ 41, 2, 82, 2, 35, 2, 273, 120, 2, 179,
67
+ 110, 110, 2, 2, 2, 2, 207, 207, 207, 51,
68
+ 51, 51, 132, 36, 179, 132, 179, 76, 76, 76,
69
+ 76, 76, 76, 76, 76, 200, 76, 76, 76, 76,
70
+ 76, 76, 76, 65, 258, 65, 65, 65, 200, 200,
71
+ 123, 123, 123, 123, 123, 123, 258, 123, 123, 123,
72
+ 123, 123, 123, 123, 50, 50, 292, 37, 109, 109,
73
+ 109, 109, 292, 109, 38, 50, 71, 71, 71, 122,
74
+ 122, 122, 175, 259, 175, 259, 290, 290, 290, 104,
75
+ 104, 127, 127, 218, 218, 253, 253, 348, 348, 40,
76
+ 46, 48, 49, 54, 55, 56, 58, 59, 63, 66,
77
+ 68, 73, 74, 75, 79, 80, 81, 83, 84, 85,
78
+ 86, 100, 107, 111, 113, 115, 124, 126, 130, 131,
79
+ 134, 135, 137, 139, 145, 148, 156, 159, 160, 161,
80
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
81
+ 173, 178, 183, 186, 189, 190, 193, 197, 198, 202,
82
+ 210, 215, 219, 222, 224, 228, 229, 231, 237, 245,
83
+ 246, 247, 248, 249, 251, 257, 261, 262, 263, 264,
84
+ 266, 267, 268, 269, 270, 272, 274, 275, 276, 278,
85
+ 279, 281, 283, 284, 286, 287, 288, 295, 302, 304,
86
+ 315, 325, 326, 328, 329, 340, 341, 342, 352, 353,
87
+ 356, 357, 368, 371, 373, 377 ]
64
88
 
65
89
  racc_action_pointer = [
66
- -1, 12, 46, nil, nil, nil, nil, nil, nil, nil,
90
+ -1, 31, 82, nil, nil, nil, nil, nil, nil, nil,
67
91
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
68
- nil, nil, 66, 87, 97, -5, -6, 87, 122, 107,
69
- 116, 150, 58, 107, 123, 124, 154, 155, 64, nil,
70
- 127, 11, 71, nil, nil, 118, nil, -13, 9, 101,
71
- nil, 109, 159, 43, -9, 111, nil, 143, 166, nil,
72
- 145, 156, 155, 153, 113, nil, 155, 155, 114, nil,
73
- 150, 151, nil, nil, 122, 110, nil, 147, 142, 74,
74
- nil, 148, nil, nil, 149, nil, 128, nil, nil, nil,
75
- 141, nil, 139, 140, nil, 46, nil, 149, 3, -1,
76
- 179, nil, nil, nil, nil, nil, nil, nil, 137, 152,
77
- nil, nil, 153, nil, 168, nil, 184, 167, nil, 179,
78
- 138, 188, nil, 140, 112, nil, 90, nil, 136, nil,
79
- 188, 189, 190, 193, 194, 188, 186, nil, 197, 130,
80
- 198, 199, 188, nil, 201, 191, nil, 203, nil, nil,
81
- 204, 198, 1, 195, 207, 208, 188, nil, 92, 70,
82
- nil, 210, nil, nil, 211, 212, 13, nil, 213, nil,
83
- nil, 185, 9, nil, nil, 215, nil, 216, 217, nil,
84
- nil, nil, nil, 175, nil, nil, nil, 219, 171, nil,
85
- nil, 203, nil, nil, nil, nil, nil, 222, 223, 224,
86
- nil, nil, 225, 220, nil, nil, nil, nil, nil, nil,
87
- nil, nil, nil, 227, 217, 209, nil, nil, nil, nil,
88
- 114, 58, nil, nil, nil, nil, nil, nil, 184, nil,
89
- 17, nil, 202, nil, nil, nil, nil, nil, nil, nil,
90
- nil, nil, nil, nil, nil, nil, 221, 210, 212, 224,
91
- nil, nil, nil, nil, nil, 53, nil, 214, 216, nil,
92
- 216, nil ]
92
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 43,
93
+ 50, 82, 92, 100, 137, 150, 169, 213, 220, 118,
94
+ 245, 135, nil, nil, nil, nil, 246, nil, 247, 250,
95
+ 186, 118, 96, 108, 242, 243, 224, nil, 252, 253,
96
+ 32, 42, 26, 221, nil, 172, 220, nil, 220, nil,
97
+ nil, 175, nil, 244, 245, 246, 133, -10, 75, 192,
98
+ 191, 188, 74, 189, 190, 191, 270, nil, nil, nil,
99
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
100
+ 254, nil, nil, nil, 218, nil, nil, 270, nil, 185,
101
+ 132, 269, nil, 246, nil, 271, nil, nil, nil, nil,
102
+ 118, nil, 178, 154, 272, nil, 238, 213, nil, nil,
103
+ 274, 275, 110, nil, 253, 248, nil, 248, nil, 248,
104
+ nil, 22, nil, nil, nil, 245, nil, nil, 267, nil,
105
+ nil, nil, nil, nil, nil, nil, 269, nil, nil, 270,
106
+ 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
107
+ 281, 267, 46, 235, nil, 166, 25, nil, 236, 106,
108
+ 45, nil, 81, 227, -15, nil, 224, -4, nil, 226,
109
+ 226, 3, nil, 234, 51, 10, nil, 222, 222, nil,
110
+ 181, nil, 305, nil, nil, nil, nil, 125, nil, nil,
111
+ 306, nil, nil, nil, nil, 307, nil, nil, 215, 301,
112
+ nil, nil, 281, nil, 310, nil, nil, nil, 279, 279,
113
+ nil, 277, nil, nil, nil, nil, nil, 258, nil, nil,
114
+ nil, nil, nil, nil, nil, 315, 255, 317, 318, 319,
115
+ nil, 259, 9, 178, nil, nil, nil, 321, 141, 165,
116
+ nil, 273, 274, 324, 257, -8, 265, 327, 257, 256,
117
+ 256, nil, 331, 78, 332, 333, 259, nil, 335, 262,
118
+ nil, 337, nil, 338, 268, 13, 266, 341, 342, nil,
119
+ 148, nil, 144, nil, nil, 330, nil, 40, nil, nil,
120
+ nil, nil, 344, nil, 312, nil, nil, nil, nil, 35,
121
+ nil, nil, nil, nil, nil, 282, nil, nil, nil, nil,
122
+ nil, nil, nil, nil, nil, 298, 282, nil, 349, 280,
123
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
124
+ 351, 278, 273, nil, nil, nil, nil, nil, 158, nil,
125
+ nil, 58, 271, 281, nil, nil, 356, 357, nil, nil,
126
+ nil, nil, nil, nil, nil, nil, nil, nil, 284, nil,
127
+ nil, 277, nil, 277, nil, nil, nil, 278, nil, nil ]
93
128
 
94
129
  racc_action_default = [
95
- -1, -162, -2, -3, -5, -6, -7, -8, -9, -10,
130
+ -1, -243, -2, -3, -5, -6, -7, -8, -9, -10,
96
131
  -11, -12, -13, -14, -15, -16, -17, -18, -19, -20,
97
- -21, -22, -162, -162, -162, -162, -162, -162, -162, -162,
98
- -162, -162, -162, -86, -88, -89, -162, -162, -162, -96,
99
- -162, -162, -106, -108, -111, -112, -125, -126, -162, -162,
100
- -137, -162, -162, -162, -147, -162, -152, -162, -162, -4,
101
- -162, -162, -32, -34, -162, -37, -162, -45, -162, -49,
102
- -54, -74, -76, -77, -162, -57, -60, -67, -162, -162,
103
- -84, -162, -88, -89, -162, -87, -162, -90, -91, -92,
104
- -162, -94, -95, -162, -98, -162, -101, -162, -162, -162,
105
- -162, -120, -107, -109, -110, -113, -130, -131, -132, -162,
106
- -128, -129, -162, -136, -162, -139, -140, -142, -145, -162,
107
- -162, -150, -153, -148, -154, -155, -158, 262, -162, -24,
108
- -162, -162, -162, -162, -162, -162, -162, -35, -162, -162,
109
- -39, -41, -43, -46, -162, -162, -51, -52, -55, -75,
110
- -162, -162, -162, -162, -62, -64, -69, -68, -162, -162,
111
- -79, -162, -82, -83, -162, -162, -121, -123, -162, -97,
112
- -100, -162, -162, -104, -114, -162, -116, -162, -162, -119,
113
- -133, -135, -127, -132, -138, -141, -143, -162, -149, -151,
114
- -156, -162, -159, -160, -161, -23, -25, -162, -162, -162,
115
- -29, -30, -162, -162, -36, -38, -40, -42, -44, -47,
116
- -50, -53, -48, -162, -162, -162, -61, -63, -65, -66,
117
- -162, -162, -78, -80, -81, -85, -144, -122, -162, -93,
118
- -162, -103, -162, -115, -117, -118, -134, -146, -157, -26,
119
- -27, -28, -31, -33, -56, -58, -162, -67, -162, -162,
120
- -73, -124, -102, -105, -59, -69, -71, -162, -69, -72,
121
- -162, -70 ]
132
+ -21, -22, -23, -24, -25, -26, -27, -28, -29, -243,
133
+ -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
134
+ -243, -243, -52, -53, -54, -55, -56, -57, -243, -63,
135
+ -115, -121, -243, -243, -80, -80, -120, -89, -243, -243,
136
+ -243, -243, -243, -243, -106, -58, -115, -110, -243, -122,
137
+ -123, -124, -125, -243, -243, -243, -243, -243, -243, -243,
138
+ -243, -243, -243, -243, -243, -243, -243, -4, -30, -31,
139
+ -32, -33, -34, -35, -36, -37, -38, -39, -40, -41,
140
+ -243, -46, -47, -48, -243, -61, -62, -64, -65, -104,
141
+ -116, -243, -75, -243, -108, -243, -137, -138, -148, -149,
142
+ -243, -120, -121, -243, -243, -85, -111, -77, -114, -81,
143
+ -243, -243, -243, -90, -92, -243, -98, -243, -99, -243,
144
+ -100, -243, -56, -59, -60, -115, -109, -116, -117, -118,
145
+ -150, -151, -126, -127, -128, -129, -243, -131, -132, -243,
146
+ -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
147
+ -243, -243, -153, -243, -164, -168, -160, -175, -243, -243,
148
+ -160, -184, -243, -243, -192, -194, -196, -243, -199, -243,
149
+ -207, -243, -211, -216, -243, -219, -222, -230, -234, 380,
150
+ -243, -43, -243, -50, -51, -66, -67, -243, -69, -105,
151
+ -243, -78, -74, -76, -79, -243, -83, -84, -77, -80,
152
+ -86, -87, -243, -91, -243, -94, -95, -96, -243, -243,
153
+ -107, -243, -130, -133, -134, -135, -136, -139, -140, -141,
154
+ -142, -143, -144, -145, -147, -243, -243, -156, -158, -161,
155
+ -163, -243, -154, -166, -167, -171, -173, -243, -243, -177,
156
+ -180, -243, -243, -243, -243, -243, -243, -243, -243, -243,
157
+ -243, -197, -243, -243, -201, -203, -205, -208, -243, -243,
158
+ -213, -214, -217, -243, -243, -243, -243, -224, -226, -231,
159
+ -228, -233, -243, -42, -44, -243, -49, -243, -73, -82,
160
+ -112, -113, -243, -93, -243, -101, -119, -146, -152, -155,
161
+ -157, -159, -162, -165, -170, -243, -174, -176, -178, -179,
162
+ -181, -182, -183, -185, -186, -243, -188, -190, -243, -243,
163
+ -195, -198, -200, -202, -204, -206, -209, -212, -215, -210,
164
+ -243, -243, -243, -223, -225, -227, -229, -232, -238, -241,
165
+ -242, -234, -243, -243, -45, -68, -243, -243, -72, -88,
166
+ -97, -172, -187, -189, -191, -193, -218, -220, -243, -239,
167
+ -240, -234, -236, -243, -70, -71, -221, -243, -237, -235 ]
122
168
 
123
169
  racc_goto_table = [
124
- 76, 95, 156, 125, 122, 65, 181, 68, 74, 172,
125
- 129, 85, 115, 96, 123, 84, 3, 1, 59, 108,
126
- 112, 2, 128, 62, 135, 64, 139, 210, 75, 151,
127
- 153, 260, 159, 161, 81, 90, 119, 93, 102, 166,
128
- 109, 114, 120, 124, 192, nil, nil, nil, nil, nil,
129
- nil, nil, nil, nil, nil, nil, nil, nil, 173, nil,
130
- nil, nil, nil, 186, nil, nil, nil, 170, nil, nil,
131
- 190, nil, nil, 122, nil, nil, 175, 184, 196, 188,
132
- nil, 236, nil, 230, nil, nil, nil, nil, nil, nil,
170
+ 196, 188, 185, 181, 177, 130, 131, 120, 122, 121,
171
+ 255, 210, 252, 110, 114, 124, 127, 171, 258, 3,
172
+ 1, 87, 264, 191, 194, 2, 100, 200, 219, 147,
173
+ 146, 104, 202, 142, 144, 143, 145, 109, 107, 206,
174
+ 207, 355, 208, 111, 223, 209, 148, 151, 246, 313,
175
+ 253, 315, 176, 180, 184, 268, 187, 273, 337, 195,
176
+ 284, 286, 347, 346, 290, 351, 377, nil, nil, nil,
177
+ nil, nil, 222, nil, nil, nil, nil, nil, nil, nil,
178
+ nil, nil, 215, 127, nil, 309, nil, nil, nil, 218,
133
179
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
180
+ nil, nil, nil, nil, nil, nil, nil, nil, 147, 230,
181
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 300,
134
182
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
135
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 205,
136
- nil, nil, nil, nil, nil, 216, nil, nil, nil, nil,
137
- nil, nil, 173, nil, nil, nil, nil, 238, 122, 221,
138
183
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
139
184
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
185
+ 361, nil, nil, nil, nil, nil, nil, nil, nil, nil,
186
+ nil, nil, 297, 122, 121, nil, nil, nil, nil, nil,
187
+ 301, nil, nil, nil, nil, nil, nil, nil, nil, nil,
188
+ nil, nil, nil, nil, 317, nil, nil, nil, 323, nil,
189
+ nil, 330, 332, nil, nil, nil, nil, nil, nil, nil,
190
+ nil, 343, nil, nil, nil, nil, nil, 352, nil, nil,
140
191
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
141
- nil, nil, 255, nil, nil, nil, nil, nil, nil, nil,
142
192
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
143
- nil, nil, 248, 253, nil, nil, nil, nil, nil, nil,
144
193
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
145
194
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
146
- nil, 257 ]
195
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
196
+ nil, nil, nil, nil, nil, nil, nil, nil, 373 ]
147
197
 
148
198
  racc_goto_check = [
149
- 32, 47, 34, 60, 64, 25, 56, 27, 27, 49,
150
- 21, 42, 58, 48, 62, 61, 3, 1, 3, 55,
151
- 55, 2, 20, 22, 23, 24, 26, 28, 30, 31,
152
- 33, 35, 38, 39, 40, 44, 61, 45, 50, 51,
153
- 54, 59, 63, 65, 66, nil, nil, nil, nil, nil,
154
- nil, nil, nil, nil, nil, nil, nil, nil, 47, nil,
155
- nil, nil, nil, 60, nil, nil, nil, 48, nil, nil,
156
- 60, nil, nil, 64, nil, nil, 42, 58, 21, 62,
157
- nil, 56, nil, 49, nil, nil, nil, nil, nil, nil,
199
+ 90, 83, 81, 78, 76, 48, 48, 41, 47, 53,
200
+ 74, 45, 68, 44, 60, 50, 44, 54, 70, 3,
201
+ 1, 3, 70, 85, 85, 2, 27, 28, 45, 44,
202
+ 60, 29, 30, 31, 33, 34, 35, 36, 37, 39,
203
+ 40, 42, 43, 46, 57, 59, 61, 67, 69, 71,
204
+ 72, 73, 75, 77, 79, 80, 82, 84, 86, 88,
205
+ 89, 91, 92, 93, 94, 95, 96, nil, nil, nil,
206
+ nil, nil, 54, nil, nil, nil, nil, nil, nil, nil,
207
+ nil, nil, 50, 44, nil, 68, nil, nil, nil, 44,
208
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
209
+ nil, nil, nil, nil, nil, nil, nil, nil, 44, 60,
210
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 45,
158
211
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
159
212
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
160
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 25,
161
- nil, nil, nil, nil, nil, 32, nil, nil, nil, nil,
162
- nil, nil, 47, nil, nil, nil, nil, 60, 64, 27,
163
213
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
214
+ 74, nil, nil, nil, nil, nil, nil, nil, nil, nil,
215
+ nil, nil, 41, 47, 53, nil, nil, nil, nil, nil,
216
+ 48, nil, nil, nil, nil, nil, nil, nil, nil, nil,
217
+ nil, nil, nil, nil, 76, nil, nil, nil, 78, nil,
218
+ nil, 81, 83, nil, nil, nil, nil, nil, nil, nil,
219
+ nil, 90, nil, nil, nil, nil, nil, 90, nil, nil,
164
220
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
165
221
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
166
- nil, nil, 34, nil, nil, nil, nil, nil, nil, nil,
167
222
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
168
- nil, nil, 32, 47, nil, nil, nil, nil, nil, nil,
169
223
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
170
224
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
171
- nil, 32 ]
225
+ nil, nil, nil, nil, nil, nil, nil, nil, 90 ]
172
226
 
173
227
  racc_goto_pointer = [
174
- nil, 17, 21, 16, nil, nil, nil, nil, nil, nil,
228
+ nil, 20, 25, 19, nil, nil, nil, nil, nil, nil,
175
229
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
176
- -38, -50, -1, -38, 0, -20, -38, -19, -118, nil,
177
- 0, -46, -28, -45, -75, -227, nil, nil, -46, -46,
178
- 2, nil, -22, nil, -3, -1, nil, -39, -28, -88,
179
- -4, -47, nil, nil, -8, -28, -102, nil, -37, -8,
180
- -54, -17, -41, -12, -50, -14, -82 ]
230
+ nil, nil, nil, nil, nil, nil, nil, -13, -73, -10,
231
+ -72, -32, nil, -31, -30, -29, -12, -11, nil, -70,
232
+ -69, -45, -256, -67, -37, -99, -7, -44, -49, nil,
233
+ -38, nil, nil, -43, -60, nil, nil, -90, nil, -64,
234
+ -36, -22, nil, nil, nil, nil, nil, -24, -161, -124,
235
+ -158, -202, -125, -202, -165, -26, -74, -26, -76, -27,
236
+ -129, -79, -26, -81, -130, -60, -221, nil, -26, -135,
237
+ -85, -134, -228, -227, -133, -227, -305 ]
181
238
 
182
239
  racc_goto_default = [
183
240
  nil, nil, nil, nil, 4, 5, 6, 7, 8, 9,
184
- 10, 11, 12, 14, 15, 16, 17, 18, 19, 20,
185
- nil, nil, nil, nil, nil, nil, nil, nil, 69, 145,
186
- nil, nil, nil, nil, nil, 219, 157, 71, nil, nil,
187
- 31, 33, 99, 38, nil, nil, 40, 41, nil, nil,
188
- 43, nil, 46, 47, nil, nil, nil, 49, 50, nil,
189
- nil, 52, 54, nil, 56, nil, nil ]
241
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
242
+ 20, 22, 23, 24, 25, 26, 27, nil, nil, nil,
243
+ nil, 46, 47, 66, 50, nil, nil, nil, 49, nil,
244
+ nil, 53, nil, 57, 67, nil, 211, 51, nil, 52,
245
+ nil, 54, 55, 56, nil, 58, 59, nil, nil, 65,
246
+ nil, nil, 69, 70, 71, 72, 159, 119, 172, nil,
247
+ 251, 174, nil, nil, nil, nil, nil, nil, nil, nil,
248
+ nil, nil, nil, nil, nil, nil, 192, 279, nil, nil,
249
+ nil, nil, nil, nil, nil, 198, 291 ]
190
250
 
191
251
  racc_reduce_table = [
192
252
  0, 0, :racc_error,
193
- 0, 59, :_reduce_none,
194
- 1, 59, :_reduce_none,
195
- 1, 60, :_reduce_none,
196
- 2, 60, :_reduce_none,
197
- 1, 61, :_reduce_none,
198
- 1, 61, :_reduce_none,
199
- 1, 61, :_reduce_none,
200
- 1, 61, :_reduce_none,
201
- 1, 61, :_reduce_none,
202
- 1, 61, :_reduce_none,
203
- 1, 61, :_reduce_none,
204
- 1, 61, :_reduce_none,
205
- 1, 61, :_reduce_none,
206
- 1, 61, :_reduce_14,
207
- 1, 61, :_reduce_none,
208
- 1, 61, :_reduce_none,
209
- 1, 61, :_reduce_none,
210
- 1, 61, :_reduce_none,
211
- 1, 61, :_reduce_none,
212
- 1, 61, :_reduce_none,
213
- 1, 61, :_reduce_none,
214
- 1, 61, :_reduce_22,
215
- 4, 71, :_reduce_none,
216
- 1, 78, :_reduce_none,
217
- 2, 78, :_reduce_none,
218
- 3, 79, :_reduce_26,
219
- 3, 79, :_reduce_27,
220
- 3, 79, :_reduce_28,
221
- 2, 79, :_reduce_none,
222
- 4, 77, :_reduce_30,
223
- 5, 76, :_reduce_31,
224
- 0, 81, :_reduce_none,
225
- 3, 81, :_reduce_33,
226
- 1, 80, :_reduce_34,
227
- 2, 80, :_reduce_35,
228
- 4, 75, :_reduce_36,
229
- 1, 82, :_reduce_37,
230
- 3, 82, :_reduce_38,
231
- 1, 84, :_reduce_none,
232
- 2, 84, :_reduce_none,
233
- 1, 84, :_reduce_none,
234
- 2, 84, :_reduce_none,
235
- 2, 83, :_reduce_43,
236
- 3, 83, :_reduce_44,
237
- 1, 83, :_reduce_45,
238
- 2, 83, :_reduce_46,
239
- 4, 73, :_reduce_47,
240
- 4, 74, :_reduce_48,
241
- 1, 85, :_reduce_49,
242
- 3, 85, :_reduce_50,
243
- 1, 87, :_reduce_none,
244
- 1, 87, :_reduce_none,
245
- 2, 87, :_reduce_none,
246
- 1, 86, :_reduce_54,
247
- 2, 86, :_reduce_55,
248
- 5, 72, :_reduce_56,
249
- 0, 89, :_reduce_57,
250
- 3, 89, :_reduce_58,
251
- 4, 89, :_reduce_59,
252
- 1, 88, :_reduce_60,
253
- 3, 88, :_reduce_61,
254
- 1, 91, :_reduce_none,
255
- 2, 91, :_reduce_63,
256
- 1, 91, :_reduce_none,
257
- 2, 91, :_reduce_65,
258
- 3, 90, :_reduce_66,
259
- 0, 92, :_reduce_67,
260
- 1, 92, :_reduce_68,
261
- 0, 93, :_reduce_69,
262
- 6, 93, :_reduce_70,
263
- 3, 93, :_reduce_71,
264
- 4, 93, :_reduce_72,
265
- 3, 94, :_reduce_73,
266
- 1, 85, :_reduce_74,
267
- 2, 85, :_reduce_75,
268
- 1, 95, :_reduce_none,
269
- 1, 95, :_reduce_none,
270
- 4, 66, :_reduce_78,
271
- 1, 96, :_reduce_79,
272
- 2, 96, :_reduce_80,
273
- 4, 67, :_reduce_81,
274
- 1, 97, :_reduce_82,
275
- 1, 97, :_reduce_83,
276
- 2, 62, :_reduce_84,
277
- 4, 62, :_reduce_85,
278
- 1, 98, :_reduce_none,
279
- 2, 98, :_reduce_87,
280
- 1, 99, :_reduce_88,
281
- 1, 99, :_reduce_89,
282
- 2, 63, :_reduce_90,
283
- 2, 65, :_reduce_91,
284
- 2, 64, :_reduce_92,
285
- 4, 64, :_reduce_93,
286
- 1, 102, :_reduce_none,
287
- 1, 102, :_reduce_none,
288
- 1, 101, :_reduce_96,
289
- 3, 101, :_reduce_97,
290
- 1, 103, :_reduce_none,
291
- 1, 103, :_reduce_none,
292
- 3, 68, :_reduce_100,
293
- 2, 68, :_reduce_101,
294
- 5, 68, :_reduce_102,
295
- 4, 68, :_reduce_103,
296
- 1, 107, :_reduce_104,
297
- 3, 107, :_reduce_105,
298
- 1, 104, :_reduce_106,
299
- 2, 104, :_reduce_107,
300
- 1, 104, :_reduce_none,
301
- 1, 108, :_reduce_109,
302
- 1, 108, :_reduce_110,
303
- 1, 108, :_reduce_111,
304
- 1, 108, :_reduce_112,
305
- 2, 108, :_reduce_113,
306
- 2, 106, :_reduce_114,
307
- 3, 106, :_reduce_115,
308
- 2, 106, :_reduce_116,
309
- 3, 106, :_reduce_117,
310
- 3, 106, :_reduce_118,
311
- 2, 106, :_reduce_119,
312
- 1, 106, :_reduce_120,
313
- 2, 100, :_reduce_121,
314
- 3, 100, :_reduce_122,
315
- 1, 109, :_reduce_123,
316
- 3, 109, :_reduce_124,
317
- 1, 105, :_reduce_none,
318
- 1, 105, :_reduce_none,
319
- 3, 111, :_reduce_127,
320
- 1, 112, :_reduce_none,
321
- 1, 112, :_reduce_none,
322
- 1, 113, :_reduce_none,
323
- 1, 113, :_reduce_none,
324
- 0, 114, :_reduce_132,
325
- 1, 114, :_reduce_133,
326
- 4, 110, :_reduce_134,
327
- 3, 110, :_reduce_135,
328
- 2, 70, :_reduce_136,
329
- 1, 115, :_reduce_137,
330
- 3, 115, :_reduce_138,
331
- 2, 115, :_reduce_139,
332
- 1, 117, :_reduce_none,
333
- 2, 117, :_reduce_none,
334
- 2, 116, :_reduce_142,
335
- 3, 116, :_reduce_143,
336
- 4, 69, :_reduce_144,
337
- 2, 69, :_reduce_145,
338
- 4, 69, :_reduce_146,
339
- 1, 119, :_reduce_147,
340
- 2, 119, :_reduce_148,
341
- 3, 119, :_reduce_149,
342
- 1, 121, :_reduce_none,
343
- 2, 121, :_reduce_none,
344
- 1, 120, :_reduce_152,
345
- 2, 120, :_reduce_153,
346
- 2, 122, :_reduce_154,
347
- 1, 123, :_reduce_155,
348
- 2, 123, :_reduce_156,
349
- 3, 123, :_reduce_157,
350
- 1, 118, :_reduce_158,
351
- 2, 118, :_reduce_159,
352
- 1, 124, :_reduce_160,
353
- 1, 124, :_reduce_161 ]
354
-
355
- racc_reduce_n = 162
356
-
357
- racc_shift_n = 262
253
+ 0, 92, :_reduce_1,
254
+ 1, 92, :_reduce_none,
255
+ 1, 93, :_reduce_none,
256
+ 2, 93, :_reduce_none,
257
+ 1, 94, :_reduce_none,
258
+ 1, 94, :_reduce_none,
259
+ 1, 94, :_reduce_none,
260
+ 1, 94, :_reduce_none,
261
+ 1, 94, :_reduce_none,
262
+ 1, 94, :_reduce_none,
263
+ 1, 94, :_reduce_none,
264
+ 1, 94, :_reduce_none,
265
+ 1, 94, :_reduce_none,
266
+ 1, 94, :_reduce_none,
267
+ 1, 94, :_reduce_none,
268
+ 1, 94, :_reduce_none,
269
+ 1, 94, :_reduce_none,
270
+ 1, 94, :_reduce_none,
271
+ 1, 94, :_reduce_none,
272
+ 1, 94, :_reduce_none,
273
+ 1, 94, :_reduce_none,
274
+ 1, 94, :_reduce_22,
275
+ 1, 94, :_reduce_none,
276
+ 1, 94, :_reduce_none,
277
+ 1, 94, :_reduce_none,
278
+ 1, 94, :_reduce_none,
279
+ 1, 94, :_reduce_none,
280
+ 1, 94, :_reduce_none,
281
+ 1, 94, :_reduce_29,
282
+ 2, 95, :_reduce_30,
283
+ 2, 95, :_reduce_31,
284
+ 2, 95, :_reduce_32,
285
+ 2, 108, :_reduce_33,
286
+ 2, 108, :_reduce_34,
287
+ 2, 108, :_reduce_35,
288
+ 2, 108, :_reduce_36,
289
+ 2, 105, :_reduce_37,
290
+ 2, 106, :_reduce_38,
291
+ 2, 107, :_reduce_39,
292
+ 1, 118, :_reduce_none,
293
+ 1, 118, :_reduce_none,
294
+ 4, 96, :_reduce_42,
295
+ 1, 119, :_reduce_43,
296
+ 2, 119, :_reduce_44,
297
+ 3, 119, :_reduce_45,
298
+ 2, 98, :_reduce_46,
299
+ 1, 120, :_reduce_none,
300
+ 1, 120, :_reduce_none,
301
+ 4, 97, :_reduce_49,
302
+ 1, 121, :_reduce_50,
303
+ 1, 121, :_reduce_51,
304
+ 1, 122, :_reduce_52,
305
+ 1, 122, :_reduce_53,
306
+ 1, 123, :_reduce_54,
307
+ 1, 124, :_reduce_55,
308
+ 1, 125, :_reduce_none,
309
+ 1, 125, :_reduce_none,
310
+ 0, 126, :_reduce_58,
311
+ 1, 126, :_reduce_none,
312
+ 1, 126, :_reduce_none,
313
+ 2, 99, :_reduce_61,
314
+ 2, 103, :_reduce_62,
315
+ 0, 127, :_reduce_none,
316
+ 1, 127, :_reduce_none,
317
+ 1, 128, :_reduce_none,
318
+ 2, 128, :_reduce_none,
319
+ 3, 100, :_reduce_67,
320
+ 3, 130, :_reduce_68,
321
+ 1, 130, :_reduce_none,
322
+ 2, 133, :_reduce_70,
323
+ 2, 133, :_reduce_71,
324
+ 1, 133, :_reduce_72,
325
+ 4, 129, :_reduce_73,
326
+ 3, 129, :_reduce_74,
327
+ 1, 137, :_reduce_75,
328
+ 2, 137, :_reduce_76,
329
+ 0, 136, :_reduce_77,
330
+ 1, 136, :_reduce_none,
331
+ 3, 104, :_reduce_79,
332
+ 0, 139, :_reduce_80,
333
+ 1, 139, :_reduce_81,
334
+ 4, 101, :_reduce_82,
335
+ 3, 101, :_reduce_83,
336
+ 3, 101, :_reduce_84,
337
+ 2, 101, :_reduce_85,
338
+ 3, 101, :_reduce_86,
339
+ 3, 101, :_reduce_87,
340
+ 5, 101, :_reduce_88,
341
+ 1, 102, :_reduce_89,
342
+ 2, 134, :_reduce_90,
343
+ 3, 134, :_reduce_91,
344
+ 0, 148, :_reduce_92,
345
+ 2, 148, :_reduce_93,
346
+ 3, 147, :_reduce_94,
347
+ 3, 147, :_reduce_95,
348
+ 3, 147, :_reduce_96,
349
+ 5, 147, :_reduce_97,
350
+ 2, 146, :_reduce_98,
351
+ 2, 146, :_reduce_99,
352
+ 2, 146, :_reduce_100,
353
+ 4, 146, :_reduce_101,
354
+ 0, 149, :_reduce_none,
355
+ 1, 149, :_reduce_none,
356
+ 0, 131, :_reduce_104,
357
+ 1, 131, :_reduce_none,
358
+ 1, 150, :_reduce_106,
359
+ 3, 140, :_reduce_107,
360
+ 2, 140, :_reduce_108,
361
+ 2, 140, :_reduce_109,
362
+ 1, 140, :_reduce_none,
363
+ 1, 141, :_reduce_111,
364
+ 3, 141, :_reduce_112,
365
+ 3, 141, :_reduce_113,
366
+ 1, 141, :_reduce_114,
367
+ 0, 151, :_reduce_115,
368
+ 1, 151, :_reduce_none,
369
+ 2, 135, :_reduce_117,
370
+ 1, 152, :_reduce_118,
371
+ 3, 152, :_reduce_119,
372
+ 1, 132, :_reduce_none,
373
+ 1, 132, :_reduce_none,
374
+ 1, 132, :_reduce_none,
375
+ 1, 132, :_reduce_none,
376
+ 1, 132, :_reduce_none,
377
+ 1, 132, :_reduce_none,
378
+ 2, 155, :_reduce_126,
379
+ 2, 155, :_reduce_127,
380
+ 2, 155, :_reduce_128,
381
+ 2, 142, :_reduce_129,
382
+ 3, 143, :_reduce_130,
383
+ 1, 157, :_reduce_none,
384
+ 1, 157, :_reduce_none,
385
+ 3, 138, :_reduce_133,
386
+ 3, 153, :_reduce_134,
387
+ 3, 153, :_reduce_135,
388
+ 3, 154, :_reduce_136,
389
+ 1, 158, :_reduce_none,
390
+ 1, 158, :_reduce_none,
391
+ 3, 144, :_reduce_139,
392
+ 3, 144, :_reduce_140,
393
+ 3, 144, :_reduce_141,
394
+ 3, 144, :_reduce_142,
395
+ 3, 144, :_reduce_143,
396
+ 3, 144, :_reduce_144,
397
+ 3, 144, :_reduce_145,
398
+ 4, 144, :_reduce_146,
399
+ 3, 144, :_reduce_147,
400
+ 2, 144, :_reduce_148,
401
+ 2, 144, :_reduce_149,
402
+ 2, 156, :_reduce_150,
403
+ 2, 156, :_reduce_151,
404
+ 4, 109, :_reduce_152,
405
+ 1, 145, :_reduce_153,
406
+ 2, 145, :_reduce_154,
407
+ 3, 145, :_reduce_155,
408
+ 1, 160, :_reduce_none,
409
+ 2, 160, :_reduce_none,
410
+ 1, 160, :_reduce_none,
411
+ 2, 160, :_reduce_none,
412
+ 0, 161, :_reduce_160,
413
+ 1, 161, :_reduce_none,
414
+ 2, 161, :_reduce_none,
415
+ 1, 161, :_reduce_none,
416
+ 1, 159, :_reduce_164,
417
+ 3, 159, :_reduce_165,
418
+ 2, 162, :_reduce_166,
419
+ 2, 162, :_reduce_167,
420
+ 1, 162, :_reduce_168,
421
+ 0, 164, :_reduce_169,
422
+ 1, 164, :_reduce_none,
423
+ 1, 163, :_reduce_171,
424
+ 3, 163, :_reduce_172,
425
+ 1, 165, :_reduce_173,
426
+ 4, 110, :_reduce_174,
427
+ 1, 166, :_reduce_175,
428
+ 3, 166, :_reduce_176,
429
+ 2, 167, :_reduce_177,
430
+ 3, 167, :_reduce_178,
431
+ 3, 167, :_reduce_179,
432
+ 2, 167, :_reduce_180,
433
+ 3, 167, :_reduce_181,
434
+ 3, 167, :_reduce_182,
435
+ 4, 111, :_reduce_183,
436
+ 1, 168, :_reduce_184,
437
+ 3, 168, :_reduce_185,
438
+ 3, 169, :_reduce_186,
439
+ 4, 169, :_reduce_187,
440
+ 3, 169, :_reduce_188,
441
+ 4, 169, :_reduce_189,
442
+ 4, 117, :_reduce_190,
443
+ 5, 116, :_reduce_191,
444
+ 0, 171, :_reduce_none,
445
+ 3, 171, :_reduce_193,
446
+ 1, 170, :_reduce_194,
447
+ 3, 170, :_reduce_195,
448
+ 1, 172, :_reduce_196,
449
+ 2, 172, :_reduce_197,
450
+ 4, 115, :_reduce_198,
451
+ 1, 173, :_reduce_199,
452
+ 3, 173, :_reduce_200,
453
+ 1, 175, :_reduce_none,
454
+ 2, 175, :_reduce_none,
455
+ 1, 175, :_reduce_none,
456
+ 2, 175, :_reduce_none,
457
+ 2, 174, :_reduce_205,
458
+ 3, 174, :_reduce_206,
459
+ 1, 174, :_reduce_207,
460
+ 2, 174, :_reduce_208,
461
+ 4, 113, :_reduce_209,
462
+ 4, 114, :_reduce_210,
463
+ 1, 176, :_reduce_211,
464
+ 3, 176, :_reduce_212,
465
+ 1, 178, :_reduce_none,
466
+ 1, 178, :_reduce_none,
467
+ 2, 178, :_reduce_none,
468
+ 1, 177, :_reduce_216,
469
+ 2, 177, :_reduce_217,
470
+ 5, 112, :_reduce_218,
471
+ 0, 180, :_reduce_219,
472
+ 3, 180, :_reduce_220,
473
+ 4, 180, :_reduce_221,
474
+ 1, 179, :_reduce_222,
475
+ 3, 179, :_reduce_223,
476
+ 1, 182, :_reduce_none,
477
+ 2, 182, :_reduce_225,
478
+ 1, 182, :_reduce_none,
479
+ 2, 182, :_reduce_227,
480
+ 0, 183, :_reduce_228,
481
+ 1, 183, :_reduce_229,
482
+ 0, 185, :_reduce_230,
483
+ 1, 185, :_reduce_231,
484
+ 3, 186, :_reduce_232,
485
+ 2, 181, :_reduce_233,
486
+ 0, 187, :_reduce_234,
487
+ 5, 187, :_reduce_235,
488
+ 3, 187, :_reduce_236,
489
+ 4, 187, :_reduce_237,
490
+ 1, 184, :_reduce_238,
491
+ 2, 184, :_reduce_239,
492
+ 2, 184, :_reduce_240,
493
+ 1, 184, :_reduce_241,
494
+ 1, 184, :_reduce_242 ]
495
+
496
+ racc_reduce_n = 243
497
+
498
+ racc_shift_n = 380
358
499
 
359
500
  racc_token_table = {
360
501
  false => 0,
361
502
  :error => 1,
362
503
  :BLANK => 2,
363
- :TEAMS => 3,
504
+ :H1 => 3,
364
505
  :NEWLINE => 4,
365
- "---" => 5,
366
- :TEXT => 6,
367
- "--" => 7,
368
- "-" => 8,
369
- :PROP_ATTENDANCE => 9,
370
- :PROP_NUM => 10,
371
- :PROP_END => 11,
372
- :PROP_REFEREE => 12,
373
- ";" => 13,
374
- :ATTENDANCE => 14,
375
- :PROP_NAME => 15,
376
- :ENCLOSED_NAME => 16,
377
- :PROP_PENALTIES => 17,
506
+ :H2 => 5,
507
+ :H3 => 6,
508
+ :TABLE_HEADING => 7,
509
+ :TABLE_LINE => 8,
510
+ :TABLE_NOTE => 9,
511
+ :TABLE_DIVIDER => 10,
512
+ :NOTE => 11,
513
+ :NOTA_BENE => 12,
514
+ :HRULER => 13,
515
+ "|" => 14,
516
+ ":" => 15,
517
+ :GROUP_DEF => 16,
518
+ :TEAM => 17,
378
519
  "," => 18,
379
- :SCORE => 19,
380
- :PROP_YELLOWCARDS => 20,
381
- :PROP_REDCARDS => 21,
382
- :MINUTE => 22,
383
- :PROP => 23,
384
- :COACH => 24,
385
- "(" => 25,
386
- ")" => 26,
387
- "[" => 27,
388
- "]" => 28,
389
- :YELLOW_CARD => 29,
390
- :RED_CARD => 30,
391
- :GROUP_DEF => 31,
392
- "|" => 32,
393
- :TEAM => 33,
394
- :ROUND_DEF => 34,
395
- :DATE => 35,
396
- :DURATION => 36,
397
- :DATETIME => 37,
398
- :GROUP => 38,
399
- :ROUND_OUTLINE => 39,
400
- "/" => 40,
401
- :ROUND => 41,
402
- :ORD => 42,
403
- :TIME => 43,
404
- :WDAY => 44,
405
- :STATUS => 45,
406
- :NOTE => 46,
407
- :SCORE_NOTE => 47,
408
- "@" => 48,
409
- :TIMEZONE => 49,
410
- :GEO => 50,
411
- :VS => 51,
412
- :SCORE_MORE => 52,
413
- :PLAYER => 53,
414
- :PROP_GOALS => 54,
415
- :NONE => 55,
416
- :OG => 56,
417
- :PEN => 57 }
418
-
419
- racc_nt_base = 58
520
+ :ROUND_OUTLINE => 19,
521
+ :ROUND_DEF => 20,
522
+ :DATE => 21,
523
+ :DURATION => 22,
524
+ :YEAR => 23,
525
+ :DATETIME => 24,
526
+ :TIME => 25,
527
+ :DATE_LEGS => 26,
528
+ :STATUS => 27,
529
+ :INLINE_ATTENDANCE => 28,
530
+ :INLINE_ATTENDANCE_SEP => 29,
531
+ :SCORE_LEGS => 30,
532
+ :INLINE_GOALS => 31,
533
+ :GOALS_END => 32,
534
+ :TEAMALT => 33,
535
+ :TEAMALT_PEN => 34,
536
+ :TEAMALT_NUM => 35,
537
+ :TTY_TEXT => 36,
538
+ :TTY_NUM => 37,
539
+ :ORD => 38,
540
+ "@" => 39,
541
+ :GEO => 40,
542
+ :TEAM_HOME => 41,
543
+ :TEAM_AWAY => 42,
544
+ :TEAM_NEUTRAL => 43,
545
+ :INLINE_BYE => 44,
546
+ :INLINE_WO => 45,
547
+ "-" => 46,
548
+ :VS => 47,
549
+ :INLINE_NP => 48,
550
+ :INLINE_CANC => 49,
551
+ :INLINE_PPD => 50,
552
+ :SCORE_FULL => 51,
553
+ :SCORE_FULLER => 52,
554
+ :SCORE => 53,
555
+ :SCORE_AWD => 54,
556
+ :INLINE_AWD => 55,
557
+ :SCORE_ABD => 56,
558
+ :INLINE_ABD => 57,
559
+ :INLINE_VOID => 58,
560
+ :INLINE_SUSP => 59,
561
+ :SCORE_FULLER_MORE => 60,
562
+ :GOALS => 61,
563
+ :GOALS_NONE => 62,
564
+ ";" => 63,
565
+ :GOAL_SEP_ALT => 64,
566
+ :PLAYER => 65,
567
+ :GOAL_COUNT => 66,
568
+ :GOAL_MINUTE_SEP => 67,
569
+ :GOAL_MINUTE => 68,
570
+ :GOALS_ALT => 69,
571
+ :GOAL_TYPE => 70,
572
+ :GOALS_COMPAT => 71,
573
+ :MINUTE => 72,
574
+ :PROP_ATTENDANCE => 73,
575
+ :PROP_NUM => 74,
576
+ :PROP_END => 75,
577
+ :PROP_REFEREE => 76,
578
+ :ATTENDANCE => 77,
579
+ :PROP_NAME => 78,
580
+ :ENCLOSED_NAME => 79,
581
+ :PROP_PENALTIES => 80,
582
+ :PROP_YELLOWCARDS => 81,
583
+ :PROP_REDCARDS => 82,
584
+ :PROP => 83,
585
+ :COACH => 84,
586
+ :INLINE_CAPTAIN => 85,
587
+ "(" => 86,
588
+ ")" => 87,
589
+ :INLINE_YELLOW => 88,
590
+ :INLINE_YELLOW_RED => 89,
591
+ :INLINE_RED => 90 }
592
+
593
+ racc_nt_base = 91
420
594
 
421
595
  racc_use_result_var = true
422
596
 
@@ -441,85 +615,176 @@ Racc_token_to_s_table = [
441
615
  "$end",
442
616
  "error",
443
617
  "BLANK",
444
- "TEAMS",
618
+ "H1",
445
619
  "NEWLINE",
446
- "\"---\"",
447
- "TEXT",
448
- "\"--\"",
620
+ "H2",
621
+ "H3",
622
+ "TABLE_HEADING",
623
+ "TABLE_LINE",
624
+ "TABLE_NOTE",
625
+ "TABLE_DIVIDER",
626
+ "NOTE",
627
+ "NOTA_BENE",
628
+ "HRULER",
629
+ "\"|\"",
630
+ "\":\"",
631
+ "GROUP_DEF",
632
+ "TEAM",
633
+ "\",\"",
634
+ "ROUND_OUTLINE",
635
+ "ROUND_DEF",
636
+ "DATE",
637
+ "DURATION",
638
+ "YEAR",
639
+ "DATETIME",
640
+ "TIME",
641
+ "DATE_LEGS",
642
+ "STATUS",
643
+ "INLINE_ATTENDANCE",
644
+ "INLINE_ATTENDANCE_SEP",
645
+ "SCORE_LEGS",
646
+ "INLINE_GOALS",
647
+ "GOALS_END",
648
+ "TEAMALT",
649
+ "TEAMALT_PEN",
650
+ "TEAMALT_NUM",
651
+ "TTY_TEXT",
652
+ "TTY_NUM",
653
+ "ORD",
654
+ "\"@\"",
655
+ "GEO",
656
+ "TEAM_HOME",
657
+ "TEAM_AWAY",
658
+ "TEAM_NEUTRAL",
659
+ "INLINE_BYE",
660
+ "INLINE_WO",
449
661
  "\"-\"",
662
+ "VS",
663
+ "INLINE_NP",
664
+ "INLINE_CANC",
665
+ "INLINE_PPD",
666
+ "SCORE_FULL",
667
+ "SCORE_FULLER",
668
+ "SCORE",
669
+ "SCORE_AWD",
670
+ "INLINE_AWD",
671
+ "SCORE_ABD",
672
+ "INLINE_ABD",
673
+ "INLINE_VOID",
674
+ "INLINE_SUSP",
675
+ "SCORE_FULLER_MORE",
676
+ "GOALS",
677
+ "GOALS_NONE",
678
+ "\";\"",
679
+ "GOAL_SEP_ALT",
680
+ "PLAYER",
681
+ "GOAL_COUNT",
682
+ "GOAL_MINUTE_SEP",
683
+ "GOAL_MINUTE",
684
+ "GOALS_ALT",
685
+ "GOAL_TYPE",
686
+ "GOALS_COMPAT",
687
+ "MINUTE",
450
688
  "PROP_ATTENDANCE",
451
689
  "PROP_NUM",
452
690
  "PROP_END",
453
691
  "PROP_REFEREE",
454
- "\";\"",
455
692
  "ATTENDANCE",
456
693
  "PROP_NAME",
457
694
  "ENCLOSED_NAME",
458
695
  "PROP_PENALTIES",
459
- "\",\"",
460
- "SCORE",
461
696
  "PROP_YELLOWCARDS",
462
697
  "PROP_REDCARDS",
463
- "MINUTE",
464
698
  "PROP",
465
699
  "COACH",
700
+ "INLINE_CAPTAIN",
466
701
  "\"(\"",
467
702
  "\")\"",
468
- "\"[\"",
469
- "\"]\"",
470
- "YELLOW_CARD",
471
- "RED_CARD",
472
- "GROUP_DEF",
473
- "\"|\"",
474
- "TEAM",
475
- "ROUND_DEF",
476
- "DATE",
477
- "DURATION",
478
- "DATETIME",
479
- "GROUP",
480
- "ROUND_OUTLINE",
481
- "\"/\"",
482
- "ROUND",
483
- "ORD",
484
- "TIME",
485
- "WDAY",
486
- "STATUS",
487
- "NOTE",
488
- "SCORE_NOTE",
489
- "\"@\"",
490
- "TIMEZONE",
491
- "GEO",
492
- "VS",
493
- "SCORE_MORE",
494
- "PLAYER",
495
- "PROP_GOALS",
496
- "NONE",
497
- "OG",
498
- "PEN",
703
+ "INLINE_YELLOW",
704
+ "INLINE_YELLOW_RED",
705
+ "INLINE_RED",
499
706
  "$start",
500
707
  "document",
501
708
  "elements",
502
709
  "element",
503
- "date_header",
504
- "group_header",
505
- "round_header",
506
- "round_outline",
710
+ "heading",
507
711
  "group_def",
508
712
  "round_def",
713
+ "round_outline",
714
+ "date_header",
715
+ "match_line_with_header",
509
716
  "match_line",
717
+ "match_line_alt",
718
+ "date_header_legs",
719
+ "match_line_legs",
720
+ "note_line",
721
+ "nota_bene",
722
+ "hruler",
723
+ "table_line",
510
724
  "goal_lines",
511
725
  "goal_lines_alt",
512
- "teams_list",
726
+ "goal_lines_compat",
513
727
  "lineup_lines",
514
728
  "yellowcard_lines",
515
729
  "redcard_lines",
516
730
  "penalties_lines",
517
731
  "referee_line",
518
732
  "attendance_line",
519
- "list",
520
- "list_item",
521
- "referee",
733
+ "group_def_sep",
734
+ "team_values",
735
+ "round_def_sep",
736
+ "round_date_opts",
737
+ "date",
738
+ "datetime",
739
+ "time",
740
+ "date_clause",
741
+ "opt_date",
742
+ "opt_blank_lines",
743
+ "blank_lines",
744
+ "match_header",
745
+ "match_line_header",
746
+ "opt_ord",
747
+ "match",
748
+ "more_match_header_opts",
749
+ "match_line_alt_props",
750
+ "geo_opts",
751
+ "opt_inline_attendance",
752
+ "inline_attendance",
753
+ "match_fixture",
754
+ "opt_inline_note",
755
+ "match_opts",
756
+ "more_match_opts",
757
+ "match_bye",
758
+ "match_walkover",
759
+ "match_result",
760
+ "goal_lines_body",
761
+ "match_alt_inline",
762
+ "match_alt_block",
763
+ "opt_status_line",
764
+ "opt_newline",
765
+ "ord",
766
+ "opt_geo",
767
+ "geo_values",
768
+ "match_fixture_not_played",
769
+ "match_fixture_postponed",
770
+ "match_fixture_base",
771
+ "match_result_base",
772
+ "match_sep",
773
+ "score_full_or_fuller",
774
+ "goals",
775
+ "goals_sep",
776
+ "opt_goal_sep",
777
+ "goal",
778
+ "goal_minutes",
779
+ "opt_goal_minute_sep",
780
+ "goal_minute",
781
+ "goals_alt",
782
+ "goal_alt",
783
+ "goals_compat",
784
+ "goal_compat",
785
+ "referees",
522
786
  "attendance_opt",
787
+ "referee",
523
788
  "penalties_body",
524
789
  "penalty",
525
790
  "penalty_sep",
@@ -530,39 +795,11 @@ Racc_token_to_s_table = [
530
795
  "coach_opt",
531
796
  "lineup_name",
532
797
  "lineup_sep",
533
- "lineup_card_opts",
534
- "lineup_sub_opts",
535
- "card",
536
- "card_type",
537
- "team_values",
538
- "round_date_opts",
539
- "date_header_body",
540
- "date_header_date",
541
- "geo_opts",
542
- "round_values",
543
- "group_sep",
544
- "round_sep",
545
- "match_opts",
546
- "match",
547
- "more_match_opts",
548
- "more_matches",
549
- "date_opts",
550
- "geo_values",
551
- "match_result",
552
- "match_fixture",
553
- "match_sep",
554
- "score",
555
- "score_note_opt",
556
- "goals_alt",
557
- "goal_alt",
558
- "goal_alt_sep",
559
- "minute",
560
- "goal_lines_body",
561
- "goals",
562
- "goal_sep",
563
- "goal",
564
- "minutes",
565
- "minute_opts" ]
798
+ "lineup_cards_opts",
799
+ "cards",
800
+ "lineup_captain_opt",
801
+ "lineup_name_plus_cards_opts",
802
+ "lineup_sub_opts" ]
566
803
  Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
567
804
 
568
805
  Racc_debug_parser = false
@@ -571,7 +808,12 @@ Racc_debug_parser = false
571
808
 
572
809
  # reduce 0 omitted
573
810
 
574
- # reduce 1 omitted
811
+ module_eval(<<'.,.,', 'parser.y', 18)
812
+ def _reduce_1(val, _values, result)
813
+
814
+ result
815
+ end
816
+ .,.,
575
817
 
576
818
  # reduce 2 omitted
577
819
 
@@ -597,12 +839,7 @@ Racc_debug_parser = false
597
839
 
598
840
  # reduce 13 omitted
599
841
 
600
- module_eval(<<'.,.,', 'parser.y', 38)
601
- def _reduce_14(val, _values, result)
602
- trace( "REDUCE BLANK" )
603
- result
604
- end
605
- .,.,
842
+ # reduce 14 omitted
606
843
 
607
844
  # reduce 15 omitted
608
845
 
@@ -618,12 +855,10 @@ module_eval(<<'.,.,', 'parser.y', 38)
618
855
 
619
856
  # reduce 21 omitted
620
857
 
621
- module_eval(<<'.,.,', 'parser.y', 47)
858
+ module_eval(<<'.,.,', 'parser.y', 57)
622
859
  def _reduce_22(val, _values, result)
623
- puts "!! skipping invalid content (trying to recover from parse error):"
624
- pp val[0]
625
- ## note - do NOT report recover errors for now
626
- ## @errors << "parser error (recover) - skipping #{val[0].pretty_inspect}"
860
+ trace( "REDUCE BLANK" )
861
+ @tree << BlankLine.new
627
862
 
628
863
  result
629
864
  end
@@ -635,692 +870,759 @@ module_eval(<<'.,.,', 'parser.y', 47)
635
870
 
636
871
  # reduce 25 omitted
637
872
 
638
- module_eval(<<'.,.,', 'parser.y', 63)
639
- def _reduce_26(val, _values, result)
640
- puts "level 3"
641
- result
642
- end
643
- .,.,
873
+ # reduce 26 omitted
644
874
 
645
- module_eval(<<'.,.,', 'parser.y', 64)
646
- def _reduce_27(val, _values, result)
647
- puts "level 2 #{val[1]}"
648
- result
649
- end
650
- .,.,
875
+ # reduce 27 omitted
876
+
877
+ # reduce 28 omitted
878
+
879
+ module_eval(<<'.,.,', 'parser.y', 67)
880
+ def _reduce_29(val, _values, result)
881
+ puts "!! skipping invalid content (trying to recover from parse error):"
882
+ pp val[0]
883
+ ## note - do NOT report recover errors for now
884
+ ## @errors << "parser error (recover) - skipping #{val[0].pretty_inspect}"
651
885
 
652
- module_eval(<<'.,.,', 'parser.y', 65)
653
- def _reduce_28(val, _values, result)
654
- puts "level 1 #{val[1]}"
655
886
  result
656
887
  end
657
888
  .,.,
658
889
 
659
- # reduce 29 omitted
660
-
661
- module_eval(<<'.,.,', 'parser.y', 71)
890
+ module_eval(<<'.,.,', 'parser.y', 79)
662
891
  def _reduce_30(val, _values, result)
663
- @tree << AttendanceLine.new( att: val[1][1][:value] )
664
-
892
+ @tree << Heading1.new( text: val[0])
665
893
  result
666
894
  end
667
895
  .,.,
668
896
 
669
- module_eval(<<'.,.,', 'parser.y', 77)
897
+ module_eval(<<'.,.,', 'parser.y', 80)
670
898
  def _reduce_31(val, _values, result)
671
- kwargs = val[1]
672
- @tree << RefereeLine.new( **kwargs )
673
-
899
+ @tree << Heading2.new( text: val[0])
674
900
  result
675
901
  end
676
902
  .,.,
677
903
 
678
- # reduce 32 omitted
904
+ module_eval(<<'.,.,', 'parser.y', 81)
905
+ def _reduce_32(val, _values, result)
906
+ @tree << Heading3.new( text: val[0])
907
+ result
908
+ end
909
+ .,.,
679
910
 
680
911
  module_eval(<<'.,.,', 'parser.y', 84)
681
912
  def _reduce_33(val, _values, result)
682
- @tree << AttendanceLine.new( att: val[2][1][:value] )
683
-
913
+ @tree << TableHeading.new( text: val[0])
684
914
  result
685
915
  end
686
916
  .,.,
687
917
 
688
- module_eval(<<'.,.,', 'parser.y', 89)
918
+ module_eval(<<'.,.,', 'parser.y', 85)
689
919
  def _reduce_34(val, _values, result)
690
- result = { name: val[0]}
920
+ @tree << TableLine.new( text: val[0])
691
921
  result
692
922
  end
693
923
  .,.,
694
924
 
695
- module_eval(<<'.,.,', 'parser.y', 91)
925
+ module_eval(<<'.,.,', 'parser.y', 86)
696
926
  def _reduce_35(val, _values, result)
697
- result = { name: val[0], country: val[1] }
927
+ @tree << TableNote.new( text: val[0])
698
928
  result
699
929
  end
700
930
  .,.,
701
931
 
702
- module_eval(<<'.,.,', 'parser.y', 96)
932
+ module_eval(<<'.,.,', 'parser.y', 87)
703
933
  def _reduce_36(val, _values, result)
704
- @tree << PenaltiesLine.new( penalties: val[1] )
705
-
934
+ @tree << TableDivider.new( text: val[0])
706
935
  result
707
936
  end
708
937
  .,.,
709
938
 
710
- module_eval(<<'.,.,', 'parser.y', 99)
939
+ module_eval(<<'.,.,', 'parser.y', 90)
711
940
  def _reduce_37(val, _values, result)
712
- result = [val[0]]
941
+ @tree << NoteLine.new( text: val[0])
713
942
  result
714
943
  end
715
944
  .,.,
716
945
 
717
- module_eval(<<'.,.,', 'parser.y', 100)
946
+ module_eval(<<'.,.,', 'parser.y', 93)
718
947
  def _reduce_38(val, _values, result)
719
- result << val[2]
948
+ @tree << NotaBene.new( text: val[0])
720
949
  result
721
950
  end
722
951
  .,.,
723
952
 
724
- # reduce 39 omitted
953
+ module_eval(<<'.,.,', 'parser.y', 96)
954
+ def _reduce_39(val, _values, result)
955
+ @tree << HRuler.new
956
+ result
957
+ end
958
+ .,.,
725
959
 
726
960
  # reduce 40 omitted
727
961
 
728
962
  # reduce 41 omitted
729
963
 
730
- # reduce 42 omitted
964
+ module_eval(<<'.,.,', 'parser.y', 108)
965
+ def _reduce_42(val, _values, result)
966
+ @tree << GroupDef.new( name: val[0],
967
+ teams: val[2] )
968
+
969
+ result
970
+ end
971
+ .,.,
731
972
 
732
- module_eval(<<'.,.,', 'parser.y', 110)
973
+ module_eval(<<'.,.,', 'parser.y', 113)
733
974
  def _reduce_43(val, _values, result)
734
- result = Penalty.new( score: val[0][1],
735
- name: val[1] )
975
+ result = val
976
+ ## e.g. val is ["Austria"]
736
977
 
737
978
  result
738
979
  end
739
980
  .,.,
740
981
 
741
- module_eval(<<'.,.,', 'parser.y', 115)
982
+ module_eval(<<'.,.,', 'parser.y', 116)
742
983
  def _reduce_44(val, _values, result)
743
- result = Penalty.new( score: val[0][1],
744
- name: val[1],
745
- note: val[2] )
746
-
984
+ result.push( val[1] )
747
985
  result
748
986
  end
749
987
  .,.,
750
988
 
751
- module_eval(<<'.,.,', 'parser.y', 121)
989
+ module_eval(<<'.,.,', 'parser.y', 117)
752
990
  def _reduce_45(val, _values, result)
753
- result = Penalty.new( name: val[0] )
754
-
991
+ result.push( val[2] )
755
992
  result
756
993
  end
757
994
  .,.,
758
995
 
759
996
  module_eval(<<'.,.,', 'parser.y', 125)
760
997
  def _reduce_46(val, _values, result)
761
- result = Penalty.new( name: val[0],
762
- note: val[1] )
998
+ kwargs = val[0][1]
999
+ @tree << RoundOutline.new( **kwargs )
763
1000
 
764
1001
  result
765
1002
  end
766
1003
  .,.,
767
1004
 
768
- module_eval(<<'.,.,', 'parser.y', 132)
769
- def _reduce_47(val, _values, result)
770
- @tree << CardsLine.new( type: 'Y', bookings: val[1] )
1005
+ # reduce 47 omitted
771
1006
 
772
- result
773
- end
774
- .,.,
1007
+ # reduce 48 omitted
775
1008
 
776
- module_eval(<<'.,.,', 'parser.y', 136)
777
- def _reduce_48(val, _values, result)
778
- @tree << CardsLine.new( type: 'R', bookings: val[1] )
1009
+ module_eval(<<'.,.,', 'parser.y', 142)
1010
+ def _reduce_49(val, _values, result)
1011
+ kwargs = { name: val[0] }.merge( val[2] )
1012
+ @tree << RoundDef.new( **kwargs )
779
1013
 
780
- result
781
- end
782
- .,.,
1014
+ ## auto-add RoundOutline here - why? why not?
1015
+ ## or handle "implicit" round_outline
1016
+ ## in tree walker?
1017
+ @tree << RoundOutline.new( outline: val[0], level: 1 )
783
1018
 
784
- module_eval(<<'.,.,', 'parser.y', 143)
785
- def _reduce_49(val, _values, result)
786
- result = [val[0]]
787
1019
  result
788
1020
  end
789
1021
  .,.,
790
1022
 
791
- module_eval(<<'.,.,', 'parser.y', 145)
1023
+ module_eval(<<'.,.,', 'parser.y', 151)
792
1024
  def _reduce_50(val, _values, result)
793
- result << val[2]
1025
+ result = { date: val[0][1] }
794
1026
  result
795
1027
  end
796
1028
  .,.,
797
1029
 
798
- # reduce 51 omitted
799
-
800
- # reduce 52 omitted
801
-
802
- # reduce 53 omitted
803
-
804
1030
  module_eval(<<'.,.,', 'parser.y', 152)
805
- def _reduce_54(val, _values, result)
806
- result = Booking.new( name: val[0] )
1031
+ def _reduce_51(val, _values, result)
1032
+ result = { duration: val[0][1] }
807
1033
  result
808
1034
  end
809
1035
  .,.,
810
1036
 
811
- module_eval(<<'.,.,', 'parser.y', 154)
812
- def _reduce_55(val, _values, result)
813
- result = Booking.new( name: val[0], minute: val[1][1] )
1037
+ module_eval(<<'.,.,', 'parser.y', 159)
1038
+ def _reduce_52(val, _values, result)
1039
+ result = { date: val[0][1] }
814
1040
  result
815
1041
  end
816
1042
  .,.,
817
1043
 
818
- module_eval(<<'.,.,', 'parser.y', 162)
819
- def _reduce_56(val, _values, result)
820
- kwargs = { team: val[0],
821
- lineup: val[1] }.merge( val[2] )
822
- @tree << LineupLine.new( **kwargs )
823
-
1044
+ module_eval(<<'.,.,', 'parser.y', 160)
1045
+ def _reduce_53(val, _values, result)
1046
+ result = { year: val[0] }
824
1047
  result
825
1048
  end
826
1049
  .,.,
827
1050
 
828
- module_eval(<<'.,.,', 'parser.y', 168)
829
- def _reduce_57(val, _values, result)
830
- result = {}
1051
+ module_eval(<<'.,.,', 'parser.y', 163)
1052
+ def _reduce_54(val, _values, result)
1053
+ result = {}.merge( val[0][1] )
831
1054
  result
832
1055
  end
833
1056
  .,.,
834
1057
 
835
- module_eval(<<'.,.,', 'parser.y', 170)
836
- def _reduce_58(val, _values, result)
837
- result = { coach: val[2] }
1058
+ module_eval(<<'.,.,', 'parser.y', 166)
1059
+ def _reduce_55(val, _values, result)
1060
+ result = {}.merge( val[0][1] )
838
1061
  result
839
1062
  end
840
1063
  .,.,
841
1064
 
842
- module_eval(<<'.,.,', 'parser.y', 172)
843
- def _reduce_59(val, _values, result)
844
- result = { coach: val[3] }
845
- result
846
- end
847
- .,.,
1065
+ # reduce 56 omitted
848
1066
 
849
- module_eval(<<'.,.,', 'parser.y', 175)
850
- def _reduce_60(val, _values, result)
851
- result = [[val[0]]]
1067
+ # reduce 57 omitted
1068
+
1069
+ module_eval(<<'.,.,', 'parser.y', 176)
1070
+ def _reduce_58(val, _values, result)
1071
+ result = {}
852
1072
  result
853
1073
  end
854
1074
  .,.,
855
1075
 
856
- module_eval(<<'.,.,', 'parser.y', 178)
1076
+ # reduce 59 omitted
1077
+
1078
+ # reduce 60 omitted
1079
+
1080
+ module_eval(<<'.,.,', 'parser.y', 189)
857
1081
  def _reduce_61(val, _values, result)
858
- ## if lineup_sep is - start a new sub array!!
859
- if val[1] == '-'
860
- result << [val[2]]
861
- else
862
- result[-1] << val[2]
863
- end
1082
+ @tree << DateHeader.new( **val[0] )
864
1083
 
865
1084
  result
866
1085
  end
867
1086
  .,.,
868
1087
 
869
- # reduce 62 omitted
1088
+ module_eval(<<'.,.,', 'parser.y', 195)
1089
+ def _reduce_62(val, _values, result)
1090
+ kwargs = val[0][1]
1091
+ @tree << DateHeaderLegs.new( **kwargs )
870
1092
 
871
- module_eval(<<'.,.,', 'parser.y', 188)
872
- def _reduce_63(val, _values, result)
873
- result = val[0]
874
1093
  result
875
1094
  end
876
1095
  .,.,
877
1096
 
878
- # reduce 64 omitted
1097
+ # reduce 63 omitted
879
1098
 
880
- module_eval(<<'.,.,', 'parser.y', 190)
881
- def _reduce_65(val, _values, result)
882
- result = val[0]
883
- result
884
- end
885
- .,.,
1099
+ # reduce 64 omitted
886
1100
 
887
- module_eval(<<'.,.,', 'parser.y', 195)
888
- def _reduce_66(val, _values, result)
889
- kwargs = { name: val[0] }.merge( val[1] ).merge( val[2] )
890
- result = Lineup.new( **kwargs )
1101
+ # reduce 65 omitted
891
1102
 
892
- result
893
- end
894
- .,.,
1103
+ # reduce 66 omitted
895
1104
 
896
- module_eval(<<'.,.,', 'parser.y', 199)
1105
+ module_eval(<<'.,.,', 'parser.y', 215)
897
1106
  def _reduce_67(val, _values, result)
898
- result = {}
1107
+ ## note - header flag (header: true)
1108
+ ## used downstream for scope / e.g. DateHeader merge/inheritance or such
1109
+ kwargs = { header: true }.merge( val[0], val[2] )
1110
+ @tree << MatchLine.new( **kwargs )
1111
+
899
1112
  result
900
1113
  end
901
1114
  .,.,
902
1115
 
903
- module_eval(<<'.,.,', 'parser.y', 200)
1116
+ module_eval(<<'.,.,', 'parser.y', 224)
904
1117
  def _reduce_68(val, _values, result)
905
- result = { card: val[0] }
906
- result
907
- end
908
- .,.,
1118
+ result = {}.merge( val[0], val[1], val[2] )
909
1119
 
910
- module_eval(<<'.,.,', 'parser.y', 217)
911
- def _reduce_69(val, _values, result)
912
- result = {}
913
1120
  result
914
1121
  end
915
1122
  .,.,
916
1123
 
917
- module_eval(<<'.,.,', 'parser.y', 220)
1124
+ # reduce 69 omitted
1125
+
1126
+ module_eval(<<'.,.,', 'parser.y', 240)
918
1127
  def _reduce_70(val, _values, result)
919
- kwargs = { name: val[1] }.merge( val[2] ).merge( val[4] )
920
- sub = Sub.new( sub: Lineup.new( **kwargs ),
921
- minute: Minute.new(val[3][1])
922
- )
923
- result = { sub: sub }
1128
+ result = {}.merge( val[0][1] )
924
1129
 
925
1130
  result
926
1131
  end
927
1132
  .,.,
928
1133
 
929
- module_eval(<<'.,.,', 'parser.y', 228)
1134
+ module_eval(<<'.,.,', 'parser.y', 242)
930
1135
  def _reduce_71(val, _values, result)
931
- sub = Sub.new( sub: val[1] )
932
- result = { sub: sub }
933
-
1136
+ result = { note: val[0] }
934
1137
  result
935
1138
  end
936
1139
  .,.,
937
1140
 
938
- module_eval(<<'.,.,', 'parser.y', 234)
1141
+ module_eval(<<'.,.,', 'parser.y', 243)
939
1142
  def _reduce_72(val, _values, result)
940
- sub = Sub.new( sub: val[2],
941
- minute: Minute.new(val[1][1])
942
- )
943
- result = { sub: sub }
944
-
1143
+ result = {}
945
1144
  result
946
1145
  end
947
1146
  .,.,
948
1147
 
949
- module_eval(<<'.,.,', 'parser.y', 244)
1148
+ module_eval(<<'.,.,', 'parser.y', 256)
950
1149
  def _reduce_73(val, _values, result)
951
- kwargs = val[1]
952
- result = Card.new( **kwargs )
1150
+ result = {}.merge( val[0], val[1], val[2] )
953
1151
 
954
1152
  result
955
1153
  end
956
1154
  .,.,
957
1155
 
958
- module_eval(<<'.,.,', 'parser.y', 249)
1156
+ module_eval(<<'.,.,', 'parser.y', 260)
959
1157
  def _reduce_74(val, _values, result)
960
- result = { name: val[0] }
1158
+ result = {}.merge( val[0], val[1] )
1159
+
961
1160
  result
962
1161
  end
963
1162
  .,.,
964
1163
 
965
- module_eval(<<'.,.,', 'parser.y', 252)
1164
+ module_eval(<<'.,.,', 'parser.y', 271)
966
1165
  def _reduce_75(val, _values, result)
967
- result = { name: val[0],
968
- minute: Minute.new(val[1][1]) }
1166
+ result = { att: val[0][1][:value] }
969
1167
 
970
1168
  result
971
1169
  end
972
1170
  .,.,
973
1171
 
974
- # reduce 76 omitted
975
-
976
- # reduce 77 omitted
1172
+ module_eval(<<'.,.,', 'parser.y', 276)
1173
+ def _reduce_76(val, _values, result)
1174
+ result = { att: val[1][1][:value] }
977
1175
 
978
- module_eval(<<'.,.,', 'parser.y', 266)
979
- def _reduce_78(val, _values, result)
980
- @tree << GroupDef.new( name: val[0],
981
- teams: val[2] )
1176
+ result
1177
+ end
1178
+ .,.,
982
1179
 
1180
+ module_eval(<<'.,.,', 'parser.y', 280)
1181
+ def _reduce_77(val, _values, result)
1182
+ result = {}
983
1183
  result
984
1184
  end
985
1185
  .,.,
986
1186
 
987
- module_eval(<<'.,.,', 'parser.y', 272)
1187
+ # reduce 78 omitted
1188
+
1189
+ module_eval(<<'.,.,', 'parser.y', 292)
988
1190
  def _reduce_79(val, _values, result)
989
- result = val
990
- ## e.g. val is ["Austria"]
1191
+ kwargs = { score: val[1][1] }.merge( val[0] )
1192
+ @tree << MatchLineLegs.new( **kwargs )
991
1193
 
992
1194
  result
993
1195
  end
994
1196
  .,.,
995
1197
 
996
- module_eval(<<'.,.,', 'parser.y', 276)
1198
+ module_eval(<<'.,.,', 'parser.y', 298)
997
1199
  def _reduce_80(val, _values, result)
998
- result.push( val[1] )
999
-
1200
+ result = {}
1000
1201
  result
1001
1202
  end
1002
1203
  .,.,
1003
1204
 
1004
- module_eval(<<'.,.,', 'parser.y', 285)
1205
+ module_eval(<<'.,.,', 'parser.y', 299)
1005
1206
  def _reduce_81(val, _values, result)
1006
- kwargs = { name: val[0] }.merge( val[2] )
1007
- @tree<< RoundDef.new( **kwargs )
1008
-
1207
+ result = { note: val[0] }
1009
1208
  result
1010
1209
  end
1011
1210
  .,.,
1012
1211
 
1013
- module_eval(<<'.,.,', 'parser.y', 290)
1212
+ module_eval(<<'.,.,', 'parser.y', 307)
1014
1213
  def _reduce_82(val, _values, result)
1015
- result = { date: val[0][1] }
1214
+ kwargs = {}.merge( val[0], val[1], val[2] )
1215
+ @tree << MatchLine.new( **kwargs )
1216
+
1016
1217
  result
1017
1218
  end
1018
1219
  .,.,
1019
1220
 
1020
- module_eval(<<'.,.,', 'parser.y', 291)
1221
+ module_eval(<<'.,.,', 'parser.y', 312)
1021
1222
  def _reduce_83(val, _values, result)
1022
- result = { duration: val[0][1] }
1223
+ kwargs = {}.merge( val[0], val[1])
1224
+ @tree << MatchLine.new( **kwargs )
1225
+
1023
1226
  result
1024
1227
  end
1025
1228
  .,.,
1026
1229
 
1027
- module_eval(<<'.,.,', 'parser.y', 297)
1230
+ module_eval(<<'.,.,', 'parser.y', 317)
1028
1231
  def _reduce_84(val, _values, result)
1029
- kwargs = {}.merge( val[0] )
1030
- @tree << DateHeader.new( **kwargs )
1232
+ kwargs = {}.merge( val[0], val[1] )
1233
+ @tree << MatchLine.new( **kwargs )
1031
1234
 
1032
1235
  result
1033
1236
  end
1034
1237
  .,.,
1035
1238
 
1036
- module_eval(<<'.,.,', 'parser.y', 302)
1239
+ module_eval(<<'.,.,', 'parser.y', 322)
1037
1240
  def _reduce_85(val, _values, result)
1038
- kwargs = {}.merge( val[1] )
1039
- @tree << DateHeader.new( **kwargs )
1241
+ kwargs = {}.merge( val[0] )
1242
+ @tree << MatchLine.new( **kwargs )
1040
1243
 
1041
1244
  result
1042
1245
  end
1043
1246
  .,.,
1044
1247
 
1045
- # reduce 86 omitted
1248
+ module_eval(<<'.,.,', 'parser.y', 328)
1249
+ def _reduce_86(val, _values, result)
1250
+ kwargs = {}.merge( val[0], val[1] )
1251
+ @tree << MatchLineBye.new( **kwargs )
1046
1252
 
1047
- module_eval(<<'.,.,', 'parser.y', 308)
1253
+ result
1254
+ end
1255
+ .,.,
1256
+
1257
+ module_eval(<<'.,.,', 'parser.y', 333)
1048
1258
  def _reduce_87(val, _values, result)
1049
- result = {}.merge( val[0], val[1] )
1259
+ kwargs = {}.merge( val[0], val[1] )
1260
+ @tree << MatchLineWalkover.new( **kwargs )
1261
+
1050
1262
  result
1051
1263
  end
1052
1264
  .,.,
1053
1265
 
1054
- module_eval(<<'.,.,', 'parser.y', 311)
1266
+ module_eval(<<'.,.,', 'parser.y', 344)
1055
1267
  def _reduce_88(val, _values, result)
1056
- result = { date: val[0][1]}
1268
+ kwargs = {}.merge( val[0] )
1269
+ @tree << MatchLine.new( **kwargs )
1270
+
1271
+ kwargs = val[2]
1272
+ @tree << GoalLine.new( **kwargs )
1273
+
1057
1274
  result
1058
1275
  end
1059
1276
  .,.,
1060
1277
 
1061
- module_eval(<<'.,.,', 'parser.y', 312)
1278
+ module_eval(<<'.,.,', 'parser.y', 355)
1062
1279
  def _reduce_89(val, _values, result)
1063
- result = {}.merge( val[0][1] )
1280
+ kwargs = {}.merge( val[0] )
1281
+ @tree << MatchLine.new( **kwargs )
1282
+
1064
1283
  result
1065
1284
  end
1066
1285
  .,.,
1067
1286
 
1068
- module_eval(<<'.,.,', 'parser.y', 319)
1287
+ module_eval(<<'.,.,', 'parser.y', 364)
1069
1288
  def _reduce_90(val, _values, result)
1070
- @tree << GroupHeader.new( name: val[0] )
1289
+ result = {}.merge( val[0] )
1071
1290
 
1072
1291
  result
1073
1292
  end
1074
1293
  .,.,
1075
1294
 
1076
- module_eval(<<'.,.,', 'parser.y', 329)
1295
+ module_eval(<<'.,.,', 'parser.y', 368)
1077
1296
  def _reduce_91(val, _values, result)
1078
- @tree << RoundOutline.new( outline: val[0] )
1297
+ result = {}.merge( val[0], val[2] )
1079
1298
 
1080
1299
  result
1081
1300
  end
1082
1301
  .,.,
1083
1302
 
1084
- module_eval(<<'.,.,', 'parser.y', 338)
1303
+ module_eval(<<'.,.,', 'parser.y', 374)
1085
1304
  def _reduce_92(val, _values, result)
1086
- @tree << RoundHeader.new( names: val[0] )
1087
-
1305
+ result = {}
1088
1306
  result
1089
1307
  end
1090
1308
  .,.,
1091
1309
 
1092
- module_eval(<<'.,.,', 'parser.y', 342)
1310
+ module_eval(<<'.,.,', 'parser.y', 377)
1093
1311
  def _reduce_93(val, _values, result)
1094
- @tree << RoundHeader.new( names: val[0], group: val[2] )
1312
+ puts "status_line:"
1313
+ pp val[0]
1314
+ result = val[0][1]
1095
1315
 
1096
1316
  result
1097
1317
  end
1098
1318
  .,.,
1099
1319
 
1100
- # reduce 94 omitted
1320
+ module_eval(<<'.,.,', 'parser.y', 390)
1321
+ def _reduce_94(val, _values, result)
1322
+ ## puts "debug match_alt reduce:"
1323
+ ## pp val[0]
1324
+ ## pp val[2]
1101
1325
 
1102
- # reduce 95 omitted
1326
+ ## assume ht/ft
1327
+ ## or let's use [[0,1],[1,2]] - why? why not?
1328
+ score_team1 = val[0][1][:score]
1329
+ score_team2 = val[2][1][:score]
1103
1330
 
1104
- module_eval(<<'.,.,', 'parser.y', 347)
1105
- def _reduce_96(val, _values, result)
1106
- result = val
1107
- result
1108
- end
1331
+
1332
+ score = [[score_team1[0], score_team2[0]],
1333
+ [score_team1[1], score_team2[1]]]
1334
+
1335
+ result = { team1: val[0][1][:team],
1336
+ team2: val[2][1][:team],
1337
+ score: score
1338
+ }
1339
+
1340
+ ## puts " result:"
1341
+ ## pp result
1342
+
1343
+ result
1344
+ end
1109
1345
  .,.,
1110
1346
 
1111
- module_eval(<<'.,.,', 'parser.y', 348)
1112
- def _reduce_97(val, _values, result)
1113
- result.push( val[2] )
1347
+ module_eval(<<'.,.,', 'parser.y', 413)
1348
+ def _reduce_95(val, _values, result)
1349
+ ## assume pen for score_ii
1350
+ ## score_i might be ft or et???
1351
+ ## or let's use [[0,1],[1,2]] - why? why not?
1352
+ score_team1 = val[0][1][:score]
1353
+ score_team2 = val[2][1][:score]
1354
+
1355
+ score = { '_': [score_team1[0], score_team2[0]],
1356
+ pen: [score_team1[1], score_team2[1]]
1357
+ }
1358
+
1359
+ result = { team1: val[0][1][:team],
1360
+ team2: val[2][1][:team],
1361
+ score: score
1362
+ }
1363
+
1114
1364
  result
1115
1365
  end
1116
1366
  .,.,
1117
1367
 
1118
- # reduce 98 omitted
1368
+ module_eval(<<'.,.,', 'parser.y', 430)
1369
+ def _reduce_96(val, _values, result)
1370
+ score_team1 = val[0][1][:score]
1371
+ score_team2 = val[2][1][:score]
1372
+
1373
+ score = [score_team1, score_team2]
1119
1374
 
1120
- # reduce 99 omitted
1375
+ result = { team1: val[0][1][:team],
1376
+ team2: val[2][1][:team],
1377
+ score: score
1378
+ }
1121
1379
 
1122
- module_eval(<<'.,.,', 'parser.y', 358)
1123
- def _reduce_100(val, _values, result)
1124
- kwargs = {}.merge( val[0], val[1], val[2] )
1125
- @tree << MatchLine.new( **kwargs )
1380
+ result
1381
+ end
1382
+ .,.,
1383
+
1384
+ module_eval(<<'.,.,', 'parser.y', 442)
1385
+ def _reduce_97(val, _values, result)
1386
+ result = { team1: val[0],
1387
+ team2: val[3],
1388
+ score: [val[1], val[4]]
1389
+ }
1126
1390
 
1127
1391
  result
1128
1392
  end
1129
1393
  .,.,
1130
1394
 
1131
- module_eval(<<'.,.,', 'parser.y', 363)
1132
- def _reduce_101(val, _values, result)
1133
- kwargs = {}.merge( val[0], val[1] )
1134
- @tree << MatchLine.new( **kwargs )
1395
+ module_eval(<<'.,.,', 'parser.y', 456)
1396
+ def _reduce_98(val, _values, result)
1397
+ ## assume ht/ft
1398
+ ## or let's use [[0,1],[1,2]] - why? why not?
1399
+ score_team1 = val[0][1][:score]
1400
+ score_team2 = val[1][1][:score]
1401
+
1402
+ score = [[score_team1[0], score_team2[0]],
1403
+ [score_team1[1], score_team2[1]]]
1404
+
1405
+ result = { team1: val[0][1][:team],
1406
+ team2: val[1][1][:team],
1407
+ score: score
1408
+ }
1135
1409
 
1136
1410
  result
1137
1411
  end
1138
1412
  .,.,
1139
1413
 
1140
- module_eval(<<'.,.,', 'parser.y', 371)
1141
- def _reduce_102(val, _values, result)
1142
- kwargs = {}.merge( val[0], val[1] )
1143
- @tree << MatchLine.new( **kwargs )
1144
-
1145
- ## add more match fixtures
1146
- val[3].each do |kwargs|
1147
- @tree << MatchLine.new( **kwargs)
1148
- end
1414
+ module_eval(<<'.,.,', 'parser.y', 471)
1415
+ def _reduce_99(val, _values, result)
1416
+ ## assume pen for score_ii
1417
+ ## score_i might be ft or et???
1418
+ ## or let's use [[0,1],[1,2]] - why? why not?
1419
+ score_team1 = val[0][1][:score]
1420
+ score_team2 = val[1][1][:score]
1421
+
1422
+ score = { '_': [score_team1[0], score_team2[0]],
1423
+ pen: [score_team1[1], score_team2[1]]
1424
+ }
1425
+
1426
+ result = { team1: val[0][1][:team],
1427
+ team2: val[1][1][:team],
1428
+ score: score
1429
+ }
1149
1430
 
1150
1431
  result
1151
1432
  end
1152
1433
  .,.,
1153
1434
 
1154
- module_eval(<<'.,.,', 'parser.y', 381)
1155
- def _reduce_103(val, _values, result)
1156
- kwargs = val[0]
1157
- @tree << MatchLine.new( **kwargs )
1158
-
1159
- ## add more match fixtures
1160
- val[2].each do |kwargs|
1161
- @tree << MatchLine.new( **kwargs)
1162
- end
1435
+ module_eval(<<'.,.,', 'parser.y', 488)
1436
+ def _reduce_100(val, _values, result)
1437
+ score_team1 = val[0][1][:score]
1438
+ score_team2 = val[1][1][:score]
1439
+
1440
+ score = [score_team1, score_team2]
1441
+
1442
+ result = { team1: val[0][1][:team],
1443
+ team2: val[1][1][:team],
1444
+ score: score
1445
+ }
1163
1446
 
1164
1447
  result
1165
1448
  end
1166
1449
  .,.,
1167
1450
 
1168
- module_eval(<<'.,.,', 'parser.y', 395)
1169
- def _reduce_104(val, _values, result)
1170
- trace( "REDUCE => more_matches : match" )
1171
- result = val
1451
+ module_eval(<<'.,.,', 'parser.y', 500)
1452
+ def _reduce_101(val, _values, result)
1453
+ result = { team1: val[0],
1454
+ team2: val[2],
1455
+ score: [val[1], val[3]]
1456
+ }
1172
1457
 
1173
1458
  result
1174
1459
  end
1175
1460
  .,.,
1176
1461
 
1177
- module_eval(<<'.,.,', 'parser.y', 400)
1178
- def _reduce_105(val, _values, result)
1179
- trace( "REDUCE => more_matches : more_matches ',' match" )
1180
- result.push( val[2] )
1462
+ # reduce 102 omitted
1181
1463
 
1464
+ # reduce 103 omitted
1465
+
1466
+ module_eval(<<'.,.,', 'parser.y', 513)
1467
+ def _reduce_104(val, _values, result)
1468
+ result = {}
1182
1469
  result
1183
1470
  end
1184
1471
  .,.,
1185
1472
 
1186
- module_eval(<<'.,.,', 'parser.y', 406)
1473
+ # reduce 105 omitted
1474
+
1475
+ module_eval(<<'.,.,', 'parser.y', 517)
1187
1476
  def _reduce_106(val, _values, result)
1188
- result = { ord: val[0][1][:value] }
1477
+ result = { num: val[0][1][:value] }
1189
1478
  result
1190
1479
  end
1191
1480
  .,.,
1192
1481
 
1193
- module_eval(<<'.,.,', 'parser.y', 407)
1482
+ module_eval(<<'.,.,', 'parser.y', 522)
1194
1483
  def _reduce_107(val, _values, result)
1195
- result = { ord: val[0][1][:value] }.merge( val[1] )
1484
+ result = {}.merge( val[0], val[1], val[2] )
1485
+
1196
1486
  result
1197
1487
  end
1198
1488
  .,.,
1199
1489
 
1200
- # reduce 108 omitted
1490
+ module_eval(<<'.,.,', 'parser.y', 525)
1491
+ def _reduce_108(val, _values, result)
1492
+ result = {}.merge( val[0], val[1] )
1201
1493
 
1202
- module_eval(<<'.,.,', 'parser.y', 411)
1203
- def _reduce_109(val, _values, result)
1204
- result = { date: val[0][1]}
1205
1494
  result
1206
1495
  end
1207
1496
  .,.,
1208
1497
 
1209
- module_eval(<<'.,.,', 'parser.y', 412)
1210
- def _reduce_110(val, _values, result)
1211
- result = {}.merge( val[0][1] )
1498
+ module_eval(<<'.,.,', 'parser.y', 528)
1499
+ def _reduce_109(val, _values, result)
1500
+ result = {}.merge( val[0], val[1] )
1501
+
1212
1502
  result
1213
1503
  end
1214
1504
  .,.,
1215
1505
 
1216
- module_eval(<<'.,.,', 'parser.y', 413)
1506
+ # reduce 110 omitted
1507
+
1508
+ module_eval(<<'.,.,', 'parser.y', 549)
1217
1509
  def _reduce_111(val, _values, result)
1218
- result = { time: val[0][1]}
1510
+ result = {}.merge( val[0][1] )
1511
+
1219
1512
  result
1220
1513
  end
1221
1514
  .,.,
1222
1515
 
1223
- module_eval(<<'.,.,', 'parser.y', 414)
1516
+ module_eval(<<'.,.,', 'parser.y', 553)
1224
1517
  def _reduce_112(val, _values, result)
1225
- result = { wday: val[0][1]}
1518
+ result = {}.merge( val[0][1], val[1], val[2] )
1519
+
1226
1520
  result
1227
1521
  end
1228
1522
  .,.,
1229
1523
 
1230
- module_eval(<<'.,.,', 'parser.y', 415)
1524
+ module_eval(<<'.,.,', 'parser.y', 557)
1231
1525
  def _reduce_113(val, _values, result)
1232
- result = { wday: val[0][1], time: val[1][1] }
1526
+ result = {}.merge( val[0], val[1], val[2] )
1527
+
1233
1528
  result
1234
1529
  end
1235
1530
  .,.,
1236
1531
 
1237
- module_eval(<<'.,.,', 'parser.y', 429)
1532
+ module_eval(<<'.,.,', 'parser.y', 559)
1238
1533
  def _reduce_114(val, _values, result)
1239
- ## todo - add possible status_notes too!!!
1240
- result = { status: val[0][1][:status] }
1241
-
1534
+ result = { note: val[0] }
1242
1535
  result
1243
1536
  end
1244
1537
  .,.,
1245
1538
 
1246
- module_eval(<<'.,.,', 'parser.y', 434)
1539
+ module_eval(<<'.,.,', 'parser.y', 564)
1247
1540
  def _reduce_115(val, _values, result)
1248
- result = { status: val[0][1][:status] }.merge( val[1] )
1249
-
1541
+ result = {}
1250
1542
  result
1251
1543
  end
1252
1544
  .,.,
1253
1545
 
1254
- module_eval(<<'.,.,', 'parser.y', 436)
1255
- def _reduce_116(val, _values, result)
1256
- result = {}.merge( val[0] )
1257
- result
1258
- end
1259
- .,.,
1546
+ # reduce 116 omitted
1260
1547
 
1261
- module_eval(<<'.,.,', 'parser.y', 437)
1548
+ module_eval(<<'.,.,', 'parser.y', 570)
1262
1549
  def _reduce_117(val, _values, result)
1263
- result = { note: val[1] }.merge( val[0] )
1550
+ result = { geo: val[1] }
1264
1551
  result
1265
1552
  end
1266
1553
  .,.,
1267
1554
 
1268
- module_eval(<<'.,.,', 'parser.y', 440)
1555
+ module_eval(<<'.,.,', 'parser.y', 573)
1269
1556
  def _reduce_118(val, _values, result)
1270
- result = { score_note: val[1] }.merge( val[0] )
1271
-
1557
+ result = val
1272
1558
  result
1273
1559
  end
1274
1560
  .,.,
1275
1561
 
1276
- module_eval(<<'.,.,', 'parser.y', 442)
1562
+ module_eval(<<'.,.,', 'parser.y', 574)
1277
1563
  def _reduce_119(val, _values, result)
1278
- result = { note: val[0] }
1564
+ result.push( val[2] )
1279
1565
  result
1280
1566
  end
1281
1567
  .,.,
1282
1568
 
1283
- module_eval(<<'.,.,', 'parser.y', 445)
1284
- def _reduce_120(val, _values, result)
1285
- result = {}
1569
+ # reduce 120 omitted
1570
+
1571
+ # reduce 121 omitted
1572
+
1573
+ # reduce 122 omitted
1574
+
1575
+ # reduce 123 omitted
1576
+
1577
+ # reduce 124 omitted
1578
+
1579
+ # reduce 125 omitted
1580
+
1581
+ module_eval(<<'.,.,', 'parser.y', 597)
1582
+ def _reduce_126(val, _values, result)
1583
+ result = { team1: '_', team2: val[1] }
1286
1584
  result
1287
1585
  end
1288
1586
  .,.,
1289
1587
 
1290
- module_eval(<<'.,.,', 'parser.y', 451)
1291
- def _reduce_121(val, _values, result)
1292
- result = { geo: val[1] }
1588
+ module_eval(<<'.,.,', 'parser.y', 598)
1589
+ def _reduce_127(val, _values, result)
1590
+ result = { team1: val[1], team2: '_' }
1293
1591
  result
1294
1592
  end
1295
1593
  .,.,
1296
1594
 
1297
- module_eval(<<'.,.,', 'parser.y', 452)
1298
- def _reduce_122(val, _values, result)
1299
- result = { geo: val[1], timezone: val[2] }
1595
+ module_eval(<<'.,.,', 'parser.y', 599)
1596
+ def _reduce_128(val, _values, result)
1597
+ result = { team1: '_', team2: val[1],
1598
+ neutral: true }
1300
1599
  result
1301
1600
  end
1302
1601
  .,.,
1303
1602
 
1304
- module_eval(<<'.,.,', 'parser.y', 455)
1305
- def _reduce_123(val, _values, result)
1306
- result = val
1603
+ module_eval(<<'.,.,', 'parser.y', 607)
1604
+ def _reduce_129(val, _values, result)
1605
+ result = { team: val[0] }
1606
+
1307
1607
  result
1308
1608
  end
1309
1609
  .,.,
1310
1610
 
1311
- module_eval(<<'.,.,', 'parser.y', 456)
1312
- def _reduce_124(val, _values, result)
1313
- result.push( val[2] )
1611
+ module_eval(<<'.,.,', 'parser.y', 616)
1612
+ def _reduce_130(val, _values, result)
1613
+ result = { team1: val[0],
1614
+ team2: val[2] }
1615
+
1314
1616
  result
1315
1617
  end
1316
1618
  .,.,
1317
1619
 
1318
- # reduce 125 omitted
1620
+ # reduce 131 omitted
1319
1621
 
1320
- # reduce 126 omitted
1622
+ # reduce 132 omitted
1321
1623
 
1322
- module_eval(<<'.,.,', 'parser.y', 464)
1323
- def _reduce_127(val, _values, result)
1624
+ module_eval(<<'.,.,', 'parser.y', 626)
1625
+ def _reduce_133(val, _values, result)
1324
1626
  trace( "RECUDE match_fixture" )
1325
1627
  result = { team1: val[0],
1326
1628
  team2: val[2] }
@@ -1329,123 +1631,206 @@ module_eval(<<'.,.,', 'parser.y', 464)
1329
1631
  end
1330
1632
  .,.,
1331
1633
 
1332
- # reduce 128 omitted
1634
+ module_eval(<<'.,.,', 'parser.y', 635)
1635
+ def _reduce_134(val, _values, result)
1636
+ ## note - auto-add (match) status canceled - why? why not?
1637
+ ## A n/p B short (inline) form of =>
1638
+ ## A v B [canceled]
1333
1639
 
1334
- # reduce 129 omitted
1640
+ result = { team1: val[0],
1641
+ team2: val[2],
1642
+ status_inline: 'canceled' }
1335
1643
 
1336
- # reduce 130 omitted
1644
+ result
1645
+ end
1646
+ .,.,
1337
1647
 
1338
- # reduce 131 omitted
1648
+ module_eval(<<'.,.,', 'parser.y', 645)
1649
+ def _reduce_135(val, _values, result)
1650
+ result = { team1: val[0],
1651
+ team2: val[2],
1652
+ status_inline: 'canceled' }
1339
1653
 
1340
- module_eval(<<'.,.,', 'parser.y', 476)
1341
- def _reduce_132(val, _values, result)
1342
- result = {}
1343
1654
  result
1344
1655
  end
1345
1656
  .,.,
1346
1657
 
1347
- module_eval(<<'.,.,', 'parser.y', 477)
1348
- def _reduce_133(val, _values, result)
1349
- result = { score_note: val[0] }
1658
+ module_eval(<<'.,.,', 'parser.y', 652)
1659
+ def _reduce_136(val, _values, result)
1660
+ result = { team1: val[0],
1661
+ team2: val[2],
1662
+ status_inline: 'postponed' }
1663
+
1350
1664
  result
1351
1665
  end
1352
1666
  .,.,
1353
1667
 
1354
- module_eval(<<'.,.,', 'parser.y', 482)
1355
- def _reduce_134(val, _values, result)
1356
- trace( "REDUCE => match_result : TEAM score TEAM" )
1357
- result = { team1: val[0],
1358
- team2: val[2],
1359
- score: val[1][1]
1360
- }.merge( val[3] )
1668
+ # reduce 137 omitted
1669
+
1670
+ # reduce 138 omitted
1671
+
1672
+ module_eval(<<'.,.,', 'parser.y', 668)
1673
+ def _reduce_139(val, _values, result)
1674
+ trace( "REDUCE => match_result : TEAM SCORE TEAM" )
1675
+
1676
+ ## note - use/keep generic score (as array!! NOT hash!!!)
1677
+ result = { team1: val[0], team2: val[2],
1678
+ score: val[1][1][:score] ## note - as array e.g. [1,1] !!
1679
+ }
1361
1680
  ## pp result
1362
1681
 
1363
1682
  result
1364
1683
  end
1365
1684
  .,.,
1366
1685
 
1367
- module_eval(<<'.,.,', 'parser.y', 491)
1368
- def _reduce_135(val, _values, result)
1369
- trace( "REDUCE => match_result : match_fixture score" )
1370
- result = { score: val[1][1] }.merge( val[0] ).merge( val[2] )
1371
- ## pp result
1686
+ module_eval(<<'.,.,', 'parser.y', 678)
1687
+ def _reduce_140(val, _values, result)
1688
+ result = { team1: val[0], team2: val[2],
1689
+ score: val[1][1],
1690
+ status_inline: 'awarded'
1691
+ }
1372
1692
 
1373
1693
  result
1374
1694
  end
1375
1695
  .,.,
1376
1696
 
1377
- module_eval(<<'.,.,', 'parser.y', 517)
1378
- def _reduce_136(val, _values, result)
1379
- @tree << GoalLineAlt.new( goals: val[0] )
1697
+ module_eval(<<'.,.,', 'parser.y', 685)
1698
+ def _reduce_141(val, _values, result)
1699
+ result = { team1: val[0], team2: val[2],
1700
+ status_inline: 'awarded'
1701
+ }
1380
1702
 
1381
1703
  result
1382
1704
  end
1383
1705
  .,.,
1384
1706
 
1385
- module_eval(<<'.,.,', 'parser.y', 521)
1386
- def _reduce_137(val, _values, result)
1387
- result = val
1707
+ module_eval(<<'.,.,', 'parser.y', 691)
1708
+ def _reduce_142(val, _values, result)
1709
+ result = { team1: val[0], team2: val[2],
1710
+ score: val[1][1],
1711
+ status_inline: 'abandoned'
1712
+ }
1713
+
1388
1714
  result
1389
1715
  end
1390
1716
  .,.,
1391
1717
 
1392
- module_eval(<<'.,.,', 'parser.y', 523)
1393
- def _reduce_138(val, _values, result)
1394
- result.push( val[2])
1718
+ module_eval(<<'.,.,', 'parser.y', 698)
1719
+ def _reduce_143(val, _values, result)
1720
+ result = { team1: val[0], team2: val[2],
1721
+ status_inline: 'abandoned'
1722
+ }
1723
+
1395
1724
  result
1396
1725
  end
1397
1726
  .,.,
1398
1727
 
1399
- module_eval(<<'.,.,', 'parser.y', 525)
1400
- def _reduce_139(val, _values, result)
1401
- result.push( val[1])
1728
+ module_eval(<<'.,.,', 'parser.y', 704)
1729
+ def _reduce_144(val, _values, result)
1730
+ result = { team1: val[0], team2: val[2],
1731
+ status_inline: 'annulled'
1732
+ }
1733
+
1402
1734
  result
1403
1735
  end
1404
1736
  .,.,
1405
1737
 
1406
- # reduce 140 omitted
1738
+ module_eval(<<'.,.,', 'parser.y', 710)
1739
+ def _reduce_145(val, _values, result)
1740
+ result = { team1: val[0], team2: val[2],
1741
+ status_inline: 'suspended'
1742
+ }
1407
1743
 
1408
- # reduce 141 omitted
1744
+ result
1745
+ end
1746
+ .,.,
1409
1747
 
1410
- module_eval(<<'.,.,', 'parser.y', 533)
1411
- def _reduce_142(val, _values, result)
1412
- result = GoalAlt.new( score: val[0],
1413
- player: val[1] )
1748
+ module_eval(<<'.,.,', 'parser.y', 717)
1749
+ def _reduce_146(val, _values, result)
1750
+ trace( "REDUCE => match_result : TEAM SCORE TEAM SCORE_FULLER_MORE" )
1751
+ score = nil
1752
+ score = if val[3][1][:score] &&
1753
+ val[3][1][:score]=='et' ## check aet flag present?
1754
+ val[3][1].delete( :score ) ## note - remove/delete flag
1755
+ { et: val[1][1][:score] }
1756
+ elsif val[3][1][:score] &&
1757
+ val[3][1][:score]=='ht' ## check ht flag present?
1758
+ val[3][1].delete( :score ) ## note - remove/delete flag
1759
+ { ht: val[1][1][:score] }
1760
+ elsif val[3][1][:score] &&
1761
+ val[3][1][:score]=='ft' ## check ft flag present?
1762
+ val[3][1].delete( :score ) ## note - remove/delete flag
1763
+ { ft: val[1][1][:score] }
1764
+ else ## assume full-time (ft)
1765
+ { ft: val[1][1][:score] }
1766
+ end
1767
+
1768
+ result = { team1: val[0],
1769
+ team2: val[2],
1770
+ score: score.merge( val[3][1] )
1771
+ }
1414
1772
 
1415
1773
  result
1416
1774
  end
1417
1775
  .,.,
1418
1776
 
1419
- module_eval(<<'.,.,', 'parser.y', 538)
1420
- def _reduce_143(val, _values, result)
1421
- result = GoalAlt.new( score: val[0],
1422
- player: val[1],
1423
- minute: val[2] )
1777
+ module_eval(<<'.,.,', 'parser.y', 742)
1778
+ def _reduce_147(val, _values, result)
1779
+ result = { team1: val[0],
1780
+ team2: val[2],
1781
+ score: val[1][1]
1782
+ }
1424
1783
 
1425
1784
  result
1426
1785
  end
1427
1786
  .,.,
1428
1787
 
1429
- module_eval(<<'.,.,', 'parser.y', 550)
1430
- def _reduce_144(val, _values, result)
1431
- kwargs = val[1]
1432
- @tree << GoalLine.new( **kwargs )
1788
+ module_eval(<<'.,.,', 'parser.y', 749)
1789
+ def _reduce_148(val, _values, result)
1790
+ trace( "REDUCE => match_result : match_fixture SCORE" )
1791
+ ## note - use/keep generic score (as array!! NOT hash!!!)
1792
+ result = { score: val[1][1][:score] ## note - as array e.g. [1,1] !!
1793
+ }.merge( val[0] )
1794
+ ## pp result
1433
1795
 
1434
1796
  result
1435
1797
  end
1436
1798
  .,.,
1437
1799
 
1438
- module_eval(<<'.,.,', 'parser.y', 555)
1439
- def _reduce_145(val, _values, result)
1440
- kwargs = val[0]
1441
- @tree << GoalLine.new( **kwargs )
1800
+ module_eval(<<'.,.,', 'parser.y', 757)
1801
+ def _reduce_149(val, _values, result)
1802
+ trace( "REDUCE => match_result : match_fixture score" )
1803
+ result = { score: val[1][1] }.merge( val[0] )
1804
+ ## pp result
1442
1805
 
1443
1806
  result
1444
1807
  end
1445
1808
  .,.,
1446
1809
 
1447
- module_eval(<<'.,.,', 'parser.y', 560)
1448
- def _reduce_146(val, _values, result)
1810
+ module_eval(<<'.,.,', 'parser.y', 766)
1811
+ def _reduce_150(val, _values, result)
1812
+ trace( "REDUCE => match_result_base : match_fixture_base SCORE" )
1813
+ ## note - use/keep generic score (as array!! NOT hash!!!)
1814
+ result = { score: val[1][1][:score] ## note - as array e.g. [1,1] !!
1815
+ }.merge( val[0] )
1816
+ ## pp result
1817
+
1818
+ result
1819
+ end
1820
+ .,.,
1821
+
1822
+ module_eval(<<'.,.,', 'parser.y', 774)
1823
+ def _reduce_151(val, _values, result)
1824
+ trace( "REDUCE => match_result_base : match_fixture_base score" )
1825
+ result = { score: val[1][1] }.merge( val[0] )
1826
+ ## pp result
1827
+
1828
+ result
1829
+ end
1830
+ .,.,
1831
+
1832
+ module_eval(<<'.,.,', 'parser.y', 813)
1833
+ def _reduce_152(val, _values, result)
1449
1834
  kwargs = val[1]
1450
1835
  @tree << GoalLine.new( **kwargs )
1451
1836
 
@@ -1453,8 +1838,8 @@ module_eval(<<'.,.,', 'parser.y', 560)
1453
1838
  end
1454
1839
  .,.,
1455
1840
 
1456
- module_eval(<<'.,.,', 'parser.y', 565)
1457
- def _reduce_147(val, _values, result)
1841
+ module_eval(<<'.,.,', 'parser.y', 818)
1842
+ def _reduce_153(val, _values, result)
1458
1843
  result = { goals1: val[0],
1459
1844
  goals2: [] }
1460
1845
 
@@ -1462,8 +1847,8 @@ module_eval(<<'.,.,', 'parser.y', 565)
1462
1847
  end
1463
1848
  .,.,
1464
1849
 
1465
- module_eval(<<'.,.,', 'parser.y', 568)
1466
- def _reduce_148(val, _values, result)
1850
+ module_eval(<<'.,.,', 'parser.y', 821)
1851
+ def _reduce_154(val, _values, result)
1467
1852
  result = { goals1: [],
1468
1853
  goals2: val[1] }
1469
1854
 
@@ -1471,8 +1856,8 @@ module_eval(<<'.,.,', 'parser.y', 568)
1471
1856
  end
1472
1857
  .,.,
1473
1858
 
1474
- module_eval(<<'.,.,', 'parser.y', 571)
1475
- def _reduce_149(val, _values, result)
1859
+ module_eval(<<'.,.,', 'parser.y', 824)
1860
+ def _reduce_155(val, _values, result)
1476
1861
  result = { goals1: val[0],
1477
1862
  goals2: val[2] }
1478
1863
 
@@ -1480,82 +1865,610 @@ module_eval(<<'.,.,', 'parser.y', 571)
1480
1865
  end
1481
1866
  .,.,
1482
1867
 
1483
- # reduce 150 omitted
1868
+ # reduce 156 omitted
1484
1869
 
1485
- # reduce 151 omitted
1870
+ # reduce 157 omitted
1486
1871
 
1487
- module_eval(<<'.,.,', 'parser.y', 587)
1488
- def _reduce_152(val, _values, result)
1872
+ # reduce 158 omitted
1873
+
1874
+ # reduce 159 omitted
1875
+
1876
+ module_eval(<<'.,.,', 'parser.y', 835)
1877
+ def _reduce_160(val, _values, result)
1878
+
1879
+ result
1880
+ end
1881
+ .,.,
1882
+
1883
+ # reduce 161 omitted
1884
+
1885
+ # reduce 162 omitted
1886
+
1887
+ # reduce 163 omitted
1888
+
1889
+ module_eval(<<'.,.,', 'parser.y', 840)
1890
+ def _reduce_164(val, _values, result)
1489
1891
  result = val
1490
1892
  result
1491
1893
  end
1492
1894
  .,.,
1493
1895
 
1494
- module_eval(<<'.,.,', 'parser.y', 588)
1495
- def _reduce_153(val, _values, result)
1496
- result.push( val[1])
1896
+ module_eval(<<'.,.,', 'parser.y', 841)
1897
+ def _reduce_165(val, _values, result)
1898
+ result.push( val[2])
1497
1899
  result
1498
1900
  end
1499
1901
  .,.,
1500
1902
 
1501
- module_eval(<<'.,.,', 'parser.y', 604)
1502
- def _reduce_154(val, _values, result)
1503
- result = Goal.new( player: val[0],
1504
- minutes: val[1] )
1903
+ module_eval(<<'.,.,', 'parser.y', 849)
1904
+ def _reduce_166(val, _values, result)
1905
+ result = Goal.new( player: val[0],
1906
+ minutes: val[1] )
1505
1907
 
1506
1908
  result
1507
1909
  end
1508
1910
  .,.,
1509
1911
 
1510
- module_eval(<<'.,.,', 'parser.y', 616)
1511
- def _reduce_155(val, _values, result)
1912
+ module_eval(<<'.,.,', 'parser.y', 854)
1913
+ def _reduce_167(val, _values, result)
1914
+ ### todo/check:
1915
+ ## auto convert/expand
1916
+ ## count to minutes - why? why not?
1917
+ ## todo/fix - pass in empty minutes ary [] - why? why not?
1918
+ result = Goal.new( player: val[0],
1919
+ count: val[1][1] )
1920
+
1921
+ result
1922
+ end
1923
+ .,.,
1924
+
1925
+ module_eval(<<'.,.,', 'parser.y', 863)
1926
+ def _reduce_168(val, _values, result)
1927
+ result = Goal.new( player: val[0],
1928
+ minutes: [] )
1929
+
1930
+ result
1931
+ end
1932
+ .,.,
1933
+
1934
+ module_eval(<<'.,.,', 'parser.y', 870)
1935
+ def _reduce_169(val, _values, result)
1936
+
1937
+ result
1938
+ end
1939
+ .,.,
1940
+
1941
+ # reduce 170 omitted
1942
+
1943
+ module_eval(<<'.,.,', 'parser.y', 873)
1944
+ def _reduce_171(val, _values, result)
1945
+ result = val
1946
+ result
1947
+ end
1948
+ .,.,
1949
+
1950
+ module_eval(<<'.,.,', 'parser.y', 874)
1951
+ def _reduce_172(val, _values, result)
1952
+ result.push( val[2])
1953
+ result
1954
+ end
1955
+ .,.,
1956
+
1957
+ module_eval(<<'.,.,', 'parser.y', 878)
1958
+ def _reduce_173(val, _values, result)
1959
+ kwargs = {}.merge( val[0][1] )
1960
+ result = GoalMinute.new( **kwargs )
1961
+
1962
+ result
1963
+ end
1964
+ .,.,
1965
+
1966
+ module_eval(<<'.,.,', 'parser.y', 895)
1967
+ def _reduce_174(val, _values, result)
1968
+ @tree << GoalLineAlt.new( goals: val[1] )
1969
+
1970
+ result
1971
+ end
1972
+ .,.,
1973
+
1974
+ module_eval(<<'.,.,', 'parser.y', 899)
1975
+ def _reduce_175(val, _values, result)
1512
1976
  result = val
1513
1977
  result
1514
1978
  end
1515
1979
  .,.,
1516
1980
 
1517
- module_eval(<<'.,.,', 'parser.y', 617)
1518
- def _reduce_156(val, _values, result)
1519
- result.push( val[1])
1981
+ module_eval(<<'.,.,', 'parser.y', 902)
1982
+ def _reduce_176(val, _values, result)
1983
+ result.push( val[2])
1984
+ result
1985
+ end
1986
+ .,.,
1987
+
1988
+ module_eval(<<'.,.,', 'parser.y', 908)
1989
+ def _reduce_177(val, _values, result)
1990
+ result = GoalAlt.new( score: val[0][1][:score],
1991
+ player: val[1] )
1992
+
1993
+ result
1994
+ end
1995
+ .,.,
1996
+
1997
+ module_eval(<<'.,.,', 'parser.y', 913)
1998
+ def _reduce_178(val, _values, result)
1999
+ goal_minute = GoalMinute.new( **val[2][1] )
2000
+
2001
+ result = GoalAlt.new( score: val[0][1][:score],
2002
+ player: val[1],
2003
+ minute: goal_minute.to_minute,
2004
+ goal_type: goal_minute.to_goal_type )
2005
+
2006
+ result
2007
+ end
2008
+ .,.,
2009
+
2010
+ module_eval(<<'.,.,', 'parser.y', 922)
2011
+ def _reduce_179(val, _values, result)
2012
+ result = GoalAlt.new( score: val[0][1][:score],
2013
+ player: val[1],
2014
+ goal_type: GoalType.new( **val[2][1] ))
2015
+
2016
+ result
2017
+ end
2018
+ .,.,
2019
+
2020
+ module_eval(<<'.,.,', 'parser.y', 932)
2021
+ def _reduce_180(val, _values, result)
2022
+ result = GoalAlt.new( player: val[0],
2023
+ score: val[1][1][:score] )
2024
+
2025
+ result
2026
+ end
2027
+ .,.,
2028
+
2029
+ module_eval(<<'.,.,', 'parser.y', 937)
2030
+ def _reduce_181(val, _values, result)
2031
+ goal_minute = GoalMinute.new( **val[1][1] )
2032
+
2033
+ result = GoalAlt.new( player: val[0],
2034
+ minute: goal_minute.to_minute,
2035
+ goal_type: goal_minute.to_goal_type,
2036
+ score: val[2][1][:score] )
2037
+
2038
+ result
2039
+ end
2040
+ .,.,
2041
+
2042
+ module_eval(<<'.,.,', 'parser.y', 946)
2043
+ def _reduce_182(val, _values, result)
2044
+ result = GoalAlt.new( player: val[0],
2045
+ goal_type: GoalType.new( **val[1][1] ),
2046
+ score: val[2][1][:score] )
2047
+
2048
+ result
2049
+ end
2050
+ .,.,
2051
+
2052
+ module_eval(<<'.,.,', 'parser.y', 958)
2053
+ def _reduce_183(val, _values, result)
2054
+ @tree << GoalLineCompat.new( goals: val[1] )
2055
+
2056
+ result
2057
+ end
2058
+ .,.,
2059
+
2060
+ module_eval(<<'.,.,', 'parser.y', 962)
2061
+ def _reduce_184(val, _values, result)
2062
+ result = val
1520
2063
  result
1521
2064
  end
1522
2065
  .,.,
1523
2066
 
1524
- module_eval(<<'.,.,', 'parser.y', 618)
1525
- def _reduce_157(val, _values, result)
2067
+ module_eval(<<'.,.,', 'parser.y', 964)
2068
+ def _reduce_185(val, _values, result)
1526
2069
  result.push( val[2])
1527
2070
  result
1528
2071
  end
1529
2072
  .,.,
1530
2073
 
1531
- module_eval(<<'.,.,', 'parser.y', 624)
1532
- def _reduce_158(val, _values, result)
1533
- kwargs = {}.merge( val[0][1] )
1534
- result = Minute.new( **kwargs )
2074
+ module_eval(<<'.,.,', 'parser.y', 983)
2075
+ def _reduce_186(val, _values, result)
2076
+ result = GoalCompat.new( minute: Minute.new(**val[0][1]),
2077
+ player: val[1],
2078
+ score: val[2][1][:score] )
1535
2079
 
1536
2080
  result
1537
2081
  end
1538
2082
  .,.,
1539
2083
 
1540
- module_eval(<<'.,.,', 'parser.y', 629)
1541
- def _reduce_159(val, _values, result)
1542
- kwargs = { }.merge( val[0][1] ).merge( val[1] )
1543
- result = Minute.new( **kwargs )
2084
+ module_eval(<<'.,.,', 'parser.y', 989)
2085
+ def _reduce_187(val, _values, result)
2086
+ result = GoalCompat.new( minute: Minute.new(**val[0][1]),
2087
+ player: val[1],
2088
+ goal_type: GoalType.new( **val[2][1] ),
2089
+ score: val[3][1][:score] )
1544
2090
 
1545
2091
  result
1546
2092
  end
1547
2093
  .,.,
1548
2094
 
1549
- module_eval(<<'.,.,', 'parser.y', 633)
1550
- def _reduce_160(val, _values, result)
1551
- result = { og: true }
2095
+ module_eval(<<'.,.,', 'parser.y', 996)
2096
+ def _reduce_188(val, _values, result)
2097
+ result = GoalCompat.new( minute: Minute.new(**val[0][1]),
2098
+ score: val[1][1][:score],
2099
+ player: val[2] )
2100
+
2101
+ result
2102
+ end
2103
+ .,.,
2104
+
2105
+ module_eval(<<'.,.,', 'parser.y', 1002)
2106
+ def _reduce_189(val, _values, result)
2107
+ result = GoalCompat.new( minute: Minute.new(**val[0][1]),
2108
+ score: val[1][1][:score],
2109
+ player: val[2],
2110
+ goal_type: GoalType.new( **val[3][1] ))
2111
+
2112
+ result
2113
+ end
2114
+ .,.,
2115
+
2116
+ module_eval(<<'.,.,', 'parser.y', 1015)
2117
+ def _reduce_190(val, _values, result)
2118
+ @tree << AttendanceLine.new( att: val[1][1][:value] )
2119
+
2120
+ result
2121
+ end
2122
+ .,.,
2123
+
2124
+ module_eval(<<'.,.,', 'parser.y', 1021)
2125
+ def _reduce_191(val, _values, result)
2126
+ @tree << RefereeLine.new( referees: val[1] )
2127
+
2128
+ result
2129
+ end
2130
+ .,.,
2131
+
2132
+ # reduce 192 omitted
2133
+
2134
+ module_eval(<<'.,.,', 'parser.y', 1027)
2135
+ def _reduce_193(val, _values, result)
2136
+ @tree << AttendanceLine.new( att: val[2][1][:value] )
2137
+
2138
+ result
2139
+ end
2140
+ .,.,
2141
+
2142
+ module_eval(<<'.,.,', 'parser.y', 1031)
2143
+ def _reduce_194(val, _values, result)
2144
+ result = [val[0]]
2145
+ result
2146
+ end
2147
+ .,.,
2148
+
2149
+ module_eval(<<'.,.,', 'parser.y', 1033)
2150
+ def _reduce_195(val, _values, result)
2151
+ result = (val[0] << val[2])
2152
+ result
2153
+ end
2154
+ .,.,
2155
+
2156
+ module_eval(<<'.,.,', 'parser.y', 1036)
2157
+ def _reduce_196(val, _values, result)
2158
+ result = Referee.new( name: val[0] )
2159
+ result
2160
+ end
2161
+ .,.,
2162
+
2163
+ module_eval(<<'.,.,', 'parser.y', 1038)
2164
+ def _reduce_197(val, _values, result)
2165
+ result = Referee.new( name: val[0], country: val[1] )
2166
+ result
2167
+ end
2168
+ .,.,
2169
+
2170
+ module_eval(<<'.,.,', 'parser.y', 1043)
2171
+ def _reduce_198(val, _values, result)
2172
+ @tree << PenaltiesLine.new( penalties: val[1] )
2173
+
2174
+ result
2175
+ end
2176
+ .,.,
2177
+
2178
+ module_eval(<<'.,.,', 'parser.y', 1046)
2179
+ def _reduce_199(val, _values, result)
2180
+ result = [val[0]]
2181
+ result
2182
+ end
2183
+ .,.,
2184
+
2185
+ module_eval(<<'.,.,', 'parser.y', 1047)
2186
+ def _reduce_200(val, _values, result)
2187
+ result << val[2]
2188
+ result
2189
+ end
2190
+ .,.,
2191
+
2192
+ # reduce 201 omitted
2193
+
2194
+ # reduce 202 omitted
2195
+
2196
+ # reduce 203 omitted
2197
+
2198
+ # reduce 204 omitted
2199
+
2200
+ module_eval(<<'.,.,', 'parser.y', 1057)
2201
+ def _reduce_205(val, _values, result)
2202
+ result = Penalty.new( score: val[0][1][:score],
2203
+ name: val[1] )
2204
+
2205
+ result
2206
+ end
2207
+ .,.,
2208
+
2209
+ module_eval(<<'.,.,', 'parser.y', 1062)
2210
+ def _reduce_206(val, _values, result)
2211
+ result = Penalty.new( score: val[0][1][:score],
2212
+ name: val[1],
2213
+ note: val[2] )
2214
+
2215
+ result
2216
+ end
2217
+ .,.,
2218
+
2219
+ module_eval(<<'.,.,', 'parser.y', 1068)
2220
+ def _reduce_207(val, _values, result)
2221
+ result = Penalty.new( name: val[0] )
2222
+
2223
+ result
2224
+ end
2225
+ .,.,
2226
+
2227
+ module_eval(<<'.,.,', 'parser.y', 1072)
2228
+ def _reduce_208(val, _values, result)
2229
+ result = Penalty.new( name: val[0],
2230
+ note: val[1] )
2231
+
2232
+ result
2233
+ end
2234
+ .,.,
2235
+
2236
+ module_eval(<<'.,.,', 'parser.y', 1079)
2237
+ def _reduce_209(val, _values, result)
2238
+ @tree << CardsLine.new( type: 'Y', bookings: val[1] )
2239
+
2240
+ result
2241
+ end
2242
+ .,.,
2243
+
2244
+ module_eval(<<'.,.,', 'parser.y', 1083)
2245
+ def _reduce_210(val, _values, result)
2246
+ @tree << CardsLine.new( type: 'R', bookings: val[1] )
2247
+
2248
+ result
2249
+ end
2250
+ .,.,
2251
+
2252
+ module_eval(<<'.,.,', 'parser.y', 1090)
2253
+ def _reduce_211(val, _values, result)
2254
+ result = [val[0]]
2255
+ result
2256
+ end
2257
+ .,.,
2258
+
2259
+ module_eval(<<'.,.,', 'parser.y', 1092)
2260
+ def _reduce_212(val, _values, result)
2261
+ result << val[2]
2262
+ result
2263
+ end
2264
+ .,.,
2265
+
2266
+ # reduce 213 omitted
2267
+
2268
+ # reduce 214 omitted
2269
+
2270
+ # reduce 215 omitted
2271
+
2272
+ module_eval(<<'.,.,', 'parser.y', 1099)
2273
+ def _reduce_216(val, _values, result)
2274
+ result = Booking.new( name: val[0] )
2275
+ result
2276
+ end
2277
+ .,.,
2278
+
2279
+ module_eval(<<'.,.,', 'parser.y', 1101)
2280
+ def _reduce_217(val, _values, result)
2281
+ result = Booking.new( name: val[0], minute: val[1][1] )
2282
+ result
2283
+ end
2284
+ .,.,
2285
+
2286
+ module_eval(<<'.,.,', 'parser.y', 1109)
2287
+ def _reduce_218(val, _values, result)
2288
+ kwargs = { team: val[0],
2289
+ lineup: val[1] }.merge( val[2] )
2290
+ @tree << LineupLine.new( **kwargs )
2291
+
2292
+ result
2293
+ end
2294
+ .,.,
2295
+
2296
+ module_eval(<<'.,.,', 'parser.y', 1115)
2297
+ def _reduce_219(val, _values, result)
2298
+ result = {}
2299
+ result
2300
+ end
2301
+ .,.,
2302
+
2303
+ module_eval(<<'.,.,', 'parser.y', 1117)
2304
+ def _reduce_220(val, _values, result)
2305
+ result = { coach: val[2] }
2306
+ result
2307
+ end
2308
+ .,.,
2309
+
2310
+ module_eval(<<'.,.,', 'parser.y', 1119)
2311
+ def _reduce_221(val, _values, result)
2312
+ result = { coach: val[3] }
2313
+ result
2314
+ end
2315
+ .,.,
2316
+
2317
+ module_eval(<<'.,.,', 'parser.y', 1122)
2318
+ def _reduce_222(val, _values, result)
2319
+ result = [[val[0]]]
2320
+ result
2321
+ end
2322
+ .,.,
2323
+
2324
+ module_eval(<<'.,.,', 'parser.y', 1125)
2325
+ def _reduce_223(val, _values, result)
2326
+ ## if lineup_sep is - start a new sub array!!
2327
+ if val[1] == '-'
2328
+ result << [val[2]]
2329
+ else
2330
+ result[-1] << val[2]
2331
+ end
2332
+
2333
+ result
2334
+ end
2335
+ .,.,
2336
+
2337
+ # reduce 224 omitted
2338
+
2339
+ module_eval(<<'.,.,', 'parser.y', 1135)
2340
+ def _reduce_225(val, _values, result)
2341
+ result = val[0]
2342
+ result
2343
+ end
2344
+ .,.,
2345
+
2346
+ # reduce 226 omitted
2347
+
2348
+ module_eval(<<'.,.,', 'parser.y', 1137)
2349
+ def _reduce_227(val, _values, result)
2350
+ result = val[0]
2351
+ result
2352
+ end
2353
+ .,.,
2354
+
2355
+ module_eval(<<'.,.,', 'parser.y', 1141)
2356
+ def _reduce_228(val, _values, result)
2357
+ result = {}
2358
+ result
2359
+ end
2360
+ .,.,
2361
+
2362
+ module_eval(<<'.,.,', 'parser.y', 1142)
2363
+ def _reduce_229(val, _values, result)
2364
+ result = { cards: val[0] }
2365
+ result
2366
+ end
2367
+ .,.,
2368
+
2369
+ module_eval(<<'.,.,', 'parser.y', 1144)
2370
+ def _reduce_230(val, _values, result)
2371
+ result = {}
2372
+ result
2373
+ end
2374
+ .,.,
2375
+
2376
+ module_eval(<<'.,.,', 'parser.y', 1145)
2377
+ def _reduce_231(val, _values, result)
2378
+ result = { captain: true }
2379
+ result
2380
+ end
2381
+ .,.,
2382
+
2383
+ module_eval(<<'.,.,', 'parser.y', 1149)
2384
+ def _reduce_232(val, _values, result)
2385
+ result = { name: val[0] }.merge( val[1]).merge( val[2] )
2386
+
2387
+ result
2388
+ end
2389
+ .,.,
2390
+
2391
+ module_eval(<<'.,.,', 'parser.y', 1154)
2392
+ def _reduce_233(val, _values, result)
2393
+ kwargs = {}.merge(val[0] ).merge( val[1])
2394
+ result = Lineup.new( **kwargs )
2395
+
2396
+ result
2397
+ end
2398
+ .,.,
2399
+
2400
+ module_eval(<<'.,.,', 'parser.y', 1174)
2401
+ def _reduce_234(val, _values, result)
2402
+ result = {}
2403
+ result
2404
+ end
2405
+ .,.,
2406
+
2407
+ module_eval(<<'.,.,', 'parser.y', 1177)
2408
+ def _reduce_235(val, _values, result)
2409
+ kwargs = {}.merge( val[1] ).merge( val[3] )
2410
+ sub = Sub.new( sub: Lineup.new( **kwargs ),
2411
+ minute: Minute.new(val[2][1])
2412
+ )
2413
+ result = { sub: sub }
2414
+
2415
+ result
2416
+ end
2417
+ .,.,
2418
+
2419
+ module_eval(<<'.,.,', 'parser.y', 1185)
2420
+ def _reduce_236(val, _values, result)
2421
+ sub = Sub.new( sub: val[1] )
2422
+ result = { sub: sub }
2423
+
2424
+ result
2425
+ end
2426
+ .,.,
2427
+
2428
+ module_eval(<<'.,.,', 'parser.y', 1192)
2429
+ def _reduce_237(val, _values, result)
2430
+ sub = Sub.new( sub: val[2],
2431
+ minute: Minute.new(val[1][1])
2432
+ )
2433
+ result = { sub: sub }
2434
+
2435
+ result
2436
+ end
2437
+ .,.,
2438
+
2439
+ module_eval(<<'.,.,', 'parser.y', 1201)
2440
+ def _reduce_238(val, _values, result)
2441
+ result = [{ card: 'YELLOW' }.merge( val[0][1] )]
2442
+ result
2443
+ end
2444
+ .,.,
2445
+
2446
+ module_eval(<<'.,.,', 'parser.y', 1203)
2447
+ def _reduce_239(val, _values, result)
2448
+ result = [{ card: 'YELLOW' }.merge( val[0][1] ),
2449
+ { card: 'YELLOW_RED' }.merge( val[1][1])]
2450
+ result
2451
+ end
2452
+ .,.,
2453
+
2454
+ module_eval(<<'.,.,', 'parser.y', 1206)
2455
+ def _reduce_240(val, _values, result)
2456
+ result = [{ card: 'YELLOW' }.merge( val[0][1] ),
2457
+ { card: 'RED' }.merge( val[1][1])]
2458
+ result
2459
+ end
2460
+ .,.,
2461
+
2462
+ module_eval(<<'.,.,', 'parser.y', 1209)
2463
+ def _reduce_241(val, _values, result)
2464
+ result = [{ card: 'RED' }.merge( val[0][1])]
1552
2465
  result
1553
2466
  end
1554
2467
  .,.,
1555
2468
 
1556
- module_eval(<<'.,.,', 'parser.y', 634)
1557
- def _reduce_161(val, _values, result)
1558
- result = { pen: true }
2469
+ module_eval(<<'.,.,', 'parser.y', 1211)
2470
+ def _reduce_242(val, _values, result)
2471
+ result = [{ card: 'YELLOW_RED' }.merge( val[0][1])]
1559
2472
  result
1560
2473
  end
1561
2474
  .,.,