Module: RDF::Turtle::Terminals

Included in:
Reader
Defined in:
lib/rdf/turtle/terminals.rb

Constant Summary collapse

U_CHARS1 =

UTF-8 regular expressions for Ruby 1.8.x.

Regexp.compile(<<-EOS.gsub(/\s+/, ''))
  \\xC3[\\x80-\\x96]|                                (?# [\\u00C0-\\u00D6]|)
  \\xC3[\\x98-\\xB6]|                                (?# [\\u00D8-\\u00F6]|)
  \\xC3[\\xB8-\\xBF]|[\\xC4-\\xCB][\\x80-\\xBF]|     (?# [\\u00F8-\\u02FF]|)
  \\xCD[\\xB0-\\xBD]|                                (?# [\\u0370-\\u037D]|)
  \\xCD\\xBF|[\\xCE-\\xDF][\\x80-\\xBF]|             (?# [\\u037F-\\u1FFF]|)
  \\xE0[\\xA0-\\xBF][\\x80-\\xBF]|                   (?# ...)
  \\xE1[\\x80-\\xBF][\\x80-\\xBF]|                   (?# ...)
  \\xE2\\x80[\\x8C-\\x8D]|                           (?# [\\u200C-\\u200D]|)
  \\xE2\\x81[\\xB0-\\xBF]|                           (?# [\\u2070-\\u218F]|)
  \\xE2[\\x82-\\x85][\\x80-\\xBF]|                   (?# ...)
  \\xE2\\x86[\\x80-\\x8F]|                           (?# ...)
  \\xE2[\\xB0-\\xBE][\\x80-\\xBF]|                   (?# [\\u2C00-\\u2FEF]|)
  \\xE2\\xBF[\\x80-\\xAF]|                           (?# ...)
  \\xE3\\x80[\\x81-\\xBF]|                           (?# [\\u3001-\\uD7FF]|)
  \\xE3[\\x81-\\xBF][\\x80-\\xBF]|                   (?# ...)
  [\\xE4-\\xEC][\\x80-\\xBF][\\x80-\\xBF]|           (?# ...)
  \\xED[\\x80-\\x9F][\\x80-\\xBF]|                   (?# ...)
  \\xEF[\\xA4-\\xB6][\\x80-\\xBF]|                   (?# [\\uF900-\\uFDCF]|)
  \\xEF\\xB7[\\x80-\\x8F]|                           (?# ...)
  \\xEF\\xB7[\\xB0-\\xBF]|                           (?# [\\uFDF0-\\uFFFD]|)
  \\xEF[\\xB8-\\xBE][\\x80-\\xBF]|                   (?# ...)
  \\xEF\\xBF[\\x80-\\xBD]|                           (?# ...)
  \\xF0[\\x90-\\xBF][\\x80-\\xBF][\\x80-\\xBF]|      (?# [\\u{10000}-\\u{EFFFF}])
  [\\xF1-\\xF2][\\x80-\\xBF][\\x80-\\xBF][\\x80-\\xBF]|
  \\xF3[\\x80-\\xAF][\\x80-\\xBF][\\x80-\\xBF]       (?# ...)
EOS
U_CHARS2 =
Regexp.compile(<<-EOS.gsub(/\s+/, ''))
  \\xC2\\xB7|                                        (?# \\u00B7|)
  \\xCC[\\x80-\\xBF]|\\xCD[\\x80-\\xAF]|             (?# [\\u0300-\\u036F]|)
  \\xE2\\x80\\xBF|\\xE2\\x81\\x80                    (?# [\\u203F-\\u2040])
EOS
UCHAR =
RDF::LL1::Lexer::UCHAR
WS =
93s
/ |\t|\r|\n  /
PN_CHARS_BASE =
95s
/[A-Z]|[a-z]|#{U_CHARS1}|#{UCHAR}/
PN_CHARS_U =
96s
/_|#{PN_CHARS_BASE}/
PN_CHARS =
98s
/-|[0-9]|#{PN_CHARS_U}|#{U_CHARS2}/
PN_CHARS_BODY =
/(?:(?:\.|#{PN_CHARS})*#{PN_CHARS})?/
PN_LOCAL =
100s
/(?:[0-9]|#{PN_CHARS_U})#{PN_CHARS_BODY}/
EXPONENT =
86s
/[eE][+-]?[0-9]+/
ANON =
94s
/\[#{WS}*\]/
BLANK_NODE_LABEL =
73s
/_:#{PN_LOCAL}/
DECIMAL =
78s
/(?:[0-9]+\.[0-9]*|\.[0-9]+)/
DECIMAL_NEGATIVE =
83s
/\-(?:[0-9]+\.[0-9]*|\.[0-9]+)/
DECIMAL_POSITIVE =
81s
/\+(?:[0-9]+\.[0-9]*|\.[0-9]+)/
DOUBLE =
79s
/(?:[0-9]+\.[0-9]*|\.[0-9]+|[0-9]+)#{EXPONENT}/
DOUBLE_NEGATIVE =
79s
/\-(?:[0-9]+\.[0-9]*|\.[0-9]+|[0-9]+)#{EXPONENT}/
DOUBLE_POSITIVE =
79s
/\+(?:[0-9]+\.[0-9]*|\.[0-9]+|[0-9]+)#{EXPONENT}/
ECHAR =
91s
/\\[tbnrf\\"']/
INTEGER =
77s
/[0-9]+/
INTEGER_NEGATIVE =
83s
/\-[0-9]+/
INTEGER_POSITIVE =
80s
/\+[0-9]+/
IRI_REF =

Spec confusion: the EBNF definition of IRI_REF seems malformed, and has no provision for ^, as discussed elsewhere in the spec.

/<(?:[^<>"{}|^`\\\x00-\x20]|#{U_CHARS1})*>/
LANGTAG =
76s
/@[a-zA-Z]+(?:-[a-zA-Z0-9]+)*/
PN_PREFIX =
99s
/#{PN_CHARS_BASE}#{PN_CHARS_BODY}/
PNAME_NS =
71s
/#{PN_PREFIX}?:/
PNAME_LN =
72s
/#{PNAME_NS}#{PN_LOCAL}/
STRING_LITERAL1 =
87s
/'(?:[^\'\\\n\r]|#{ECHAR}|#{UCHAR})*'/
STRING_LITERAL2 =
88s
/"(?:[^\"\\\n\r]|#{ECHAR}|#{UCHAR})*"/
STRING_LITERAL_LONG1 =
89s
/'''(?:(?:'|'')?(?:[^'\\]|#{ECHAR}|#{UCHAR}))*'''/m
STRING_LITERAL_LONG2 =
90s
/"""(?:(?:"|"")?(?:[^"\\]|#{ECHAR}|#{UCHAR}))*"""/m