oedipus_lex 2.5.3 → 2.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +1 -4
- data/History.rdoc +17 -0
- data/Rakefile +1 -1
- data/lib/oedipus_lex.rb +3 -2
- data/lib/oedipus_lex.rex +1 -1
- data/lib/oedipus_lex.rex.rb +4 -3
- data/test/test_oedipus_lex.rb +19 -4
- data.tar.gz.sig +0 -0
- metadata +14 -14
- metadata.gz.sig +1 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76ef0dafd6dd7e9a77ef872dd57e00126bd625e390dd3e371c21e632be475b05
|
4
|
+
data.tar.gz: 825c243a8b09d1a53cfff2617943a214c814033ef4baf607f8d1e33f2f5c89d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 563998da3d28b997e96ab50dc6bed61a9a710b2aec3437624052253ba62e0f7c5602df1e9fb3dec5bc50ce947e357dfc64c52ba21ef87091e9d43936394d1b95
|
7
|
+
data.tar.gz: e2ba477d3ab9a8bc13652c576495a0a17b222982d0a437d67bd1c7239fbd60b965a2c333c79ccaa80bc00b3d62f6a268b0f6f57429b18697c08d433f2ee4e91a
|
checksums.yaml.gz.sig
CHANGED
@@ -1,4 +1 @@
|
|
1
|
-
O
|
2
|
-
�E8����Ͳ�t��ս
|
3
|
-
�]���7B�)W�v�7|Yr;��!���cY�W�Ԕ�P��Ͱ0��wn�$.�]�R�N��q��
|
4
|
-
=�vi1�)f�y��S���}�R�;��bqr����;|Y�p9�觭v4��S���1rj���`�(�zdp2!��τ7/4�
|
1
|
+
c�p�W#-*��?��p2��Cy��̅+/{O�t�`�3�_�cg��U�����5�;�рj\�E�כ��߯Ȉ�}��yE�`�K�7���9���b������2<$��4�<gӚ�8������T��i�����z�c������4'��m����:���d�iK�lK��Sl�/�=1_��Z���AUQ�KRWg�*��b��F��n;�|���8 ���Cr.a�j��+m9�4��D�O��*0
|
data/History.rdoc
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
=== 2.6.1 / 2023-05-31
|
2
|
+
|
3
|
+
* 1 bug fix:
|
4
|
+
|
5
|
+
* Bumped minimum supported version of ruby to 2.7
|
6
|
+
|
7
|
+
=== 2.6.0 / 2021-10-27
|
8
|
+
|
9
|
+
* 2 minor enhancements:
|
10
|
+
|
11
|
+
* Add frozen_string_literal comment to generated lexers.
|
12
|
+
* Allow empty regex. (marcandre)
|
13
|
+
|
14
|
+
* 1 bug fix:
|
15
|
+
|
16
|
+
* Switched from peek(1) == "\n" to check(/\n/) to save a ton of strings.
|
17
|
+
|
1
18
|
=== 2.5.3 / 2021-05-29
|
2
19
|
|
3
20
|
* 1 bug fix:
|
data/Rakefile
CHANGED
data/lib/oedipus_lex.rb
CHANGED
@@ -30,7 +30,7 @@ require "oedipus_lex.rex"
|
|
30
30
|
# books.
|
31
31
|
|
32
32
|
class OedipusLex
|
33
|
-
VERSION = "2.
|
33
|
+
VERSION = "2.6.1" # :nodoc:
|
34
34
|
|
35
35
|
##
|
36
36
|
# The class name to generate.
|
@@ -394,6 +394,7 @@ class OedipusLex
|
|
394
394
|
# :stopdoc:
|
395
395
|
|
396
396
|
TEMPLATE = <<-'REX'.gsub(/^ {6}/, '')
|
397
|
+
# frozen_string_literal: true
|
397
398
|
<%= encoding %>
|
398
399
|
#--
|
399
400
|
# This file is automatically generated. Do not modify it.
|
@@ -564,7 +565,7 @@ class OedipusLex
|
|
564
565
|
|
565
566
|
until ss.eos? or token do
|
566
567
|
% if option[:lineno] then
|
567
|
-
if ss.
|
568
|
+
if ss.check(/\n/) then
|
568
569
|
self.lineno += 1
|
569
570
|
% if option[:column] then
|
570
571
|
# line starts 1 position after the newline
|
data/lib/oedipus_lex.rex
CHANGED
data/lib/oedipus_lex.rex.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# encoding: UTF-8
|
2
3
|
#--
|
3
4
|
# This file is automatically generated. Do not modify it.
|
4
|
-
# Generated by: oedipus_lex version 2.
|
5
|
+
# Generated by: oedipus_lex version 2.6.0.
|
5
6
|
# Source: lib/oedipus_lex.rex
|
6
7
|
#++
|
7
8
|
|
@@ -14,7 +15,7 @@ class OedipusLex
|
|
14
15
|
|
15
16
|
# :stopdoc:
|
16
17
|
ST = /(?:(:\S+|\w+\??))/
|
17
|
-
RE = /(\/(?:\\.|[^\/])
|
18
|
+
RE = /(\/(?:\\.|[^\/])*\/[ion]?)/
|
18
19
|
ACT = /(\{.*|:?\w+)/
|
19
20
|
# :startdoc:
|
20
21
|
# :stopdoc:
|
@@ -137,7 +138,7 @@ class OedipusLex
|
|
137
138
|
token = nil
|
138
139
|
|
139
140
|
until ss.eos? or token do
|
140
|
-
if ss.
|
141
|
+
if ss.check(/\n/) then
|
141
142
|
self.lineno += 1
|
142
143
|
# line starts 1 position after the newline
|
143
144
|
self.start_of_current_line_pos = ss.pos + 1
|
data/test/test_oedipus_lex.rb
CHANGED
@@ -635,7 +635,8 @@ class TestOedipusLex < Minitest::Test
|
|
635
635
|
|
636
636
|
ruby = generate_lexer src
|
637
637
|
|
638
|
-
exp = ["#
|
638
|
+
exp = ["# frozen_string_literal: true",
|
639
|
+
"# encoding: UTF-8",
|
639
640
|
"#--",
|
640
641
|
"# This file is automatically generated. Do not modify it.",
|
641
642
|
"# Generated by: oedipus_lex version #{OedipusLex::VERSION}.",
|
@@ -644,7 +645,7 @@ class TestOedipusLex < Minitest::Test
|
|
644
645
|
"module X",
|
645
646
|
"module Y"]
|
646
647
|
|
647
|
-
assert_equal exp, ruby.lines.map(&:chomp).first(
|
648
|
+
assert_equal exp, ruby.lines.map(&:chomp).first(9)
|
648
649
|
end
|
649
650
|
|
650
651
|
def test_header_encoding_is_on_top
|
@@ -665,7 +666,8 @@ class TestOedipusLex < Minitest::Test
|
|
665
666
|
|
666
667
|
ruby = generate_lexer src
|
667
668
|
|
668
|
-
exp = ["#
|
669
|
+
exp = ["# frozen_string_literal: true",
|
670
|
+
"# encoding: UTF-8",
|
669
671
|
"#--",
|
670
672
|
"# This file is automatically generated. Do not modify it.",
|
671
673
|
"# Generated by: oedipus_lex version #{OedipusLex::VERSION}.",
|
@@ -674,7 +676,7 @@ class TestOedipusLex < Minitest::Test
|
|
674
676
|
"",
|
675
677
|
"module X"]
|
676
678
|
|
677
|
-
assert_equal exp, ruby.lines.map(&:chomp).first(
|
679
|
+
assert_equal exp, ruby.lines.map(&:chomp).first(9)
|
678
680
|
end
|
679
681
|
|
680
682
|
def test_read_non_existent_file
|
@@ -765,6 +767,19 @@ class TestOedipusLex < Minitest::Test
|
|
765
767
|
assert_match 'ss.scan(/#{X}/)', source
|
766
768
|
end
|
767
769
|
|
770
|
+
def test_parses_empty_regexp
|
771
|
+
source = generate_lexer %q{
|
772
|
+
class Foo
|
773
|
+
rule
|
774
|
+
/\w+/ { @state = :ARG; emit :tFUNCTION_CALL }
|
775
|
+
:ARG /\(/ { @state = nil; emit :tARG_LIST_BEGIN }
|
776
|
+
:ARG // { @state = nil }
|
777
|
+
end
|
778
|
+
}
|
779
|
+
|
780
|
+
assert_match 'ss.skip(//)', source
|
781
|
+
end
|
782
|
+
|
768
783
|
def test_changing_state_during_lexing
|
769
784
|
src = <<-'REX'
|
770
785
|
class Calculator
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oedipus_lex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -10,9 +10,9 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBBzANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
15
|
+
GRYDY29tMB4XDTIzMDEwMTA3NTExN1oXDTI0MDEwMTA3NTExN1owRTETMBEGA1UE
|
16
16
|
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
17
17
|
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
18
18
|
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
@@ -22,14 +22,14 @@ cert_chain:
|
|
22
22
|
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
23
23
|
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
24
24
|
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
AQAkg3y+PBnBAPWdxxITm5sPHqdWQgSyCpRA20o4LTuWr8BWhSXBkfQNa7cY6fOn
|
26
|
+
xyM34VPzBFbExv6XOGDfOMFBVaYTHuN9peC/5/umL7kLl+nflXzL2QA7K6LYj5Bg
|
27
|
+
sM574Onr0dZDM6Vn69bzQ7rBIFDfK/OhlPzqKZad4nsdcsVH8ODCiT+ATMIZyz5K
|
28
|
+
WCnNtqlyiWXI8tdTpahDgcUwfcN/oN7v4K8iU5IbLJX6HQ5DKgmKjfb6XyMth16k
|
29
|
+
ROfWo9Uyp8ba/j9eVG14KkYRaLydAY1MNQk2yd3R5CGfeOpD1kttxjoypoUJ2dOG
|
30
|
+
nsNBRuQJ1UfiCG97a6DNm+Fr
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
32
|
+
date: 2023-05-31 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: rdoc
|
@@ -57,14 +57,14 @@ dependencies:
|
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
60
|
+
version: '4.0'
|
61
61
|
type: :development
|
62
62
|
prerelease: false
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '4.0'
|
68
68
|
description: |-
|
69
69
|
Oedipus Lex is a lexer generator in the same family as Rexical and
|
70
70
|
Rex. Oedipus Lex is my independent lexer fork of Rexical. Rexical was
|
@@ -140,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
140
140
|
requirements:
|
141
141
|
- - ">="
|
142
142
|
- !ruby/object:Gem::Version
|
143
|
-
version: '2.
|
143
|
+
version: '2.7'
|
144
144
|
- - "<"
|
145
145
|
- !ruby/object:Gem::Version
|
146
146
|
version: '4.0'
|
@@ -150,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
150
|
- !ruby/object:Gem::Version
|
151
151
|
version: '0'
|
152
152
|
requirements: []
|
153
|
-
rubygems_version: 3.
|
153
|
+
rubygems_version: 3.4.10
|
154
154
|
signing_key:
|
155
155
|
specification_version: 4
|
156
156
|
summary: Oedipus Lex is a lexer generator in the same family as Rexical and Rex
|
metadata.gz.sig
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
|
2
|
-
#��Ir!A��xW�����ȇL[n`�|���j�D�g�-�}���'[H�У@_\H��
|
1
|
+
`�Ƿ�Ybr�H�`�z-k��F(�J����g���xU}�T8�U3O�����v����9<�ֈ=��_hQd����־�=�2h!yY^�,�ĕ'T�|Q�3�c!^T�V��H_���w�1��aÃ�R��AI|�>�XYd�y�N b�q��G`�l���g�͞�������`�ė/8q��I�8S���3��[��@�q��9�9��Y�:ڋt�v����lx*98��os������!_�N�}�[�QRB�
|