Skip to content

Commit 4609fcd

Browse files
committed
Force unicode encoding of regexp constants.
1 parent d1e6431 commit 4609fcd

1 file changed

Lines changed: 31 additions & 31 deletions

File tree

lib/rdf/turtle/terminals.rb

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
# encoding: utf-8
12
require 'ebnf/ll1/lexer'
23

34
module RDF::Turtle
45
module Terminals
56
# Definitions of token regular expressions used for lexical analysis
6-
77
##
88
# Unicode regular expressions for Ruby 1.9+ with the Oniguruma engine.
99
U_CHARS1 = Regexp.compile(<<-EOS.gsub(/\s+/, ''))
@@ -12,66 +12,66 @@ module Terminals
1212
[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|
1313
[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD]|[\\u{10000}-\\u{EFFFF}]
1414
EOS
15-
U_CHARS2 = Regexp.compile("\\u00B7|[\\u0300-\\u036F]|[\\u203F-\\u2040]").freeze
16-
IRI_RANGE = Regexp.compile("[[^<>\"{}|^`\\\\]&&[^\\x00-\\x20]]").freeze
15+
U_CHARS2 = Regexp.compile("\\u00B7|[\\u0300-\\u036F]|[\\u203F-\\u2040]", Regexp::FIXEDENCODING).freeze
16+
IRI_RANGE = Regexp.compile("[[^<>\"{}|^`\\\\]&&[^\\x00-\\x20]]", Regexp::FIXEDENCODING).freeze
1717

1818
# 26
1919
UCHAR = EBNF::LL1::Lexer::UCHAR
2020
# 170s
21-
PERCENT = /%[0-9A-Fa-f]{2}/.freeze
21+
PERCENT = /%[0-9A-Fa-f]{2}/u.freeze
2222
# 172s
23-
PN_LOCAL_ESC = /\\[_~\.\-\!$\&'\(\)\*\+,;=\/\?\#@%]/.freeze
23+
PN_LOCAL_ESC = /\\[_~\.\-\!$\&'\(\)\*\+,;=\/\?\#@%]/u.freeze
2424
# 169s
25-
PLX = /#{PERCENT}|#{PN_LOCAL_ESC}/.freeze.freeze
25+
PLX = /#{PERCENT}|#{PN_LOCAL_ESC}/u.freeze
2626
# 163s
27-
PN_CHARS_BASE = /[A-Z]|[a-z]|#{U_CHARS1}/.freeze
27+
PN_CHARS_BASE = /[A-Z]|[a-z]|#{U_CHARS1}/u.freeze
2828
# 164s
29-
PN_CHARS_U = /_|#{PN_CHARS_BASE}/.freeze
29+
PN_CHARS_U = /_|#{PN_CHARS_BASE}/u.freeze
3030
# 166s
31-
PN_CHARS = /-|[0-9]|#{PN_CHARS_U}|#{U_CHARS2}/.freeze
32-
PN_LOCAL_BODY = /(?:(?:\.|:|#{PN_CHARS}|#{PLX})*(?:#{PN_CHARS}|:|#{PLX}))?/.freeze
33-
PN_CHARS_BODY = /(?:(?:\.|#{PN_CHARS})*#{PN_CHARS})?/.freeze
31+
PN_CHARS = /-|[0-9]|#{PN_CHARS_U}|#{U_CHARS2}/u.freeze
32+
PN_LOCAL_BODY = /(?:(?:\.|:|#{PN_CHARS}|#{PLX})*(?:#{PN_CHARS}|:|#{PLX}))?/u.freeze
33+
PN_CHARS_BODY = /(?:(?:\.|#{PN_CHARS})*#{PN_CHARS})?/u.freeze
3434
# 167s
35-
PN_PREFIX = /#{PN_CHARS_BASE}#{PN_CHARS_BODY}/.freeze
35+
PN_PREFIX = /#{PN_CHARS_BASE}#{PN_CHARS_BODY}/u.freeze
3636
# 168s
37-
PN_LOCAL = /(?:[0-9]|:|#{PN_CHARS_U}|#{PLX})#{PN_LOCAL_BODY}/.freeze
37+
PN_LOCAL = /(?:[0-9]|:|#{PN_CHARS_U}|#{PLX})#{PN_LOCAL_BODY}/u.freeze
3838
# 154s
39-
EXPONENT = /[eE][+-]?[0-9]+/
39+
EXPONENT = /[eE][+-]?[0-9]+/u.freeze
4040
# 159s
41-
ECHAR = /\\[tbnrf\\"']/
41+
ECHAR = /\\[tbnrf\\"']/u.freeze
4242
# 18
43-
IRIREF = /<(?:#{IRI_RANGE}|#{UCHAR})*>/.freeze
43+
IRIREF = /<(?:#{IRI_RANGE}|#{UCHAR})*>/u.freeze
4444
# 139s
45-
PNAME_NS = /#{PN_PREFIX}?:/.freeze
45+
PNAME_NS = /#{PN_PREFIX}?:/u.freeze
4646
# 140s
47-
PNAME_LN = /#{PNAME_NS}#{PN_LOCAL}/.freeze
47+
PNAME_LN = /#{PNAME_NS}#{PN_LOCAL}/u.freeze
4848
# 141s
49-
BLANK_NODE_LABEL = /_:(?:[0-9]|#{PN_CHARS_U})(?:(?:#{PN_CHARS}|\.)*#{PN_CHARS})?/.freeze
49+
BLANK_NODE_LABEL = /_:(?:[0-9]|#{PN_CHARS_U})(?:(?:#{PN_CHARS}|\.)*#{PN_CHARS})?/u.freeze
5050
# 144s
51-
LANGTAG = /@[a-zA-Z]+(?:-[a-zA-Z0-9]+)*/.freeze
51+
LANGTAG = /@[a-zA-Z]+(?:-[a-zA-Z0-9]+)*/u.freeze
5252
# 19
53-
INTEGER = /[+-]?[0-9]+/.freeze
53+
INTEGER = /[+-]?[0-9]+/u.freeze
5454
# 20
55-
DECIMAL = /[+-]?(?:[0-9]*\.[0-9]+)/.freeze
55+
DECIMAL = /[+-]?(?:[0-9]*\.[0-9]+)/u.freeze
5656
# 21
57-
DOUBLE = /[+-]?(?:[0-9]+\.[0-9]*#{EXPONENT}|\.?[0-9]+#{EXPONENT})/.freeze
57+
DOUBLE = /[+-]?(?:[0-9]+\.[0-9]*#{EXPONENT}|\.?[0-9]+#{EXPONENT})/u.freeze
5858
# 22
59-
STRING_LITERAL_SINGLE_QUOTE = /'(?:[^\'\\\n\r]|#{ECHAR}|#{UCHAR})*'/.freeze
59+
STRING_LITERAL_SINGLE_QUOTE = /'(?:[^\'\\\n\r]|#{ECHAR}|#{UCHAR})*'/u.freeze
6060
# 23
61-
STRING_LITERAL_QUOTE = /"(?:[^\"\\\n\r]|#{ECHAR}|#{UCHAR})*"/.freeze
61+
STRING_LITERAL_QUOTE = /"(?:[^\"\\\n\r]|#{ECHAR}|#{UCHAR})*"/u.freeze
6262
# 24
63-
STRING_LITERAL_LONG_SINGLE_QUOTE = /'''(?:(?:'|'')?(?:[^'\\]|#{ECHAR}|#{UCHAR}))*'''/m.freeze
63+
STRING_LITERAL_LONG_SINGLE_QUOTE = /'''(?:(?:'|'')?(?:[^'\\]|#{ECHAR}|#{UCHAR}))*'''/um.freeze
6464
# 25
65-
STRING_LITERAL_LONG_QUOTE = /"""(?:(?:"|"")?(?:[^"\\]|#{ECHAR}|#{UCHAR}))*"""/m.freeze
65+
STRING_LITERAL_LONG_QUOTE = /"""(?:(?:"|"")?(?:[^"\\]|#{ECHAR}|#{UCHAR}))*"""/um.freeze
6666

6767
# 161s
68-
WS = /(?:\s|(?:#[^\n\r]*))+/m.freeze
68+
WS = /(?:\s|(?:#[^\n\r]*))+/um.freeze
6969
# 162s
70-
ANON = /\[#{WS}*\]/m.freeze
70+
ANON = /\[#{WS}*\]/um.freeze
7171
# 28t
72-
PREFIX = /@?prefix/i.freeze
72+
PREFIX = /@?prefix/ui.freeze
7373
# 29t
74-
BASE = /@?base/i.freeze
74+
BASE = /@?base/ui.freeze
7575

7676
end
7777
end

0 commit comments

Comments
 (0)