sportdb-parser 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b299ddece5e64b86bb7ee6b55578099b0624b11d8e5f10721363f45d6ef5d8d8
4
- data.tar.gz: 5712c99b200e6116c9f07fba1215a4bf2560e5bd848c3c8cc48959aa17997b85
3
+ metadata.gz: 85526406c8cd97a5b4e8580e64597b60f2046f4667a97080434238e067be2788
4
+ data.tar.gz: dcd5e6aaa854654974644c026fb99545c31ef2d5929d0518d8418630b5d6ea76
5
5
  SHA512:
6
- metadata.gz: 5d2fce54482e12542c35abd46a292d7f5e6b4db894bba3a7f911269f116d9fa530653d36ace4295e2f819bb974093b5567a5494a2d50b54ee3f250b314d40a73
7
- data.tar.gz: 7b6ef8aaafa2d20c0356fcdc048211f24a04cc4f95819ad8d225b2c9a4a29e44d8f415190acfbe3e31b2f9cc457a12f8e75c460394e984d5b9b1f476f0f8e30f
6
+ metadata.gz: fc086846a66d2657d3debae5562fe20fbd2327741c8af1485972dfd0b8f46b3c649c0345ba173f2d3f40622bd4bddecc7ea0072d4d129bc5dc542554c539ebab
7
+ data.tar.gz: c0c4653cb40cb89e8086b6dc00ed853c62abf75fc18972cf98230a779cd8a7f73d797098ec53c2e942e6271c00c9d11a1da8f6975704141cbfbba599ec741098
data/CHANGELOG.md CHANGED
@@ -1,4 +1,4 @@
1
- ### 0.6.1
1
+ ### 0.6.2
2
2
  ### 0.0.1 / 2024-07-12
3
3
 
4
4
  * Everything is new. First release.
@@ -389,7 +389,9 @@ def _tokenize_line( line )
389
389
  puts "!!! TOKENIZE ERROR (PROP_RE) - no match found"
390
390
  nil
391
391
  end
392
- else ## assume TOP_LEVEL (a.k.a. RE) machinery
392
+ ###################################################
393
+ ## assume TOP_LEVEL (a.k.a. RE) machinery
394
+ else
393
395
  if m[:space] || m[:spaces]
394
396
  nil ## skip space(s)
395
397
  elsif m[:prop_key]
@@ -408,6 +410,11 @@ def _tokenize_line( line )
408
410
  else
409
411
  [:STATUS, [m[:status], {status: m[:status] } ]]
410
412
  end
413
+ elsif m[:note]
414
+ ### todo/check:
415
+ ## use value hash - why? why not? or simplify to:
416
+ ## [:NOTE, m[:note]]
417
+ [:NOTE, [m[:note], {note: m[:note] } ]]
411
418
  elsif m[:time]
412
419
  ## unify to iso-format
413
420
  ### 12.40 => 12:40
@@ -9,124 +9,126 @@ class RaccMatchParser < Racc::Parser
9
9
  ##### State transition tables begin ###
10
10
 
11
11
  racc_action_table = [
12
- 15, 12, 16, 163, 84, 126, 157, 42, 17, 45,
13
- 74, 109, 75, 72, 110, 21, 81, 32, 33, 18,
14
- 69, 36, 19, 23, 158, 24, 25, 162, 27, 30,
15
- 32, 33, 15, 12, 16, 59, 39, 39, 44, 42,
16
- 17, 47, 70, 59, 82, 77, 78, 21, 42, 166,
17
- 50, 18, 72, 36, 19, 23, 167, 24, 25, 123,
18
- 27, 30, 32, 33, 55, 61, 56, 178, 39, 66,
19
- 44, 50, 64, 152, 167, 98, 101, 99, 100, 44,
20
- 140, 70, 59, 98, 101, 99, 100, 51, 105, 63,
21
- 102, 104, 136, 77, 78, 94, 44, 89, 114, 115,
22
- 138, 139, 155, 156, 52, 53, 59, -73, -74, 60,
23
- 36, 76, 86, 87, 91, 94, 95, 112, 116, 117,
24
- 119, 120, -63, 121, 36, 128, 129, 130, 94, 44,
25
- 133, 44, 142, 143, 144, 145, 146, 50, 148, 149,
26
- 109, 159, 160, 161, 164, 36, 168, 44, 44, 94,
27
- 170, 171, 172, 173, 50, 175, 176, 177, 36, 180,
28
- 181 ]
12
+ 15, 12, 16, 45, 85, 127, 160, 42, 17, 47,
13
+ 75, 110, 76, 73, 111, 21, 82, 32, 33, 18,
14
+ 69, 36, 19, 23, 161, 24, 25, 129, 27, 30,
15
+ 32, 33, 50, 15, 12, 16, 59, 39, 39, 44,
16
+ 42, 17, 70, 72, 59, 83, 78, 79, 21, 42,
17
+ 166, 51, 18, 73, 36, 19, 23, 130, 24, 25,
18
+ 124, 27, 30, 32, 33, 55, 50, 56, 155, 61,
19
+ 39, 169, 44, 66, 139, 165, 64, 95, 170, 182,
20
+ 52, 44, 70, 72, 59, 143, 170, 53, 99, 102,
21
+ 100, 101, 59, 63, 99, 102, 100, 101, 106, -73,
22
+ 103, 105, 78, 79, 44, 90, 115, 116, 141, 142,
23
+ 158, 159, -74, 60, 36, 77, 87, 88, 92, 95,
24
+ 96, 113, 117, 118, 120, 121, -63, 122, 36, 131,
25
+ 132, 133, 95, 44, 136, 44, 145, 146, 147, 148,
26
+ 149, 50, 151, 152, 110, 162, 163, 164, 167, 36,
27
+ 171, 172, 44, 44, 95, 174, 175, 176, 177, 50,
28
+ 179, 180, 181, 36, 184, 185 ]
29
29
 
