lib/rdf/turtle/reader.rb in rdf-turtle-3.2.1 vs lib/rdf/turtle/reader.rb in rdf-turtle-3.3.0
- old
+ new
@@ -34,11 +34,11 @@
| <<|>>
)x)
terminal(:PREFIX, PREFIX)
terminal(:BASE, BASE)
- terminal(:LANGTAG, LANGTAG)
+ terminal(:LANG_DIR, LANG_DIR)
##
# Reader options
# @see https://ruby-rdf.github.io/rdf/RDF/Reader#options-class_method
def self.options
@@ -392,11 +392,11 @@
object
end
end
end
- # Read an RDF-star reified statement
+ # Read a quoted triple
# @return [RDF::Statement]
def read_quotedTriple
return unless @options[:rdfstar]
if @lexer.first.value == '<<'
prod(:quotedTriple) do
@@ -468,12 +468,14 @@
when :STRING_LITERAL_QUOTE, :STRING_LITERAL_SINGLE_QUOTE
prod(:literal) do
value = @lexer.shift.value[1..-2]
error("read_literal", "Unexpected end of file") unless token = @lexer.first
case token.type || token.value
- when :LANGTAG
- literal(value, language: @lexer.shift.value[1..-1].to_sym)
+ when :LANG_DIR
+ lang_dir = @lexer.shift.value[1..-1]
+ language, direction = lang_dir.split('--')
+ literal(value, language: language, direction: direction)
when '^^'
@lexer.shift
literal(value, datatype: read_iri)
else
literal(value)
@@ -482,11 +484,13 @@
when :STRING_LITERAL_LONG_QUOTE, :STRING_LITERAL_LONG_SINGLE_QUOTE
prod(:literal) do
value = @lexer.shift.value[3..-4]
error("read_literal", "Unexpected end of file") unless token = @lexer.first
case token.type || token.value
- when :LANGTAG
- literal(value, language: @lexer.shift.value[1..-1].to_sym)
+ when :LANG_DIR
+ lang_dir = @lexer.shift.value[1..-1]
+ language, direction = lang_dir.split('--')
+ literal(value, language: language, direction: direction)
when '^^'
@lexer.shift
literal(value, datatype: read_iri)
else
literal(value)