Module: RDF::N3::Terminals

Included in:
Literal, Reader, Writer
Defined in:
lib/rdf/n3/terminals.rb

Constant Summary collapse

U_CHARS1 =

Definitions of token regular expressions used for lexical analysis

Unicode regular expressions for Ruby 1.9+ with the Oniguruma engine.

Regexp.compile(<<-EOS.gsub(/\s+/, ''))
  [\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|
  [\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|
  [\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|
  [\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD]|[\\u{10000}-\\u{EFFFF}]
EOS
U_CHARS2 =
Regexp.compile("\\u00B7|[\\u0300-\\u036F]|[\\u203F-\\u2040]", Regexp::FIXEDENCODING).freeze
IRI_RANGE =
Regexp.compile("[[^<>\"{}|^`\\\\]&&[^\\x00-\\x20]]", Regexp::FIXEDENCODING).freeze
ESCAPE_CHAR4 =

uXXXX

/\\u(?:[0-9A-Fa-f]{4,4})/u.freeze
ESCAPE_CHAR8 =

UXXXXXXXX

/\\U(?:[0-9A-Fa-f]{8,8})/u.freeze
UCHAR =
/#{ESCAPE_CHAR4}|#{ESCAPE_CHAR8}/n.freeze
PERCENT =

170s

/%[0-9A-Fa-f]{2}/u.freeze
PN_LOCAL_ESC =

172s

/\\[_~\.\-\!$\&'\(\)\*\+,;=\/\?\#@%]/u.freeze
PLX =

169s

/#{PERCENT}|#{PN_LOCAL_ESC}/u.freeze
PN_CHARS_BASE =

163s

/[A-Z]|[a-z]|#{U_CHARS1}/u.freeze
PN_CHARS_U =

164s

/_|#{PN_CHARS_BASE}/u.freeze
PN_CHARS =

166s

/-|[0-9]|#{PN_CHARS_U}|#{U_CHARS2}/u.freeze
PN_LOCAL_BODY =
/(?:(?:\.|:|#{PN_CHARS}|#{PLX})*(?:#{PN_CHARS}|:|#{PLX}))?/u.freeze
PN_CHARS_BODY =
/(?:(?:\.|#{PN_CHARS})*#{PN_CHARS})?/u.freeze
PN_PREFIX =

167s

/#{PN_CHARS_BASE}#{PN_CHARS_BODY}/u.freeze
PN_LOCAL =

168s

/(?:[0-9]|:|#{PN_CHARS_U}|#{PLX})#{PN_LOCAL_BODY}/u.freeze
EXPONENT =

154s

/[eE][+-]?[0-9]+/u.freeze
ECHAR =

159s

/\\[tbnrf\\"']/u.freeze
IRIREF =

18

/<(?:#{IRI_RANGE}|#{UCHAR})*>/mu.freeze
PNAME_NS =

139s

/#{PN_PREFIX}?:/u.freeze
PNAME_LN =

140s

/#{PNAME_NS}#{PN_LOCAL}/u.freeze
BLANK_NODE_LABEL =

141s

/_:(?:[0-9]|#{PN_CHARS_U})(?:(?:#{PN_CHARS}|\.)*#{PN_CHARS})?/u.freeze
LANGTAG =

144s XXX: negative-lookahed for @is and @has

/@(?!(?:is|has))(?:[a-zA-Z]+(?:-[a-zA-Z0-9]+)*)/u.freeze
INTEGER =

19

/[+-]?[0-9]+/u.freeze
DECIMAL =

20

/[+-]?(?:[0-9]*\.[0-9]+)/u.freeze
DOUBLE =

21

/[+-]?(?:[0-9]+\.[0-9]*#{EXPONENT}|\.?[0-9]+#{EXPONENT})/u.freeze
STRING_LITERAL_SINGLE_QUOTE =

22

/'(?:[^\'\\\n\r]|#{ECHAR}|#{UCHAR})*'/u.freeze
STRING_LITERAL_QUOTE =

23

/"(?:[^\"\\\n\r]|#{ECHAR}|#{UCHAR})*"/u.freeze
STRING_LITERAL_LONG_SINGLE_QUOTE =

24

/'''(?:(?:'|'')?(?:[^'\\]|#{ECHAR}|#{UCHAR}))*'''/um.freeze
STRING_LITERAL_LONG_QUOTE =

25

/"""(?:(?:"|"")?(?:[^"\\]|#{ECHAR}|#{UCHAR}))*"""/um.freeze
IPLSTART =

33

/\[\s*id/um.freeze
PREFIX =

28t

/@?prefix/ui.freeze
BASE =

29t

/@?base/ui.freeze
QUICK_VAR_NAME =
/\?#{PN_LOCAL}/.freeze
WS =

161s

/(?:\s|(?:#[^\n\r]*))+/um.freeze
ANON =

162s

/\[\s*\]/u.freeze