30
30
  racc_action_check = [
31
- 0, 0, 0, 118, 37, 70, 111, 0, 0, 1,
31
+ 0, 0, 0, 1, 37, 70, 112, 0, 0, 16,
32
32
  30, 50, 30, 29, 50, 0, 36, 30, 30, 0,
33
- 29, 0, 0, 0, 111, 0, 0, 118, 0, 0,
34
- 0, 0, 2, 2, 2, 70, 0, 37, 0, 2,
35
- 2, 16, 29, 29, 36, 36, 36, 2, 21, 124,
36
- 17, 2, 67, 2, 2, 2, 124, 2, 2, 67,
37
- 2, 2, 2, 2, 21, 26, 21, 165, 2, 26,
38
- 2, 109, 26, 109, 165, 47, 47, 47, 47, 21,
39
- 96, 67, 67, 96, 96, 96, 96, 18, 48, 26,
40
- 48, 48, 92, 35, 35, 92, 41, 41, 52, 52,
41
- 94, 94, 110, 110, 19, 20, 22, 23, 24, 25,
42
- 28, 33, 39, 40, 42, 44, 45, 51, 54, 57,
43
- 59, 62, 64, 65, 69, 71, 80, 83, 86, 88,
44
- 89, 91, 98, 99, 100, 101, 102, 103, 104, 105,
45
- 107, 113, 116, 117, 120, 123, 127, 132, 134, 136,
46
- 142, 143, 144, 151, 152, 153, 154, 163, 167, 173,
47
- 174 ]
33
+ 29, 0, 0, 0, 112, 0, 0, 71, 0, 0,
34
+ 0, 0, 17, 2, 2, 2, 70, 0, 37, 0,
35
+ 2, 2, 29, 29, 29, 36, 36, 36, 2, 21,
36
+ 119, 18, 2, 67, 2, 2, 2, 71, 2, 2,
37
+ 67, 2, 2, 2, 2, 21, 110, 21, 110, 26,
38
+ 2, 125, 2, 26, 93, 119, 26, 93, 125, 168,
39
+ 19, 21, 67, 67, 67, 97, 168, 20, 97, 97,
40
+ 97, 97, 22, 26, 47, 47, 47, 47, 48, 23,
41
+ 48, 48, 35, 35, 41, 41, 52, 52, 95, 95,
42
+ 111, 111, 24, 25, 28, 33, 39, 40, 42, 44,
43
+ 45, 51, 54, 57, 59, 62, 64, 65, 69, 72,
44
+ 81, 84, 87, 89, 90, 92, 99, 100, 101, 102,
45
+ 103, 104, 105, 106, 108, 114, 117, 118, 121, 124,
46
+ 128, 130, 135, 137, 139, 145, 146, 147, 154, 155,
47
+ 156, 157, 166, 170, 177, 178 ]
48
48
 
49
49
  racc_action_pointer = [
50
- -1, 9, 31, nil, nil, nil, nil, nil, nil, nil,
51
- nil, nil, nil, nil, nil, nil, 37, 38, 66, 83,
52
- 101, 40, 72, 85, 86, 105, 61, nil, 88, 9,
53
- -14, nil, nil, 80, nil, 56, 8, 0, nil, 73,
54
- 109, 57, 74, nil, 101, 116, nil, 70, 80, nil,
55
- -2, 95, 74, nil, 101, nil, nil, 102, nil, 114,
56
- nil, nil, 94, nil, 93, 94, nil, 48, nil, 102,
57
- 1, 121, nil, nil, nil, nil, nil, nil, nil, nil,
58
- 104, nil, nil, 105, nil, nil, 114, nil, 90, 126,
59
- nil, 92, 81, nil, 59, nil, 78, nil, 126, 127,
60
- 128, 131, 132, 125, 134, 135, nil, 127, nil, 59,
61
- 84, 2, nil, 137, nil, nil, 138, 139, -8, nil,
62
- 140, nil, nil, 123, 45, nil, nil, 142, nil, nil,
63
- nil, nil, 108, nil, 109, nil, 135, nil, nil, nil,
64
- nil, nil, 146, 147, 148, nil, nil, nil, nil, nil,
65
- nil, 139, 142, 138, 142, nil, nil, nil, nil, nil,
66
- nil, nil, nil, 151, nil, 63, nil, 136, nil, nil,
67
- nil, nil, nil, 144, 145, nil, nil, nil, nil, nil,
68
- nil, nil ]
50
+ -1, 3, 32, nil, nil, nil, nil, nil, nil, nil,
51
+ nil, nil, nil, nil, nil, nil, 5, 20, 30, 59,
52
+ 83, 41, 57, 77, 90, 109, 65, nil, 92, 9,
53
+ -14, nil, nil, 84, nil, 64, 8, 0, nil, 76,
54
+ 113, 64, 77, nil, 105, 120, nil, 89, 90, nil,
55
+ -2, 99, 82, nil, 105, nil, nil, 106, nil, 118,
56
+ nil, nil, 98, nil, 97, 98, nil, 49, nil, 106,
57
+ 1, 23, 125, nil, nil, nil, nil, nil, nil, nil,
58
+ nil, 108, nil, nil, 109, nil, nil, 118, nil, 93,
59
+ 130, nil, 95, 63, nil, 66, nil, 83, nil, 130,
60
+ 131, 132, 135, 136, 129, 138, 139, nil, 131, nil,
61
+ 54, 92, 2, nil, 141, nil, nil, 142, 143, 39,
62
+ nil, 144, nil, nil, 127, 67, nil, nil, 146, nil,
63
+ 147, nil, nil, nil, nil, 112, nil, 113, nil, 140,
64
+ nil, nil, nil, nil, nil, 151, 152, 153, nil, nil,
65
+ nil, nil, nil, nil, 144, 147, 143, 147, nil, nil,
66
+ nil, nil, nil, nil, nil, nil, 156, nil, 75, nil,
67
+ 141, nil, nil, nil, nil, nil, nil, 149, 150, nil,
68
+ nil, nil, nil, nil, nil, nil ]
69
69
 
