RbYAML 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. data/lib/rbyaml.rb +14 -256
  2. data/lib/rbyaml.rb.~1.2.~ +383 -0
  3. data/lib/rbyaml/composer.rb +9 -11
  4. data/lib/rbyaml/{composer.rb.~1.2.~ → composer.rb.~1.3.~} +28 -25
  5. data/lib/rbyaml/constants.rb +95 -0
  6. data/lib/rbyaml/constructor.rb +180 -89
  7. data/lib/rbyaml/{constructor.rb.~1.2.~ → constructor.rb.~1.9.~} +137 -95
  8. data/lib/rbyaml/dumper.rb +12 -9
  9. data/lib/rbyaml/dumper.rb.~1.3.~ +36 -0
  10. data/lib/rbyaml/emitter.rb +14 -28
  11. data/lib/rbyaml/{emitter.rb.~1.2.~ → emitter.rb.~1.6.~} +22 -33
  12. data/lib/rbyaml/error.rb +4 -57
  13. data/lib/rbyaml/error.rb.~1.2.~ +75 -0
  14. data/lib/rbyaml/events.rb +8 -14
  15. data/lib/rbyaml/{events.rb.~1.2.~ → events.rb.~1.4.~} +29 -6
  16. data/lib/rbyaml/nodes.rb +5 -5
  17. data/lib/rbyaml/{nodes.rb.~1.2.~ → nodes.rb.~1.3.~} +13 -9
  18. data/lib/rbyaml/parser.rb +70 -108
  19. data/lib/rbyaml/parser.rb.~1.4.~ +632 -0
  20. data/lib/rbyaml/representer.rb +19 -157
  21. data/lib/rbyaml/representer.rb.old +317 -0
  22. data/lib/rbyaml/{representer.rb.~1.2.~ → representer.rb.~1.5.~} +60 -26
  23. data/lib/rbyaml/resolver.rb +6 -6
  24. data/lib/rbyaml/{resolver.rb.~1.1.~ → resolver.rb.~1.6.~} +20 -20
  25. data/lib/rbyaml/rubytypes.rb +391 -0
  26. data/lib/rbyaml/scanner.rb +123 -225
  27. data/lib/rbyaml/{scanner.rb.~1.2.~ → scanner.rb.~1.5.~} +466 -378
  28. data/lib/rbyaml/serializer.rb +9 -9
  29. data/lib/rbyaml/{serializer.rb.~1.2.~ → serializer.rb.~1.4.~} +19 -17
  30. data/lib/rbyaml/stream.rb +48 -0
  31. data/lib/rbyaml/tag.rb +72 -0
  32. data/lib/rbyaml/tokens.rb +22 -16
  33. data/lib/rbyaml/{tokens.rb.~1.2.~ → tokens.rb.~1.3.~} +44 -4
  34. data/lib/rbyaml/types.rb +146 -0
  35. data/lib/rbyaml/util.rb.~1.3.~ +38 -0
  36. data/lib/rbyaml/yaml.rb +22 -32
  37. data/lib/rbyaml/{yaml.rb.~1.2.~ → yaml.rb.~1.5.~} +17 -17
  38. data/test/load_one.rb +6 -0
  39. data/test/load_one_yaml.rb +6 -0
  40. data/test/output_events.rb +9 -0
  41. data/test/test_add_ctor.rb +51 -0
  42. data/test/test_add_ctor.rb.~1.1.~ +30 -0
  43. data/test/test_bm.rb +2 -2
  44. data/test/test_bm.rb.~1.1.~ +28 -0
  45. data/test/test_gems.rb +10 -0
  46. data/test/test_one.rb.~1.1.~ +5 -0
  47. data/test/test_one_syck.rb +5 -0
  48. data/test/test_rbyaml.rb +63 -32
  49. data/test/test_rbyaml.rb.~1.6.~ +59 -0
  50. data/test/{test_rbyaml.rb.~1.2.~ → test_rbyaml_old.rb} +13 -4
  51. data/test/test_time_events.rb +24 -0
  52. data/test/test_time_nodes.rb +24 -0
  53. data/test/test_time_tokens.rb +24 -0
  54. data/test/yaml/gems_new.yml +147456 -0
  55. data/test/yaml/test1.rb +8 -0
  56. data/test/yaml/test10.rb +14 -0
  57. data/test/yaml/test11.rb +13 -0
  58. data/test/yaml/test12.rb +9 -0
  59. data/test/yaml/test13.rb +9 -0
  60. data/test/yaml/test14.rb +13 -0
  61. data/test/yaml/test15.rb +12 -0
  62. data/test/yaml/test16.rb +11 -0
  63. data/test/yaml/test16.rb.~1.1.~ +11 -0
  64. data/test/yaml/test17.rb +10 -0
  65. data/test/yaml/test18.rb +13 -0
  66. data/test/yaml/test19.rb +9 -0
  67. data/test/yaml/test19.yml +1 -1
  68. data/test/yaml/test2.rb +8 -0
  69. data/test/yaml/test20.rb +11 -0
  70. data/test/yaml/test20.rb.~1.1.~ +9 -0
  71. data/test/yaml/test20.yml +1 -1
  72. data/test/yaml/test3.rb +13 -0
  73. data/test/yaml/test4.rb +13 -0
  74. data/test/yaml/test5.rb +8 -0
  75. data/test/yaml/test6.rb +10 -0
  76. data/test/yaml/test7.rb +15 -0
  77. data/test/yaml/test8.rb +15 -0
  78. data/test/yaml/test9.rb +13 -0
  79. metadata +61 -16
  80. data/lib/rbyaml/dumper.rb.~1.2.~ +0 -43
  81. data/lib/rbyaml/parser.rb.~1.2.~ +0 -494
