sportdb-parser 0.7.1 → 0.8.0

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