statsailr 0.7.4 → 0.7.5

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.
@@ -9,49 +9,8 @@ SQ_STR_PATTERN = /'(\\'|[^'\n])*'/
9
9
  DQ_STR_PATTERN = /"(\\"|[^"\n])*"/
10
10
  end
11
11
 
12
- module STSScannerSupport
13
- def interpret_escape_sequences(str)
14
- # This deals with escape sequences in double quoted string literals
15
- # The behavior should be same as libsailr (or datasailr)
16
- new_str = ""
17
- str_array = str.split(//)
18
- idx = 0
19
- while( idx < str_array.size) do
20
- c = str_array[idx]
21
- if(c == "\\")
22
- idx = idx + 1
23
- c = str_array[idx]
24
- raise "Tokenizer error: double quoted string literal should never end with \\" if idx >= str_array.size
25
- case c
26
- when 't'
27
- new_str << "\t"
28
- when 'n'
29
- new_str << "\n"
30
- when 'r'
31
- new_str << "\r"
32
- when "\\"
33
- new_str << "\\"
34
- when "\'"
35
- new_str << "\'"
36
- when "\""
37
- new_str << "\""
38
- when '?'
39
- new_str << '?'
40
- else
41
- new_str << c
42
- end
43
- else
44
- new_str << c
45
- end
46
- idx = idx + 1
47
- end
48
- return new_str
49
- end
50
- end
51
-
52
12
  class STSScanner
53
13
  include ::STSConstants
54
- include ::STSScannerSupport
55
14
 
56
15
  # Initialization & Terminating methods
57
16
 
@@ -151,9 +110,9 @@ class STSScanner
151
110
  when scan(INT_PATTERN)
152
111
  tokens << [:NUMBER, matched.to_i ]
153
112
  when scan(SQ_STR_PATTERN)
154
- tokens << [:STRING, matched[Range.new(1, -2)] ]
113
+ tokens << [:SQ_STRING, matched[Range.new(1, -2)] ]
155
114
  when scan(DQ_STR_PATTERN)
156
- tokens << [:STRING, interpret_escape_sequences(matched[Range.new(1, -2)]) ]
115
+ tokens << [:DQ_STRING, matched[Range.new(1, -2)] ]
157
116
  when scan(/[ \t]/)
158
117
  #ignore
159
118
  else
@@ -221,6 +180,8 @@ class STSScanner
221
180
 
222
181
  def scan_proc_special()
223
182
  case
183
+ when scan(/\=\=/)
184
+ return :P_DEQ
224
185
  when scan(/\=/)
225
186
  return :P_EQ
226
187
  when scan(/\*/)
@@ -229,14 +190,32 @@ class STSScanner
229
190
  return :P_PLUS
230
191
  when scan(/\-/)
231
192
  return :P_MINUS
232
- when scan(/\^/)
233
- return :P_HAT
193
+ when scan(/%%/)
194
+ return :P_INTDEV
195
+ when scan(/%\/%/)
196
+ return :P_MOD
234
197
  when scan(/\%in\%/)
235
198
  return :P_IN
236
- when scan(/\%in\%/)
237
- return :P_PERC
199
+ when scan(/&&/)
200
+ return :P_DAND
201
+ when scan(/\|\|/)
202
+ return :P_DOR
203
+ when scan(/&/)
204
+ return :P_AND
205
+ when scan(/\|/)
206
+ return :P_OR
207
+ when scan(/>/)
208
+ return :P_LT
209
+ when scan(/</)
210
+ return :P_ST
211
+ when scan(/>=/)
212
+ return :P_LTE
213
+ when scan(/<=/)
214
+ return :P_STE
215
+ when scan(/\^/)
216
+ return :P_HAT
238
217
  when scan(/\~/)
239
- return :P_TILDA
218
+ return :P_TILDE
240
219
  when scan(/\:/)
241
220
  return :P_COLON
242
221
  when scan(/\(/)
@@ -265,9 +244,9 @@ class STSScanner
265
244
  when scan(INT_PATTERN)
266
245
  tokens << [:NUMBER, matched.to_i ]
267
246
  when scan(SQ_STR_PATTERN)
268
- tokens << [:STRING, matched[Range.new(1, -2)] ]
247
+ tokens << [:SQ_STRING, matched[Range.new(1, -2)] ]
269
248
  when scan(DQ_STR_PATTERN)
270
- tokens << [:STRING, interpret_escape_sequences(matched[Range.new(1, -2)]) ]
249
+ tokens << [:DQ_STRING, matched[Range.new(1, -2)] ]
271
250
  when type = scan_proc_special()
272
251
  tokens << [ type , matched ]
273
252
  when scan(/[ \t]/) # Separators
@@ -279,7 +258,7 @@ class STSScanner
279
258
  @scanner.unscan
280
259
  break
281
260
  when scan(/\//) # slash to start options
282
- tokens << [:SEP_SLASH, matched]
261
+ tokens << [:P_SLASH, matched]
283
262
  else
284
263
  scan(/.*\n/)
285
264
  raise "Current PROC line cannot be tokenized." + matched
@@ -1,3 +1,3 @@
1
1
  module StatSailr
2
- VERSION = "0.7.4"
2
+ VERSION = "0.7.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: statsailr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toshihiro Umehara
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-25 00:00:00.000000000 Z
11
+ date: 2021-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: r_bridge