@@ -1,6 +1,4 @@
1
-
2
1
  module RbYAML
3
- Event = Struct.new(:start_mark,:end_mark)
4
2
  class Event
5
3
  def hash
6
4
  object_id
@@ -27,8 +25,7 @@ module RbYAML
27
25
 
28
26
  class NodeEvent < Event
29
27
  attr_reader :anchor
30
- def initialize(anchor, start_mark=nil, end_mark=nil)
31
- super(start_mark,end_mark)
28
+ def initialize(anchor)
32
29
  @anchor = anchor
33
30
  end
34
31
  def __is_node; true; end
@@ -36,8 +33,8 @@ module RbYAML
36
33
 
37
34
  class CollectionStartEvent < NodeEvent
38
35
  attr_reader :tag, :implicit, :flow_style
39
- def initialize(anchor,tag,implicit,start_mark=nil, end_mark=nil,flow_style=nil)
40
- super(anchor,start_mark,end_mark)
36
+ def initialize(anchor,tag,implicit,flow_style=nil)
37
+ super(anchor)
41
38
  @tag = tag
42
39
  @implicit = implicit
43
40
  @flow_style = flow_style
@@ -51,8 +48,7 @@ module RbYAML
51
48
 
52
49
  class StreamStartEvent < Event
53
50
  attr_reader :encoding
54
- def initialize(start_mark=nil,end_mark=nil,encoding=nil)
55
- super(start_mark,end_mark)
51
+ def initialize(encoding=nil)
56
52
  @encoding = encoding
57
53
  end
58
54
  def __is_stream_start; true; end
@@ -64,8 +60,7 @@ module RbYAML
64
60
 
65
61
  class DocumentStartEvent < Event
66
62
  attr_reader :explicit, :version, :tags
67
- def initialize(start_mark=nil,end_mark=nil,explicit=nil,version=nil,tags=nil)
68
- super(start_mark,end_mark)
63
+ def initialize(explicit=nil,version=nil,tags=nil)
69
64
  @explicit = explicit
70
65
  @version = version
71
66
  @tags = tags
@@ -75,8 +70,7 @@ module RbYAML
75
70
 
76
71
  class DocumentEndEvent < Event
77
72
  attr_reader :explicit
78
- def initialize(start_mark=nil,end_mark=nil,explicit=nil)
79
- super(start_mark,end_mark)
73
+ def initialize(explicit=nil)
80
74
  @explicit = explicit
81
75
  end
82
76
  def __is_document_end; true; end
@@ -88,8 +82,8 @@ module RbYAML
88
82
 
89
83
  class ScalarEvent < NodeEvent
90
84
  attr_reader :tag, :style, :value, :implicit
91
- def initialize(anchor,tag,implicit,value,start_mark=nil, end_mark=nil,style=nil)
92
- super(anchor,start_mark,end_mark)
85
+ def initialize(anchor,tag,implicit,value,style=nil)
86
+ super(anchor)
93
87
  @tag = tag
