sportdb-parser 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,6 +22,8 @@ require_relative 'parser/token-date'
22
22
  require_relative 'parser/token-text'
23
23
  require_relative 'parser/token-status'
24
24
  require_relative 'parser/token'
25
+ require_relative 'parser/tokenizer'
26
+
25
27
  require_relative 'parser/lang'
26
28
  require_relative 'parser/parser'
27
29
 
@@ -61,12 +63,14 @@ class Tokenizer
61
63
  lines = txt.split( "\n" )
62
64
  lines.each_with_index do |line,i|
63
65
  next if line.strip.empty? || line.strip.start_with?( '#' )
66
+ ## support for inline (end-of-line) comments
67
+ line = line.sub( /#.*/, '' ).strip
68
+
69
+ puts "line >#{line}<"
70
+ tokens = parser.tokenize( line )
71
+ pp tokens
64
72
 
65
- puts "line >#{line}<"
66
- tokens = parser.tokenize( line )
67
- pp tokens
68
-
69
- tree << tokens
73
+ tree << tokens
70
74
  end
71
75
 
72
76
 
@@ -141,6 +145,53 @@ end # module SportDb
141
145
 
142
146
  class RaccMatchParser
143
147
 
148
+
149
+ LineupLine = Struct.new( :team, :lineup ) do
150
+ def pretty_print( printer )
151
+ printer.text( "<LineupLine " )
152
+ printer.text( self.team )
153
+ printer.text( " lineup=" + self.lineup.pretty_inspect )
154
+ printer.text( ">" )
155
+ end
156
+ end
157
+
158
+ Lineup = Struct.new( :name, :card, :sub ) do
159
+ def pretty_print( printer )
160
+ buf = String.new
161
+ buf << self.name
162
+ buf << " card=" + self.card.pretty_inspect if card
163
+ buf << " sub=" + self.sub.pretty_inspect if sub
164
+ printer.text( buf )
165
+ end
166
+ end
167
+
168
+
169
+ Card = Struct.new( :name, :minute ) do
170
+ def to_s
171
+ buf = String.new
172
+ buf << "#{self.name}"
173
+ buf << " #{self.minute.to_s}" if self.minute
174
+ buf
175
+ end
176
+
177
+ def pretty_print( printer )
178
+ printer.text( to_s )
179
+ end
180
+ end
181
+
182
+
183
+ Sub = Struct.new( :minute, :sub ) do
184
+ def pretty_print( printer )
185
+ buf = String.new
186
+ buf << "(#{self.minute.to_s} "
187
+ buf << self.sub.pretty_inspect
188
+ buf << ")"
189
+ printer.text( buf )
190
+ end
191
+ end
192
+
193
+
194
+
144
195
  GroupDef = Struct.new( :name, :teams ) do
145
196
  def pretty_print( printer )
146
197
  printer.text( "<GroupDef " )
@@ -227,6 +278,10 @@ Goal = Struct.new( :player, :minutes ) do
227
278
 
228
279
  end
229
280
 
281
+
282
+ ##
283
+ ## fix - move :og, :pen to Goal if possible - why? why not?
284
+ ## or change to GoalMinute ???
230
285
  Minute = Struct.new( :m, :offset, :og, :pen ) do
231
286
  def to_s
232
287
  buf = String.new
@@ -272,10 +327,13 @@ def initialize(input)
272
327
 
273
328
 
274
329
  def on_error(*args)
275
- puts "!! on error:"
330
+ puts
331
+ puts "!! on parse error:"
276
332
  puts "args=#{args.pretty_inspect}"
333
+ exit 1 ## exit for now - get and print more info about context etc.!!
277
334
  end
278
335
 
336
+
279
337
  =begin
280
338
  on_error do |error_token_id, error_value, value_stack|
281
339
  puts "Parse error on token: #{error_token_id}, value: #{error_value}"
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.5.0
4
+ version: 0.5.1
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-01-15 00:00:00.000000000 Z
11
+ date: 2025-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocos
@@ -118,6 +118,7 @@ files:
118
118
  - lib/sportdb/parser/token-status.rb
119
119
  - lib/sportdb/parser/token-text.rb
120
120
  - lib/sportdb/parser/token.rb
121
+ - lib/sportdb/parser/tokenizer.rb
121
122
  - lib/sportdb/parser/version.rb
122
123
  homepage: https://github.com/sportdb/sport.db
123
124
  licenses: