sportdb-parser 0.6.20 → 0.7.1

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