94
88
  @style = style
95
89
  @value = value
@@ -1,17 +1,27 @@
1
-
2
1
  module RbYAML
2
+ Event = Struct.new(:start_mark,:end_mark)
3
3
  class Event
4
- attr_reader :start_mark, :end_mark
5
- def initialize(start_mark=nil,end_mark=nil)
6
- @start_mark = start_mark
7
- @end_mark = end_mark
4
+ def hash
5
+ object_id
8
6
  end
9
-
10
7
  def to_s
11
8
  attributes = ["@anchor","@tag","@implicit","@value"] & self.instance_variables
12
9
  args = attributes.collect {|val| "#{val[1..-1]}=" + eval("#{val}").to_s}.join(", ")
13
10
  "#{self.class.name}(#{args})"
14
11
  end
12
+ def __is_node; false; end
13
+ def __is_collection_start; false; end
14
+ def __is_collection_end; false; end
15
+ def __is_stream_start; false; end
16
+ def __is_stream_end; false; end
17
+ def __is_document_start; false; end
18
+ def __is_document_end; false; end
19
+ def __is_alias; false; end
20
+ def __is_scalar; false; end
21
+ def __is_sequence_start; false; end
22
+ def __is_sequence_end; false; end
23
+ def __is_mapping_start; false; end
24
+ def __is_mapping_end; false; end
15
25
  end
16
26
 
17
27
  class NodeEvent < Event
@@ -20,6 +30,7 @@ module RbYAML
20
30
  super(start_mark,end_mark)
21
31
  @anchor = anchor
22
32
  end
33
+ def __is_node; true; end
23
34
  end
24
35
 
25
36
  class CollectionStartEvent < NodeEvent
@@ -30,9 +41,11 @@ module RbYAML
30
41
  @implicit = implicit
31
42
  @flow_style = flow_style
32
43
  end
44
+ def __is_collection_start; true; end
33
45
  end
34
46
 
35
47
  class CollectionEndEvent < Event
48
+ def __is_collection_end; true; end
36
49
  end
37
50
 
38
51
  class StreamStartEvent < Event
@@ -41,9 +54,11 @@ module RbYAML
41
54
  super(start_mark,end_mark)
42
55
  @encoding = encoding
43
56
  end
57
+ def __is_stream_start; true; end
44
58
  end
45
59
 
46
60
  class StreamEndEvent < Event
61
+ def __is_stream_end; true; end
47
62
  end
48
63
 
49
64
  class DocumentStartEvent < Event
@@ -54,6 +69,7 @@ module RbYAML
54
69
  @version = version
55
70
  @tags = tags
56
71
  end
72
+ def __is_document_start; true; end
57
73
  end
58
74
 
59
75
  class DocumentEndEvent < Event
@@ -62,9 +78,11 @@ module RbYAML
62
78
  super(start_mark,end_mark)
63
79
  @explicit = explicit
64
80
  end
81
+ def __is_document_end; true; end
65
82
  end
66
83
 
67
84
  class AliasEvent < NodeEvent
85
+ def __is_alias; true; end
68
86
  end
69
87
 
70
88
  class ScalarEvent < NodeEvent
@@ -76,18 +94,23 @@ module RbYAML
76
94
  @value = value
77
95
  @implicit = implicit
78
96
  end
97
+ def __is_scalar; true; end
79
98
  end
80
99
 
81
100
  class SequenceStartEvent < CollectionStartEvent
101
+ def __is_sequence_start; true; end
82
102
  end
83
103
 
84
104
  class SequenceEndEvent < CollectionEndEvent
105
+ def __is_sequence_end; true; end
85
106
  end
86
107
 
87
108
  class MappingStartEvent < CollectionStartEvent
109
+ def __is_mapping_start; true; end
88
110
  end
89
111
 
90
112
  class MappingEndEvent < CollectionEndEvent
113
+ def __is_mapping_end; true; end
91
114
  end
92
115
  end
93
116
 
@@ -1,6 +1,6 @@
1
1
 
2
2
  module RbYAML
3
- Node = Struct.new(:tag, :value, :start_mark, :end_mark)
3
+ Node = Struct.new(:tag, :value)
4
4
  class Node
5
5
  def hash
6
6
  object_id
@@ -22,8 +22,8 @@ module RbYAML
22
22
 
23
23
  attr_accessor :style