70
70
  racc_action_default = [
71
- -1, -116, -2, -3, -5, -6, -7, -8, -9, -10,
72
- -11, -12, -13, -14, -15, -16, -116, -116, -116, -116,
73
- -116, -116, -51, -53, -54, -116, -116, -60, -116, -116,
74
- -70, -72, -75, -76, -86, -87, -116, -116, -96, -116,
75
- -116, -101, -116, -106, -116, -116, -4, -116, -116, -25,
76
- -32, -116, -116, -49, -116, -53, -54, -116, -52, -116,
77
- -55, -56, -116, -58, -59, -116, -62, -116, -65, -116,
78
- -116, -116, -81, -71, -73, -74, -77, -91, -92, -94,
79
- -116, -89, -90, -116, -95, -97, -116, -100, -116, -104,
80
- -107, -116, -108, -109, -112, 182, -116, -18, -116, -116,
81
- -116, -116, -116, -116, -27, -29, -31, -33, -35, -116,
82
- -116, -116, -44, -116, -47, -48, -116, -116, -82, -84,
83
- -116, -61, -64, -116, -116, -68, -78, -116, -80, -88,
84
- -93, -98, -103, -105, -102, -110, -116, -113, -114, -115,
85
- -17, -19, -116, -116, -116, -23, -24, -26, -28, -30,
86
- -34, -116, -116, -116, -39, -41, -42, -43, -45, -46,
87
- -50, -99, -83, -116, -57, -116, -67, -116, -79, -111,
88
- -20, -21, -22, -116, -116, -38, -40, -85, -66, -69,
89
- -36, -37 ]
71
+ -1, -118, -2, -3, -5, -6, -7, -8, -9, -10,
72
+ -11, -12, -13, -14, -15, -16, -118, -118, -118, -118,
73
+ -118, -118, -51, -53, -54, -118, -118, -60, -118, -118,
74
+ -70, -72, -75, -76, -88, -89, -118, -118, -98, -118,
75
+ -118, -103, -118, -108, -118, -118, -4, -118, -118, -25,
76
+ -32, -118, -118, -49, -118, -53, -54, -118, -52, -118,
77
+ -55, -56, -118, -58, -59, -118, -62, -118, -65, -118,
78
+ -118, -118, -118, -83, -71, -73, -74, -77, -93, -94,
79
+ -96, -118, -91, -92, -118, -97, -99, -118, -102, -118,
80
+ -106, -109, -118, -110, -111, -114, 186, -118, -18, -118,
81
+ -118, -118, -118, -118, -118, -27, -29, -31, -33, -35,
82
+ -118, -118, -118, -44, -118, -47, -48, -118, -118, -84,
83
+ -86, -118, -61, -64, -118, -118, -68, -78, -118, -80,
84
+ -118, -82, -90, -95, -100, -105, -107, -104, -112, -118,
85
+ -115, -116, -117, -17, -19, -118, -118, -118, -23, -24,
86
+ -26, -28, -30, -34, -118, -118, -118, -39, -41, -42,
87
+ -43, -45, -46, -50, -101, -85, -118, -57, -118, -67,
88
+ -118, -79, -81, -113, -20, -21, -22, -118, -118, -38,
89
+ -40, -87, -66, -69, -36, -37 ]
90
90
 
91
91
  racc_goto_table = [
92
- 67, 49, 108, 90, 124, 93, 97, 68, 58, 132,
93
- 1, 3, 134, 46, 79, 83, 2, 96, 48, 103,
94
- 106, 107, 153, 154, 111, 113, 54, 62, 65, 73,
95
- 118, 80, 85, 57, 88, 92, 137, nil, nil, nil,
96
- nil, 125, nil, nil, nil, 122, nil, 131, nil, nil,
97
- nil, nil, nil, 135, nil, 141, 127, nil, 165, 150,
92
+ 67, 49, 109, 91, 125, 94, 98, 58, 68, 135,
93
+ 1, 3, 137, 46, 80, 84, 2, 97, 48, 104,
94
+ 107, 108, 156, 157, 112, 114, 54, 62, 65, 74,
95
+ 119, 81, 86, 57, 89, 93, 140, nil, nil, nil,
96
+ nil, 126, nil, nil, nil, nil, 123, nil, 134, nil,
97
+ nil, nil, nil, nil, 138, 128, 144, nil, nil, 168,
98
+ 153, nil, nil, nil, nil, nil, nil, nil, nil, nil,
98
99
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
100
+ nil, nil, nil, nil, nil, nil, nil, nil, 150, nil,
101
+ nil, nil, nil, nil, 154, nil, 126, 91, nil, 91,
102
+ 173, nil, nil, nil, nil, nil, nil, nil, nil, nil,
99
103
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
100
- nil, nil, nil, nil, nil, nil, nil, 147, nil, nil,
101
- nil, nil, nil, 151, 90, 125, 90, 169, nil, nil,
102
104
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
103
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
104
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
105
- nil, nil, nil, nil, nil, nil, 174, nil, nil, 179 ]
105
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 178,
106
+ nil, nil, 183 ]
106
107
 
107
108
  racc_goto_check = [
108
- 33, 17, 21, 48, 35, 44, 15, 34, 28, 46,
109
+ 33, 17, 21, 48, 35, 44, 15, 28, 34, 46,
109
110
  1, 3, 46, 3, 41, 41, 2, 14, 16, 18,
110
111
  19, 20, 22, 23, 24, 25, 26, 30, 31, 36,
111
112
  37, 40, 43, 45, 47, 49, 50, nil, nil, nil,
112
- nil, 33, nil, nil, nil, 34, nil, 44, nil, nil,
113
- nil, nil, nil, 44, nil, 15, 28, nil, 35, 21,
114
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
113
+ nil, 33, nil, nil, nil, nil, 34, nil, 44, nil,
114
+ nil, nil, nil, nil, 44, 28, 15, nil, nil, 35,
115
+ 21, nil, nil, nil, nil, nil, nil, nil, nil, nil,
115
116
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
116
- nil, nil, nil, nil, nil, nil, nil, 17, nil, nil,
117
- nil, nil, nil, 17, 48, 33, 48, 44, nil, nil,
117
+ nil, nil, nil, nil, nil, nil, nil, nil, 17, nil,
118
+ nil, nil, nil, nil, 17, nil, 33, 48, nil, 48,
119
+ 44, nil, nil, nil, nil, nil, nil, nil, nil, nil,
118
120
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
119
121
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
120
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
121
- nil, nil, nil, nil, nil, nil, 17, nil, nil, 33 ]
122
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 17,
123
+ nil, nil, 33 ]
122
124
 
123
125
  racc_goto_pointer = [
124
126
  nil, 10, 16, 11, nil, nil, nil, nil, nil, nil,
125
127
  nil, nil, nil, nil, -30, -41, 1, -16, -29, -30,
126
- -29, -48, -88, -87, -27, -27, 5, nil, -14, nil,
127
- 1, 2, nil, -28, -22, -65, -1, -29, nil, nil,
128
- -5, -21, nil, -5, -39, 12, -79, -7, -38, -9,
129
- -58 ]
128
+ -29, -48, -89, -88, -27, -27, 5, nil, -15, nil,
129
+ 1, 2, nil, -28, -21, -65, -1, -29, nil, nil,
130
+ -5, -21, nil, -5, -39, 12, -80, -7, -38, -9,
131
+ -59 ]
130
132
 
