sportdb-parser 0.7.0 → 0.7.2

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