24
24
 
25
- def initialize(tag, value,start_mark=nil,end_mark=nil,style=nil)
26
- super(tag,value,start_mark,end_mark)
25
+ def initialize(tag,value,style=nil)
26
+ super(tag,value)
27
27
  @style = style
28
28
  end
29
29
  def __is_scalar; true; end
@@ -32,8 +32,8 @@ module RbYAML
32
32
  class CollectionNode < Node
33
33
  attr_accessor :flow_style
34
34
 
35
- def initialize(tag, value,start_mark=nil,end_mark=nil,flow_style=nil)
36
- super(tag,value,start_mark,end_mark)
35
+ def initialize(tag, value,flow_style=nil)
36
+ super(tag,value)
37
37
  @flow_style = flow_style
38
38
  end
39
39
  def __is_collection; true; end
@@ -1,18 +1,18 @@
1
1
 
2
2
  module RbYAML
3
+ Node = Struct.new(:tag, :value, :start_mark, :end_mark)
3
4
  class Node
4
- attr_accessor :tag, :value, :start_mark, :end_mark
5
-
6
- def initialize(tag, value, start_mark, end_mark)
7
- @tag = tag
8
- @value = value
9
- @start_mark = start_mark
10
- @end_mark = end_mark
5
+ def hash
6
+ object_id
11
7
  end
12
-
13
8
  def to_s
14
- "#{self.class.name}(tag=#{@tag}, value=#{@value})"
9
+ "#{self.class.name}(tag=#{tag}, value=#{value})"
15
10
  end
11
+
12
+ def __is_scalar; false; end
13
+ def __is_collection; false; end
14
+ def __is_sequence; false; end
15
+ def __is_mapping; false; end
16
16
  end
17
17
 
18
18
  class ScalarNode < Node
@@ -26,6 +26,7 @@ module RbYAML
26
26
  super(tag,value,start_mark,end_mark)
27
27
  @style = style
28
28
  end
29
+ def __is_scalar; true; end
29
30
  end
30
31
 
31
32
  class CollectionNode < Node
@@ -35,18 +36,21 @@ module RbYAML
35
36
  super(tag,value,start_mark,end_mark)
36
37
  @flow_style = flow_style
37
38
  end
39
+ def __is_collection; true; end
38
40
  end
39
41
 
40
42
  class SequenceNode < CollectionNode
41
43
  def tid
42
44
  "sequence"
43
45
  end
46
+ def __is_sequence; true; end
44
47
  end
45
48
 
46
49
  class MappingNode < CollectionNode
47
50
  def tid
48
51
  "mapping"
49
52
  end
53
+ def __is_mapping; true; end
50
54
  end
51
55
  end
52
56
 
@@ -50,7 +50,7 @@ require 'rbyaml/events'
50
50
  require 'rbyaml/scanner'
51
51
 
52
52
  module RbYAML
53
- class ParserError < MarkedYAMLError
53
+ class ParserError < YAMLError
54
54
  end
55
55
 
56
56
  class Parser
@@ -59,6 +59,14 @@ module RbYAML
59
59
  '!!' => 'tag:yaml.org,2002:'
60
60
  }
61
61
 
62
+ DOCUMENT_END_TRUE = DocumentEndEvent.new(true)
63
+ DOCUMENT_END_FALSE = DocumentEndEvent.new(false)
64
+ MAPPING_END = MappingEndEvent.new
65
+ SEQUENCE_END = SequenceEndEvent.new
66
+ STREAM_END = StreamEndEvent.new
67
+ STREAM_START = StreamStartEvent.new
68
+
69
+
62
70
  def initialize(scanner)
63
71
  @scanner = scanner
64
72
  @current_event = nil
@@ -67,9 +75,6 @@ module RbYAML
67
75
  @working_events = nil
68
76
  @tag_handles = { }
69
77
  @parse_stack = nil
70
- @start_mark = []
71
- @tks = []
72
-
73
78
  end
74
79
 
75
80
  def check_event(*choices)
@@ -108,11 +113,8 @@ module RbYAML
108
113
  def parse_stream
109
114
  if !@parse_stack
110
115
  @parse_stack = [:stream]
111
- @tokens = nil
112
116
  @tags = []
113
117
  @anchors = []
114
- @start_marks = []
115
- @end_marks = []
116
118
  end
117
119
  end
118
120
 