131
133
  racc_goto_default = [
132
134
  nil, nil, nil, nil, 4, 5, 6, 7, 8, 9,
@@ -138,125 +140,127 @@ racc_goto_default = [
138
140
 
139
141
  racc_reduce_table = [
140
142
  0, 0, :racc_error,
141
- 0, 44, :_reduce_none,
142
- 1, 44, :_reduce_none,
143
+ 0, 45, :_reduce_none,
143
144
  1, 45, :_reduce_none,
144
- 2, 45, :_reduce_none,
145
- 1, 46, :_reduce_none,
146
- 1, 46, :_reduce_none,
147
- 1, 46, :_reduce_none,
148
- 1, 46, :_reduce_none,
149
- 1, 46, :_reduce_none,
150
- 1, 46, :_reduce_none,
151
145
  1, 46, :_reduce_none,
152
- 1, 46, :_reduce_none,
153
- 1, 46, :_reduce_13,
154
- 1, 46, :_reduce_none,
155
- 1, 46, :_reduce_none,
156
- 1, 46, :_reduce_16,
157
- 4, 55, :_reduce_none,
158
- 1, 57, :_reduce_none,
159
- 2, 57, :_reduce_none,
160
- 3, 58, :_reduce_20,
161
- 3, 58, :_reduce_21,
162
- 3, 58, :_reduce_22,
146
+ 2, 46, :_reduce_none,
147
+ 1, 47, :_reduce_none,
148
+ 1, 47, :_reduce_none,
149
+ 1, 47, :_reduce_none,
150
+ 1, 47, :_reduce_none,
151
+ 1, 47, :_reduce_none,
152
+ 1, 47, :_reduce_none,
153
+ 1, 47, :_reduce_none,
154
+ 1, 47, :_reduce_none,
155
+ 1, 47, :_reduce_13,
156
+ 1, 47, :_reduce_none,
157
+ 1, 47, :_reduce_none,
158
+ 1, 47, :_reduce_16,
159
+ 4, 56, :_reduce_none,
160
+ 1, 58, :_reduce_none,
163
161
  2, 58, :_reduce_none,
164
- 4, 56, :_reduce_24,
165
- 1, 59, :_reduce_25,
166
- 3, 59, :_reduce_26,
167
- 1, 61, :_reduce_none,
168
- 2, 61, :_reduce_28,
169
- 1, 61, :_reduce_none,
170
- 2, 61, :_reduce_30,
171
- 2, 60, :_reduce_31,
172
- 0, 62, :_reduce_32,
173
- 1, 62, :_reduce_33,
174
- 2, 62, :_reduce_34,
175
- 1, 62, :_reduce_35,
176
- 4, 64, :_reduce_36,
177
- 4, 64, :_reduce_37,
178
- 3, 63, :_reduce_38,
179
- 1, 65, :_reduce_39,
180
- 2, 65, :_reduce_40,
181
- 1, 66, :_reduce_none,
182
- 1, 66, :_reduce_none,
183
- 4, 50, :_reduce_43,
184
- 1, 67, :_reduce_44,
185
- 2, 67, :_reduce_45,
186
- 4, 51, :_reduce_46,
187
- 1, 68, :_reduce_47,
188
- 1, 68, :_reduce_48,
189
- 2, 47, :_reduce_49,
190
- 4, 47, :_reduce_50,
191
- 1, 69, :_reduce_none,
192
- 2, 69, :_reduce_52,
193
- 1, 70, :_reduce_53,
194
- 1, 70, :_reduce_54,
195
- 2, 48, :_reduce_55,
196
- 2, 49, :_reduce_56,
197
- 4, 49, :_reduce_57,
198
- 1, 73, :_reduce_none,
199
- 1, 73, :_reduce_none,
200
- 1, 72, :_reduce_60,
201
- 3, 72, :_reduce_61,
162
+ 3, 59, :_reduce_20,
163
+ 3, 59, :_reduce_21,
164
+ 3, 59, :_reduce_22,
165
+ 2, 59, :_reduce_none,
166
+ 4, 57, :_reduce_24,
167
+ 1, 60, :_reduce_25,
168
+ 3, 60, :_reduce_26,
169
+ 1, 62, :_reduce_none,
170
+ 2, 62, :_reduce_28,
171
+ 1, 62, :_reduce_none,
172
+ 2, 62, :_reduce_30,
173
+ 2, 61, :_reduce_31,
174
+ 0, 63, :_reduce_32,
175
+ 1, 63, :_reduce_33,
176
+ 2, 63, :_reduce_34,
177
+ 1, 63, :_reduce_35,
178
+ 4, 65, :_reduce_36,
179
+ 4, 65, :_reduce_37,
180
+ 3, 64, :_reduce_38,
181
+ 1, 66, :_reduce_39,
182
+ 2, 66, :_reduce_40,
183
+ 1, 67, :_reduce_none,
184
+ 1, 67, :_reduce_none,
185
+ 4, 51, :_reduce_43,
186
+ 1, 68, :_reduce_44,
187
+ 2, 68, :_reduce_45,
188
+ 4, 52, :_reduce_46,
189
+ 1, 69, :_reduce_47,
190
+ 1, 69, :_reduce_48,
191
+ 2, 48, :_reduce_49,
192
+ 4, 48, :_reduce_50,
193
+ 1, 70, :_reduce_none,
194
+ 2, 70, :_reduce_52,
195
+ 1, 71, :_reduce_53,
196
+ 1, 71, :_reduce_54,
197
+ 2, 49, :_reduce_55,
198
+ 2, 50, :_reduce_56,
199
+ 4, 50, :_reduce_57,
202
200
  1, 74, :_reduce_none,
203
201
  1, 74, :_reduce_none,
204
- 3, 52, :_reduce_64,
205
- 2, 52, :_reduce_65,
206
- 5, 52, :_reduce_66,
207
- 4, 52, :_reduce_67,
208
- 1, 78, :_reduce_68,
209
- 3, 78, :_reduce_69,
210
- 1, 75, :_reduce_70,
211
- 2, 75, :_reduce_71,
202
+ 1, 73, :_reduce_60,
203
+ 3, 73, :_reduce_61,
212
204
  1, 75, :_reduce_none,
213
- 1, 79, :_reduce_73,
214
- 1, 79, :_reduce_74,
215
- 1, 79, :_reduce_75,
216
- 1, 79, :_reduce_76,
217
- 2, 79, :_reduce_77,
218
- 2, 77, :_reduce_78,
219
- 3, 77, :_reduce_79,
220
- 2, 77, :_reduce_80,
221
- 1, 77, :_reduce_81,
222
- 2, 71, :_reduce_82,
223
- 3, 71, :_reduce_83,
224
- 1, 80, :_reduce_84,
225
- 3, 80, :_reduce_85,
226
- 1, 76, :_reduce_none,
205
+ 1, 75, :_reduce_none,
206
+ 3, 53, :_reduce_64,
207
+ 2, 53, :_reduce_65,
208
+ 5, 53, :_reduce_66,
209
+ 4, 53, :_reduce_67,
210
+ 1, 79, :_reduce_68,
211
+ 3, 79, :_reduce_69,
212
+ 1, 76, :_reduce_70,
213
+ 2, 76, :_reduce_71,
227
214
  1, 76, :_reduce_none,
228
- 3, 82, :_reduce_88,
229
- 1, 83, :_reduce_none,
230
- 1, 83, :_reduce_none,
215
+ 1, 80, :_reduce_73,
216
+ 1, 80, :_reduce_74,
217
+ 1, 80, :_reduce_75,
218
+ 1, 80, :_reduce_76,
219
+ 2, 80, :_reduce_77,
220
+ 2, 78, :_reduce_78,
221
+ 3, 78, :_reduce_79,
222
+ 2, 78, :_reduce_80,
223
+ 3, 78, :_reduce_81,
224
+ 2, 78, :_reduce_82,
225
+ 1, 78, :_reduce_83,
226
+ 2, 72, :_reduce_84,
227
+ 3, 72, :_reduce_85,
228
+ 1, 81, :_reduce_86,
229
+ 3, 81, :_reduce_87,
230
+ 1, 77, :_reduce_none,
231
+ 1, 77, :_reduce_none,
232
+ 3, 83, :_reduce_90,
231
233
  1, 84, :_reduce_none,
232
234
  1, 84, :_reduce_none,
233
- 3, 81, :_reduce_93,
234
- 2, 81, :_reduce_94,
235
- 2, 54, :_reduce_none,
236
235
  1, 85, :_reduce_none,
237
- 2, 85, :_reduce_none,
238
- 3, 86, :_reduce_none,
239
- 4, 53, :_reduce_99,
240
- 2, 53, :_reduce_100,
241
- 1, 88, :_reduce_101,
242
- 3, 88, :_reduce_102,
243
- 3, 88, :_reduce_103,
244
- 1, 90, :_reduce_none,
245
- 2, 90, :_reduce_none,
246
- 1, 89, :_reduce_106,
247
- 2, 89, :_reduce_107,
248
- 2, 91, :_reduce_108,
249
- 1, 92, :_reduce_109,
236
+ 1, 85, :_reduce_none,
237
+ 3, 82, :_reduce_95,
238
+ 2, 82, :_reduce_96,
239
+ 2, 55, :_reduce_none,
240
+ 1, 86, :_reduce_none,
241
+ 2, 86, :_reduce_none,
242
+ 3, 87, :_reduce_none,
243
+ 4, 54, :_reduce_101,
244
+ 2, 54, :_reduce_102,
245
+ 1, 89, :_reduce_103,
246
+ 3, 89, :_reduce_104,
247
+ 3, 89, :_reduce_105,
248
+ 1, 91, :_reduce_none,
249
+ 2, 91, :_reduce_none,
250
+ 1, 90, :_reduce_108,
251
+ 2, 90, :_reduce_109,
250
252
  2, 92, :_reduce_110,
251
- 3, 92, :_reduce_111,
252
- 1, 87, :_reduce_112,
253
- 2, 87, :_reduce_113,
254
- 1, 93, :_reduce_114,
255
- 1, 93, :_reduce_115 ]
253
+ 1, 93, :_reduce_111,
254
+ 2, 93, :_reduce_112,
255
+ 3, 93, :_reduce_113,
256
+ 1, 88, :_reduce_114,
257
+ 2, 88, :_reduce_115,
258
+ 1, 94, :_reduce_116,
259
+ 1, 94, :_reduce_117 ]
256
260
 
257
- racc_reduce_n = 116
261
+ racc_reduce_n = 118
258
262
 
259
- racc_shift_n = 182
263
+ racc_shift_n = 186
260
264
 
261
265
  racc_token_table = {
262
266
  false => 0,
@@ -293,17 +297,18 @@ racc_token_table = {
293
297
  :TIME => 31,
294
298
  :WDAY => 32,
295
299
  :STATUS => 33,
296
- "@" => 34,
297
- :TIMEZONE => 35,
298
- :VS => 36,
299
- :SCORE => 37,
300
- :SCORE_MORE => 38,
301
- :PLAYER => 39,
302
- ";" => 40,
303
- :OG => 41,
304
- :PEN => 42 }
305
-
306
- racc_nt_base = 43
300
+ :NOTE => 34,
301
+ "@" => 35,
302
+ :TIMEZONE => 36,
303
+ :VS => 37,
304
+ :SCORE => 38,
305
+ :SCORE_MORE => 39,
306
+ :PLAYER => 40,
307
+ ";" => 41,
308
+ :OG => 42,
309
+ :PEN => 43 }
310
+
311
+ racc_nt_base = 44
307
312
 
308
313
  racc_use_result_var = true
309
314
 
@@ -359,6 +364,7 @@ Racc_token_to_s_table = [
359
364
  "TIME",
360
365
  "WDAY",
361
366
  "STATUS",
367
+ "NOTE",
362
368
  "\"@\"",
363
369
  "TIMEZONE",
364
370
  "VS",
@@ -889,7 +895,7 @@ module_eval(<<'.,.,', 'parser.y', 289)
889
895
  end
890
896
  .,.,
891
897
 
892
- module_eval(<<'.,.,', 'parser.y', 295)
898
+ module_eval(<<'.,.,', 'parser.y', 303)
893
899
  def _reduce_78(val, _values, result)
894
900
  ## todo - add possible status_notes too!!!
895
901
  result = { status: val[0][1][:status] }
@@ -898,7 +904,7 @@ module_eval(<<'.,.,', 'parser.y', 295)
898
904
  end
899
905
  .,.,
900
906
 
901
- module_eval(<<'.,.,', 'parser.y', 300)
907
+ module_eval(<<'.,.,', 'parser.y', 308)
902
908
  def _reduce_79(val, _values, result)
903
909
  result = { status: val[0][1][:status] }.merge( val[1] )
904
910
 
@@ -906,54 +912,68 @@ module_eval(<<'.,.,', 'parser.y', 300)
906
912
  end
907
913
  .,.,
908
914
 
909
- module_eval(<<'.,.,', 'parser.y', 302)
915
+ module_eval(<<'.,.,', 'parser.y', 310)
910
916
  def _reduce_80(val, _values, result)
911
917
  result = {}.merge( val[0] )
912
918
  result
913
919
  end
914
920
  .,.,
915
921
 
916
- module_eval(<<'.,.,', 'parser.y', 303)
922
+ module_eval(<<'.,.,', 'parser.y', 311)
917
923
  def _reduce_81(val, _values, result)
918
- result = {}
924
+ result = {}.merge( val[0] )
919
925
  result
920
926
  end
921
927
  .,.,
922
928
 
923
- module_eval(<<'.,.,', 'parser.y', 309)
929
+ module_eval(<<'.,.,', 'parser.y', 312)
924
930
  def _reduce_82(val, _values, result)
925
- result = { geo: val[1] }
931
+ result = {}
926
932
  result
927
933
  end
928
934
  .,.,
929
935
 
930
- module_eval(<<'.,.,', 'parser.y', 310)
936
+ module_eval(<<'.,.,', 'parser.y', 313)
931
937
  def _reduce_83(val, _values, result)
932
- result = { geo: val[1], timezone: val[2] }
938
+ result = {}
933
939
  result
934
940
  end
935
941
  .,.,
936
942
 
937
- module_eval(<<'.,.,', 'parser.y', 313)
943
+ module_eval(<<'.,.,', 'parser.y', 319)
938
944
  def _reduce_84(val, _values, result)
939
- result = val
945
+ result = { geo: val[1] }
940
946
  result
941
947
  end
942
948
  .,.,
943
949
 
944
- module_eval(<<'.,.,', 'parser.y', 314)
950
+ module_eval(<<'.,.,', 'parser.y', 320)
945
951
  def _reduce_85(val, _values, result)
952
+ result = { geo: val[1], timezone: val[2] }
953
+ result
954
+ end
955
+ .,.,
956
+
957
+ module_eval(<<'.,.,', 'parser.y', 323)
958
+ def _reduce_86(val, _values, result)
959
+ result = val
960
+ result
961
+ end
962
+ .,.,
963
+
964
+ module_eval(<<'.,.,', 'parser.y', 324)
965
+ def _reduce_87(val, _values, result)
946
966
  result.push( val[2] )
947
967
  result
948
968
  end
949
969
  .,.,
950
970
 
951
- # reduce 86 omitted
971
+ # reduce 88 omitted
952
972
 
953
- # reduce 87 omitted
973
+ # reduce 89 omitted
954
974
 
955
- module_eval(<<'.,.,', 'parser.y', 322)
956
- def _reduce_88(val, _values, result)
975
+ module_eval(<<'.,.,', 'parser.y', 332)
976
+ def _reduce_90(val, _values, result)
957
977
  trace( "RECUDE match_fixture" )
958
978
  result = { team1: val[0],
959
979
  team2: val[2] }
@@ -962,16 +982,16 @@ module_eval(<<'.,.,', 'parser.y', 322)
962
982
  end
963
983
  .,.,
964
984
 
965
- # reduce 89 omitted
966
-
967
- # reduce 90 omitted
968
-
969
985
  # reduce 91 omitted
970
986
 
971
987
  # reduce 92 omitted
972
988
 
973
- module_eval(<<'.,.,', 'parser.y', 336)
974
- def _reduce_93(val, _values, result)
989
+ # reduce 93 omitted
990
+
991
+ # reduce 94 omitted
992
+
993
+ module_eval(<<'.,.,', 'parser.y', 346)
994
+ def _reduce_95(val, _values, result)
975
995
  trace( "REDUCE => match_result : TEAM score TEAM" )
976
996
  result = { team1: val[0],
977
997
  team2: val[2],
@@ -982,8 +1002,8 @@ module_eval(<<'.,.,', 'parser.y', 336)
982
1002
  end
983
1003
  .,.,
984
1004
 
985
- module_eval(<<'.,.,', 'parser.y', 344)
986
- def _reduce_94(val, _values, result)
1005
+ module_eval(<<'.,.,', 'parser.y', 354)
1006
+ def _reduce_96(val, _values, result)
987
1007
  trace( "REDUCE => match_result : match_fixture score" )
988
1008
  result = { score: val[1][1] }.merge( val[0] )
989
1009
 
@@ -991,16 +1011,16 @@ module_eval(<<'.,.,', 'parser.y', 344)
991
1011
  end
992
1012
  .,.,
993
1013
 
994
- # reduce 95 omitted
995
-
996
- # reduce 96 omitted
997
-
998
1014
  # reduce 97 omitted
999
1015
 
1000
1016
  # reduce 98 omitted
1001
1017
 
1002
- module_eval(<<'.,.,', 'parser.y', 376)
1003
- def _reduce_99(val, _values, result)
1018
+ # reduce 99 omitted
1019
+
1020
+ # reduce 100 omitted
1021
+
1022
+ module_eval(<<'.,.,', 'parser.y', 386)
1023
+ def _reduce_101(val, _values, result)
1004
1024
  kwargs = val[1]
1005
1025
  @tree << GoalLine.new( **kwargs )
1006
1026
 
@@ -1008,8 +1028,8 @@ module_eval(<<'.,.,', 'parser.y', 376)
1008
1028
  end
1009
1029
  .,.,
1010
1030
 
1011
- module_eval(<<'.,.,', 'parser.y', 381)
1012
- def _reduce_100(val, _values, result)
1031
+ module_eval(<<'.,.,', 'parser.y', 391)
1032
+ def _reduce_102(val, _values, result)
1013
1033
  kwargs = val[0]
1014
1034
  @tree << GoalLine.new( **kwargs )
1015
1035
 
@@ -1017,8 +1037,8 @@ module_eval(<<'.,.,', 'parser.y', 381)
1017
1037
  end
1018
1038
  .,.,
1019
1039
 
1020
- module_eval(<<'.,.,', 'parser.y', 386)
1021
- def _reduce_101(val, _values, result)
1040
+ module_eval(<<'.,.,', 'parser.y', 396)
1041
+ def _reduce_103(val, _values, result)
1022
1042
  result = { goals1: val[0],
1023
1043
  goals2: [] }
1024
1044
 
@@ -1026,8 +1046,8 @@ module_eval(<<'.,.,', 'parser.y', 386)
1026
1046
  end
1027
1047
  .,.,
1028
1048
 
1029
- module_eval(<<'.,.,', 'parser.y', 389)
1030
- def _reduce_102(val, _values, result)
1049
+ module_eval(<<'.,.,', 'parser.y', 399)
1050
+ def _reduce_104(val, _values, result)
1031
1051
  result = { goals1: [],
1032
1052
  goals2: val[2] }
1033
1053
 
@@ -1035,8 +1055,8 @@ module_eval(<<'.,.,', 'parser.y', 389)
1035
1055
  end
1036
1056
  .,.,
1037
1057
 
1038
- module_eval(<<'.,.,', 'parser.y', 392)
1039
- def _reduce_103(val, _values, result)
1058
+ module_eval(<<'.,.,', 'parser.y', 402)
1059
+ def _reduce_105(val, _values, result)
1040
1060
  result = { goals1: val[0],
1041
1061
  goals2: val[2] }
1042
1062
 
@@ -1044,26 +1064,26 @@ module_eval(<<'.,.,', 'parser.y', 392)
1044
1064
  end
1045
1065
  .,.,
1046
1066
 
1047
- # reduce 104 omitted
1067
+ # reduce 106 omitted
1048
1068
 
1049
- # reduce 105 omitted
1069
+ # reduce 107 omitted
1050
1070
 
1051
- module_eval(<<'.,.,', 'parser.y', 406)
1052
- def _reduce_106(val, _values, result)
1071
+ module_eval(<<'.,.,', 'parser.y', 416)
1072
+ def _reduce_108(val, _values, result)
1053
1073
  result = val
1054
1074
  result
1055
1075
  end
1056
1076
  .,.,
1057
1077
 
1058
- module_eval(<<'.,.,', 'parser.y', 407)
1059
- def _reduce_107(val, _values, result)
1078
+ module_eval(<<'.,.,', 'parser.y', 417)
1079
+ def _reduce_109(val, _values, result)
1060
1080
  result.push( val[1])
1061
1081
  result
1062
1082
  end
1063
1083
  .,.,
1064
1084
 
1065
- module_eval(<<'.,.,', 'parser.y', 423)
1066
- def _reduce_108(val, _values, result)
1085
+ module_eval(<<'.,.,', 'parser.y', 433)
1086
+ def _reduce_110(val, _values, result)
1067
1087
  result = Goal.new( player: val[0],
1068
1088
  minutes: val[1] )
1069
1089
 
@@ -1071,29 +1091,29 @@ module_eval(<<'.,.,', 'parser.y', 423)
1071
1091
  end
1072
1092
  .,.,
1073
1093
 
1074
- module_eval(<<'.,.,', 'parser.y', 435)
1075
- def _reduce_109(val, _values, result)
1094
+ module_eval(<<'.,.,', 'parser.y', 445)
1095
+ def _reduce_111(val, _values, result)
1076
1096
  result = val
1077
1097
  result
1078
1098
  end
1079
1099
  .,.,
1080
1100
 
1081
- module_eval(<<'.,.,', 'parser.y', 436)
1082
- def _reduce_110(val, _values, result)
1101
+ module_eval(<<'.,.,', 'parser.y', 446)
1102
+ def _reduce_112(val, _values, result)
1083
1103
  result.push( val[1])
1084
1104
  result
1085
1105
  end
1086
1106
  .,.,
1087
1107
 
1088
- module_eval(<<'.,.,', 'parser.y', 437)
1089
- def _reduce_111(val, _values, result)
1108
+ module_eval(<<'.,.,', 'parser.y', 447)
1109
+ def _reduce_113(val, _values, result)
1090
1110
  result.push( val[2])
1091
1111
  result
1092
1112
  end
1093
1113
  .,.,
1094
1114
 
1095
- module_eval(<<'.,.,', 'parser.y', 443)
1096
- def _reduce_112(val, _values, result)
1115
+ module_eval(<<'.,.,', 'parser.y', 453)
1116
+ def _reduce_114(val, _values, result)
1097
1117
  kwargs = {}.merge( val[0][1] )
1098
1118
  result = Minute.new( **kwargs )
1099
1119
 
@@ -1101,8 +1121,8 @@ module_eval(<<'.,.,', 'parser.y', 443)
1101
1121
  end
1102
1122
  .,.,
1103
1123
 
1104
- module_eval(<<'.,.,', 'parser.y', 448)
1105
- def _reduce_113(val, _values, result)
1124
+ module_eval(<<'.,.,', 'parser.y', 458)
1125
+ def _reduce_115(val, _values, result)
1106
1126
  kwargs = { }.merge( val[0][1] ).merge( val[1] )
1107
1127
  result = Minute.new( **kwargs )
1108
1128
 
@@ -1110,15 +1130,15 @@ module_eval(<<'.,.,', 'parser.y', 448)
1110
1130
  end
1111
1131
  .,.,
1112
1132
 
1113
- module_eval(<<'.,.,', 'parser.y', 452)
1114
- def _reduce_114(val, _values, result)
1133
+ module_eval(<<'.,.,', 'parser.y', 462)
1134
+ def _reduce_116(val, _values, result)
1115
1135
  result = { og: true }
1116
1136
  result
1117
1137
  end
1118
1138
  .,.,
1119
1139
 
1120
- module_eval(<<'.,.,', 'parser.y', 453)
1121
- def _reduce_115(val, _values, result)
1140
+ module_eval(<<'.,.,', 'parser.y', 463)
1141
+ def _reduce_117(val, _values, result)
1122
1142
  result = { pen: true }
1123
1143
  result
1124
1144
  end
@@ -26,14 +26,29 @@ GOAL_OG_RE = %r{
26
26
  }ix
27
27
 
28
28
 
29
+ ## minute variant for N/A not/available
30
+ ## todo/check - find a better syntax - why? why not?
31
+ ##
32
+ ## note "??".to_i(10) returns 0 or
33
+ ## "__".to_i(10) returns 0
34
+ ## quick hack - assume 0 for n/a for now
35
+
36
+ MINUTE_NA_RE = %r{
37
+ (?<minute>
38
+ (?<=[ (]) # positive lookbehind for space or opening
39
+ (?<value> \?{2} | _{2} )
40
+ ' ## must have minute marker!!!!
41
+ )
42
+ }ix
43
+
29
44
  MINUTE_RE = %r{
30
45
  (?<minute>
31
46
  (?<=[ (]) # positive lookbehind for space or opening ( e.g. (61') required
32
47
  # todo - add more lookbehinds e.g. ,) etc. - why? why not?
33
- (?<value>\d{1,3}) ## constrain numbers to 0 to 999!!!
34
- (?: \+
35
- (?<value2>\d{1,3})
36
- )?
48
+ (?<value>\d{1,3}) ## constrain numbers to 0 to 999!!!
49
+ (?: \+
50
+ (?<value2>\d{1,3})
51
+ )?
37
52
  ' ## must have minute marker!!!!
38
53
  )
39
54
  }ix
@@ -12,10 +12,33 @@ STATUS_RE = %r{
12
12
  (?:
13
13
  ### opt 1 - allow long forms with note/comment for some stati
14
14
  (?: (?<status> awarded
15
+ ## e.g. [awarded match to Leones Negros by undue alignment; original result 1-2]
16
+ ## [awarded 3-0 to Cafetaleros by undue alignment; originally ended 2-0]
17
+ ## [awarded 3-0; originally 0-2, América used ineligible player (Federico Viñas)]
15
18
  |
16
19
  annulled
17
20
  |
18
21
  abandoned
22
+ ## e.g. [abandoned at 1-1 in 65' due to cardiac arrest Luton player Tom Lockyer]
23
+ ## [abandoned at 0-0 in 6' due to waterlogged pitch]
24
+ ## [abandoned at 5-0 in 80' due to attack on assistant referee by Cerro; result stood]
25
+ ## [abandoned at 1-0 in 31']
26
+ ## [abandoned at 0-1' in 85 due to crowd trouble]
27
+ |
28
+ postponed
29
+ ## e.g. [postponed due to problems with the screen of the stadium]
30
+ ## [postponed by storm]
31
+ ## [postponed due to tropical storm "Hanna"]
32
+ ## [postponed from Sep 10-12 due to death Queen Elizabeth II]
33
+ |
34
+ suspended
35
+ ## e.g. [suspended at 0-0 in 12' due to storm]
36
+ ## [suspended at 84' by storm; result stood]
37
+ |
38
+ verified
39
+ ## e.g. [verified 2:0 wo.]
40
+
41
+
19
42
  ) [ ;,]* (?<status_note> [^\]]+ )
20
43
  [ ]*
21
44
  )
@@ -34,12 +57,98 @@ STATUS_RE = %r{
34
57
  replay
35
58
  |
36
59
  annulled
60
+ |
61
+ suspended ### todo/fix - add status upstream - why? why not?
62
+ ### move to note(s) - do NOT interpret as status - why? why not?
63
+ |
64
+ verified ### todo/fix - add status upstream (same as ??) - why? why not?
65
+ ### move to note(s) - do NOT interpret as status - why? why not?
37
66
  )
38
67
  )
39
68
  \]
40
69
  }ix
41
70
 
42
71
 
72
+
73
+
74
+ ###
75
+ ## todo/fix - move to token-note.rb (standalone) file
76
+
77
+ NOTE_RE = %r{
78
+ \[
79
+ (?<note>
80
+ (?: ## starting with ___ PLUS requiring more text
81
+ (?:
82
+ nb:
83
+ ## e.g. [NB: between top-8 of regular season]
84
+ # [NB: América, Morelia and Tigres qualified on better record regular season]
85
+ # [NB: Celaya qualified on away goals]
86
+ # [NB: Alebrijes qualified on away goal]
87
+ # [NB: Leones Negros qualified on away goals]
88
+ #
89
+ # todo/fix:
90
+ # add "top-level" NB: version
91
+ ## with full (end-of) line note - why? why not?
92
+ |
93
+ (?: originally[ ])? scheduled
94
+ ## e.g. [originally scheduled to play in Mexico City]
95
+ |
96
+ rescheduled
97
+ ## e.g. [Rescheduled due to earthquake occurred in Mexico on September 19]
98
+ |
99
+ remaining
100
+ ## e.g. [remaining 79']
101
+ ## [remaining 84']
102
+ ## [remaining 59']
103
+ ## [remaining 5']
104
+ |
105
+ played
106
+ ## e.g. [played in Macaé-RJ]
107
+ ## [played in Caxias do Sul-RS]
108
+ ## [played in Sete Lagoas-MG]
109
+ ## [played in Uberlândia-MG]
110
+ ## [played in Brasília-DF]
111
+ ## [played in Vöcklabruck]
112
+ ## [played in Pasching]
113
+ |
114
+ declared
115
+ ## e.g. [declared void]
116
+ |
117
+ inter-group
118
+ ## e.g. [inter-group A-B]
119
+ ## [inter-group C-D]
120
+ )
121
+ [ ]
122
+ [^\]]+? ## slurp all to next ] - (use non-greedy)
123
+ )
124
+ |
125
+ (?:
126
+ ## starting with in - do NOT allow digits
127
+ ## name starting with in possible - why? why not?
128
+ in[ ]
129
+ [^0-9\]]+?
130
+ ## e.g. [In Estadio La Corregidora]
131
+ ## [in Unidad Deportiva Centenario]
132
+ ## [in Estadio Olímpico Universitario]
133
+ ## [in Estadio Victoria]
134
+ ## [in UD José Brindis]
135
+ ## [in Colomos Alfredo "Pistache" Torres stadium]
136
+ )
137
+ |
138
+ (?:
139
+ ## e.g. Spain wins on penalties
140
+ ## 1860 München wins on penalties etc.
141
+ ## must start with digit 1-9 or letter
142
+ ## todo - add more special chars - why? why not?
143
+ [1-9\p{L}][0-9\p{L} .-]+?
144
+ [ ]wins[ ]on[ ]penalties
145
+ [^\]]*? ## use non-greedy
146
+ )
147
+ )
148
+ \]
149
+ }ix
150
+
151
+
43
152
  end # class Lexer
