miniruby 0.3.0 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 544718f0c638f28cc4290b8a64663ced2419b3694fd502ef0ba5dd9be5c801bb
4
- data.tar.gz: c49d7d2d90abbd1f4260e0a2705c37adc9a7f297cde6339fe853e829ead3741e
3
+ metadata.gz: a2511978dbe9723deb32aa63f4ba862348129c51746c349a6d4a98681dfa06d5
4
+ data.tar.gz: 68957f7813f0f83b84b034e14795c7fc29715e353df4e7f6c92709019c483f57
5
5
  SHA512:
6
- metadata.gz: 65e981b854b4c60813400ab15f06fe726e981ee5de7f2c429636bc63389a1228fbb69925f8e7fc1f9bab19fa7f90c2531b2aff4b8f8764b004c5eefeb3430a5f
7
- data.tar.gz: 80ee3c93c754fd83a16b0f897e9b9bdca76ddcc9a86128d1c96a006ba466e93d9bc99ad002b8a69a57facfe13f57f32755af3f1d810f55faeea4c9a342a08cba
6
+ metadata.gz: e23490a704a5f4ba7454aeda4f3751253a759205dff92e5e0d05ca7183020125e84d383931d12adc6b3ed0edd4aa1d7c58c1697372a0a3ab017a0b3d779efe78
7
+ data.tar.gz: ab2786fe7c58889a396a4f33166144f335de115eff3fa7cd5dfa2907486db15aa7714f52645214e4cc3a0feca612ce18236db2cc9496655f4ac8f846c2dbe547
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.4.0] - 2026-04-16
4
+ - Add new parser capabilities:
5
+ - Add raw strings `'foo\nbar'`
6
+
3
7
  ## [0.3.0] - 2026-04-15
4
8
  - Add new parser capabilities:
5
9
  - Add `&&`, `||`, `??`
@@ -212,6 +212,8 @@ module MiniRuby
212
212
  return token(Token::SLASH)
213
213
  when '"'
214
214
  return scan_string
215
+ when "'"
216
+ return scan_raw_string
215
217
  when "\n"
216
218
  return token(Token::NEWLINE)
217
219
  when ' ', "\r", "\t"
@@ -391,5 +393,18 @@ module MiniRuby
391
393
  end
392
394
  end
393
395
  end
396
+
397
+ #: -> Token
398
+ def scan_raw_string
399
+ value_buffer = String.new
400
+ loop do
401
+ char, ok = advance_char
402
+ return token(Token::ERROR, 'unterminated string literal') unless ok
403
+ return token(Token::STRING, value_buffer) if char == "'"
404
+
405
+ value_buffer << char
406
+ end
407
+ end
408
+
394
409
  end
395
410
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MiniRuby
4
- VERSION = '0.3.0'
4
+ VERSION = '0.4.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miniruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mateusz Drewniak