@@ -129,11 +131,8 @@ module RbYAML
129
131
  end
130
132
  end
131
133
  else
132
- @tokens = nil
133
134
  @tags = []
134
135
  @anchors = []
135
- @start_marks = []
136
- @end_marks = []
137
136
  return nil
138
137
  end
139
138
  end
@@ -141,140 +140,125 @@ module RbYAML
141
140
  #TERMINALS, definitions
142
141
 
143
142
  def stream_start
144
- token = @scanner.get_token
145
- StreamStartEvent.new(token.start_mark, token.end_mark,token.encoding)
143
+ @scanner.get_token
144
+ STREAM_START
146
145
  end
147
146
 
148
147
  def stream_end
149
- token = @scanner.get_token
150
- StreamEndEvent.new(token.start_mark, token.end_mark)
148
+ @scanner.get_token
149
+ STREAM_END
151
150
  end
152
151
 
153
152
  def document_start_implicit
154
153
  token = @scanner.peek_token
155
154
  version, tags = process_directives
156
- DocumentStartEvent.new(token.start_mark,token.start_mark,false)
155
+ DocumentStartEvent.new(false,version,tags)
157
156
  end
158
157
 
159
158
  def document_start
160
159
  token = @scanner.peek_token
161
- start_mark = token.start_mark
162
160
  version, tags = process_directives
163
- raise ParserError.new(nil, nil,"expected '<document start>', but found #{token.tid}",token.start_mark) unless @scanner.peek_token.__is_document_start
164
- @token = token = @scanner.get_token
165
- end_mark = token.end_mark
166
- DocumentStartEvent.new(start_mark, end_mark,true,version,tags)
161
+ raise ParserError.new(nil, "expected '<document start>', but found #{token.tid}") unless @scanner.peek_token.__is_document_start
162
+ @scanner.get_token
163
+ DocumentStartEvent.new(true,version,tags)
167
164
  end
168
165
 
169
166
  def document_end
170
167
  token = @scanner.peek_token
171
- start_mark = end_mark = token.start_mark
172
168
  explicit = false
173
169
  while @scanner.peek_token.__is_document_end
174
- @tokens = token = @scanner.get_token
175
- end_mark = token.end_mark
170
+ @scanner.get_token
176
171
  explicit = true
177
172
  end
178
- DocumentEndEvent.new(start_mark, end_mark, explicit)
173
+ explicit ? DOCUMENT_END_TRUE : DOCUMENT_END_FALSE
179
174
  end
180
175
 
181
176
  def _alias
182
- token = @scanner.get_token
183
- AliasEvent.new(token.value, token.start_mark, token.end_mark)
177
+ AliasEvent.new(@scanner.get_token.value)
184
178
  end
185
179
 
186
180
  def block_sequence_start
187
- end_mark = @scanner.peek_token.start_mark
188
- implicit = @tags.last.nil? || @tags.last == ?!
189
- @tokens = token = @scanner.get_token
190
- SequenceStartEvent.new(@anchors.last, @tags.last, implicit, @start_marks.last, end_mark,false)
181
+ implicit = @tags.last.nil? || @tags.last == "!"
182
+ @scanner.get_token
183
+ SequenceStartEvent.new(@anchors.last, @tags.last, implicit, false)
191
184
  end
192
185
 
193
186
  def block_indentless_sequence_start
194
- end_mark = @scanner.peek_token.end_mark
195
- implicit = @tags.last.nil? || @tags.last == ?!
196
- SequenceStartEvent.new(@anchors.last, @tags.last, implicit, @start_marks.last, end_mark,false)
187
+ implicit = @tags.last.nil? || @tags.last == "!"
188
+ SequenceStartEvent.new(@anchors.last, @tags.last, implicit, false)
197
189
  end
198
190
 
199
191
  def block_sequence_end
200
192
  if !@scanner.peek_token.__is_block_end
201
- token = @scanner.peek_token
202
- raise ParserError.new("while scanning a block collection", @start_marks.last,"expected <block end>, but found #{token.tid}: #{token.inspect}", token.start_mark)
193
+ raise ParserError.new("while scanning a block collection","expected <block end>, but found #{token.tid}: #{token.inspect}")
203
194
  end
204
- token = @scanner.get_token
205
- SequenceEndEvent.new(token.start_mark, token.end_mark)
195
+ @scanner.get_token
196
+ SEQUENCE_END
206
197
  end