44
153
  end # module SportDb
45
154
 
@@ -127,6 +127,7 @@ BASICS_RE = %r{
127
127
 
128
128
  RE = Regexp.union( PROP_KEY_RE, ## start with prop key (match will/should switch into prop mode!!!)
129
129
  STATUS_RE,
130
+ NOTE_RE,
130
131
  TIMEZONE_RE,
131
132
  TIME_RE,
132
133
  DURATION_RE, # note - duration MUST match before date
@@ -136,6 +137,7 @@ RE = Regexp.union( PROP_KEY_RE, ## start with prop key (match will/should swit
136
137
  SCORE_RE, ## note basic score e.g. 1-1 must go after SCORE_MORE_RE!!!
137
138
  BASICS_RE,
138
139
  MINUTE_RE,
140
+ MINUTE_NA_RE, ## note - add/allow not/available (n/a,na) minutes hack for now
139
141
  GOAL_OG_RE, GOAL_PEN_RE,
140
142
  TEXT_RE )
141
143
 
@@ -4,7 +4,7 @@ module SportDb
4
4
  module Parser
5
5
  MAJOR = 0 ## todo: namespace inside version or something - why? why not??
6
6
  MINOR = 6
7
- PATCH = 1
7
+ PATCH = 2
8
8
  VERSION = [MAJOR,MINOR,PATCH].join('.')
9
9
 
10
10
  def self.version
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportdb-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-01 00:00:00.000000000 Z
11
+ date: 2025-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocos