1+ # encoding: utf-8
12require 'ebnf/ll1/lexer'
23
34module 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
7777end
0 commit comments