207
198
 
208
199
  def block_indentless_sequence_end
209
- @tokens = token = @scanner.peek_token
210
- SequenceEndEvent.new(token.start_mark, token.end_mark)
200
+ SEQUENCE_END
211
201
  end
212
202
 
213
203
  def block_mapping_start
214
- end_mark = @scanner.peek_token.start_mark
215
- implicit = @tags.last.nil? || @tags.last == ?!
216
- @tokens = token = @scanner.get_token
217
- MappingStartEvent.new(@anchors.last, @tags.last, implicit, @start_marks.last, end_mark,false)
204
+ implicit = @tags.last.nil? || @tags.last == "!"
205
+ @scanner.get_token
206
+ MappingStartEvent.new(@anchors.last, @tags.last, implicit,false)
218
207
  end
219
208
 
220
209
  def block_mapping_end
221
210
  if !@scanner.peek_token.__is_block_end
222
- token = @scanner.peek_token
223
- raise ParserError.new("while scanning a block mapping", @start_marks.last,"expected <block end>, but found #{token.tid}", token.start_mark)
211
+ raise ParserError.new("while scanning a block mapping","expected <block end>, but found #{token.tid}")
224
212
  end
225
- @tokens = token = @scanner.get_token
226
- MappingEndEvent.new(token.start_mark, token.end_mark)
213
+ @scanner.get_token
214
+ MAPPING_END
227
215
  end
228
216
 
229
217
  def flow_sequence_start
230
- end_mark = @scanner.peek_token.end_mark
231
- implicit = @tags.last.nil? || @tags.last == ?!
232
- @tokens = token = @scanner.get_token
233
- SequenceStartEvent.new(@anchors.last, @tags.last, implicit, @start_marks.last, end_mark,true)
218
+ implicit = @tags.last.nil? || @tags.last == "!"
219
+ @scanner.get_token
220
+ SequenceStartEvent.new(@anchors.last, @tags.last, implicit,true)
234
221
  end
235
222
 
236
223
  def flow_sequence_end
237
- @tokens = token = @scanner.get_token
238
- SequenceEndEvent.new(token.start_mark, token.end_mark)
224
+ @scanner.get_token
225
+ SEQUENCE_END
239
226
  end
240
227
 
241
228
  def flow_internal_mapping_start
242
- @tokens = token = @scanner.get_token
243
- MappingStartEvent.new(nil,nil,true,token.start_mark, token.end_mark,true)
229
+ @scanner.get_token
230
+ MappingStartEvent.new(nil,nil,true,true)
244
231
  end
245
232
 
246
233
  def flow_internal_mapping_end
247
- token = peek_token
248
- MappingEndEvent.new(token.start_mark, token.start_mark)
234
+ MAPPING_END
249
235
  end
250
236
 
251
237
  def flow_mapping_start
252
- end_mark = @scanner.peek_token.end_mark
253
- implicit = @tags.last.nil? || @tags.last == ?!
254
- @tokens = token = @scanner.get_token
255
- MappingStartEvent.new(@anchors.last, @tags.last, implicit, @start_marks.last, end_mark,true)
238
+ implicit = @tags.last.nil? || @tags.last == "!"
239
+ @scanner.get_token
240
+ MappingStartEvent.new(@anchors.last, @tags.last, implicit,true)
256
241
  end
257
242
 
258
243
  def flow_mapping_end
259
- @tokens = token = @scanner.get_token
260
- MappingEndEvent.new(token.start_mark, token.end_mark)
244
+ @scanner.get_token
245
+ MAPPING_END
261
246
  end
262
247
 
263
248
  def scalar
264
249
  token = @scanner.get_token
265
- end_mark = token.end_mark
266
- if (token.plain && @tags.last.nil?) || @tags.last == ?!
250
+ if (token.plain && @tags.last.nil?) || @tags.last == "!"
267
251
  implicit = [true, false]
268
252
  elsif @tags.last.nil?
269
253
  implicit = [false, true]
270
254
  else
271
255
  implicit = [false, false]
272
256
  end
273
- ScalarEvent.new(@anchors.last, @tags.last, implicit, token.value, @start_marks.last, end_mark, token.style)
257
+ ScalarEvent.new(@anchors.last, @tags.last, implicit, token.value,token.style)
274
258
  end
275
259
 
276
260
  def empty_scalar
277
- process_empty_scalar(@tokens.end_mark)
261
+ process_empty_scalar
278
262
  end
279
263
 
280
264
 
@@ -329,54 +313,35 @@ module RbYAML
329
313
  def properties
330
314
  anchor = nil
331
315
  tag = nil
332
- start_mark = end_mark = tag_mark = nil
333
316
  if @scanner.peek_token.__is_anchor
334
- token = @scanner.get_token
335
- start_mark = token.start_mark
336
- end_mark = token.end_mark
337
- anchor = token.value
317
+ anchor = @scanner.get_token.value
338
318
  if @scanner.peek_token.__is_tag
339
- token = @scanner.get_token
340
- tag_mark = token.start_mark
341
- end_mark = token.end_mark
342
- tag = token.value
319
+ tag = @scanner.get_token.value
343
320
  end
344
321
  elsif @scanner.peek_token.__is_tag
345
- token = @scanner.get_token
346
- start_mark = tag_mark = token.start_mark
347
- end_mark = token.end_mark
348
- tag = token.value
322
+ tag = @scanner.get_token.value
349
323
  if @scanner.peek_token.__is_anchor
350
- token = @scanner.get_token
351
- end_mark = token.end_mark
352
- anchor = token.value
324
+ anchor = @scanner.get_token.value
353
325
  end
354
326
  end
355
327
 
356
328
  if !tag.nil? and tag != "!"
357
329
  handle, suffix = tag
358
330
  if !handle.nil?
359
- raise ParserError.new("while parsing a node", start_mark,"found undefined tag handle #{handle}",tag_mark) if !@tag_handles.include?(handle)
331
+ raise ParserError.new("while parsing a node","found undefined tag handle #{handle}") if !@tag_handles.include?(handle)
360
332
  tag = @tag_handles[handle]+suffix
361
333
  else
362
334
  tag = suffix
363
335
  end
364
336
  end
365
- if start_mark.nil?
366
- start_mark = end_mark = @scanner.peek_token.start_mark
367
- end
368
337
  @anchors << anchor
369
338
  @tags << tag
370
- @start_marks << start_mark
371
- @end_marks << end_mark
372
339
  nil
373
340
  end
374
341
 
375
342
  def un_properties
376
343
  @anchors.pop
377
344
  @tags.pop
378
- @start_marks.pop
379
- @end_marks.pop
380
345
  nil
381
346
  end
382
347
 
@@ -393,7 +358,7 @@ module RbYAML
393
358
  elsif token.__is_scalar
394
359
  return scalar
395
360
  else
396
- raise ParserError.new("while scanning a node", @start_marks.last,"expected the node content, but found #{token.tid}",token.start_mark)
361
+ raise ParserError.new("while scanning a node","expected the node content, but found #{token.tid}")
397
362
  end
398
363
  end
399
364
 
@@ -406,13 +371,13 @@ module RbYAML
406
371
  elsif token.__is_scalar
407
372
  return scalar
408
373
  else
409
- raise ParserError.new("while scanning a flow node", @start_marks.last,"expected the node content, but found #{token.tid}",token.start_mark)
374
+ raise ParserError.new("while scanning a flow node","expected the node content, but found #{token.tid}")
410
375
  end
411
376
  end
412
377
 
413
378
  def block_sequence_entry
414
379
  if @scanner.peek_token.__is_block_entry
415
- @tokens = token = @scanner.get_token
380
+ @scanner.get_token
416
381
  if !(@scanner.peek_token.__is_block_entry || @scanner.peek_token.__is_block_end)
417
382
  @parse_stack += [:block_sequence_entry]
418
383
  return block_node
@@ -428,7 +393,7 @@ module RbYAML
428
393
  # ((KEY block_node_or_indentless_sequence?)? (VALUE block_node_or_indentless_sequence?)?)*
429
394
  if @scanner.peek_token.__is_key || @scanner.peek_token.__is_value
430
395
  if @scanner.check_token(KeyToken)
431
- @tokens = token = @scanner.get_token
396
+ @scanner.get_token
432
397
  curr = @scanner.peek_token
433
398
  if !(curr.__is_key || curr.__is_value || curr.__is_block_end)
434
399
  @parse_stack += [:block_mapping_entry,:block_mapping_entry_value]
@@ -448,7 +413,7 @@ module RbYAML
448
413
  def block_mapping_entry_value
449
414
  if @scanner.peek_token.__is_key || @scanner.peek_token.__is_value
450
415
  if @scanner.peek_token.__is_value
451
- @tokens = token = @scanner.get_token
416
+ @scanner.get_token
452
417
  curr = @scanner.peek_token
453
418
  if !(curr.__is_key || curr.__is_value || curr.__is_block_end)
454
419
  return block_node_or_indentless_sequence
@@ -456,7 +421,6 @@ module RbYAML
456
421
  return empty_scalar
457
422
  end
458
423
  else
459
- @tokens = token = @scanner.peek_token
460
424
  return empty_scalar
461
425
  end
462
426
  end
@@ -494,7 +458,7 @@ module RbYAML
494
458
 
495
459
  def indentless_block_sequence_entry
496
460
  if @scanner.peek_token.__is_block_entry
497
- @tokens = @scanner.get_token
461
+ @scanner.get_token
498
462
  curr = @scanner.peek_token
499
463
  if !(curr.__is_block_entry || curr.__is_key || curr.__is_value || curr.__is_block_end)
500
464
  @parse_stack << :indentless_block_sequence_entry
@@ -541,14 +505,13 @@ module RbYAML
541
505
 
542
506
  def flow_internal_value
543
507
  if @scanner.peek_token.__is_value
544
- @tokens = token = @scanner.get_token
508
+ @scanner.get_token
545
509
  if !(@scanner.peek_token.__is_flow_entry || @scanner.peek_token.__is_flow_sequence_end)
546
510
  flow_node
547
511
  else
548
512
  empty_scalar
549
513
  end
550
514
  else
551
- @tokens = token = @scanner.peek_token
552
515
  empty_scalar
553
516
  end
554
517
  end
@@ -576,7 +539,7 @@ module RbYAML
576
539
  def flow_mapping_internal_content
577
540
  curr = @scanner.peek_token
578
541
  if !(curr.__is_value || curr.__is_flow_entry || curr.__is_flow_mapping_end)
579
- @tokens = token = @scanner.get_token
542
+ @scanner.get_token
580
543
  flow_node
581
544
  else
582
545
  empty_scalar
@@ -585,14 +548,13 @@ module RbYAML
585
548
 
586
549
  def flow_mapping_internal_value
587
550
  if @scanner.peek_token.__is_value
588
- @tokens = token = @scanner.get_token
551
+ @scanner.get_token
589
552
  if !(@scanner.peek_token.__is_flow_entry || @scanner.peek_token.__is_flow_mapping_end)
590
553
  flow_node
591
554
  else
592
555
  empty_scalar
593
556
  end
594
557
  else
595
- @tokens = token = @scanner.peek_token
596
558
  empty_scalar
597
559
  end
598
560
  end
@@ -603,13 +565,13 @@ module RbYAML
603
565
  while @scanner.peek_token.__is_directive
604
566
  token = @scanner.get_token
605
567
  if token.name == "YAML"
606
- raise ParserError.new(nil, nil,"found duplicate YAML directive", token.start_mark) if !@yaml_version.nil?
568
+ raise ParserError.new(nil,"found duplicate YAML directive") if !@yaml_version.nil?
607
569
  major, minor = token.value[0].to_i, token.value[1].to_i
608
- raise ParserError.new(nil,nil,"found incompatible YAML document (version 1.* is required)",token.start_mark) if major != 1
570
+ raise ParserError.new(nil,"found incompatible YAML document (version 1.* is required)") if major != 1
609
571
  @yaml_version = [major,minor]
610
572
  elsif token.name == "TAG"
611
573
  handle, prefix = token.value
612
- raise ParserError.new(nil,nil,"duplicate tag handle #{handle}",token.start_mark) if @tag_handles.member?(handle)
574
+ raise ParserError.new(nil,"duplicate tag handle #{handle}") if @tag_handles.member?(handle)
613
575
  @tag_handles[handle] = prefix
614
576
  end
615
577
  end
@@ -624,8 +586,8 @@ module RbYAML
624
586
  value
625
587
  end
626
588
 
627
- def process_empty_scalar(mark)
628
- ScalarEvent.new(nil, nil, [true, false], "", mark, mark)
589
+ def process_empty_scalar
590
+ ScalarEvent.new(nil, nil, [true, false], "")
629
591
  end
630
592
  end
631
593
  end