Imported File#ftype spec from rubyspecs.
[rbx.git] / lib / rbyaml / nodes.rb
blob46deb4f28f36c5095e9e2f3a2c9b725dc7da19fc
2 module RbYAML
3   Node = Struct.new(:tag, :value)
4   class Node
5     def hash
6       object_id
7     end
8     def to_s
9       "#{self.class.name}(tag=#{tag}, value=#{value})"
10     end
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   end
17   
18   class ScalarNode < Node
19     def tid
20       "scalar"
21     end
22     
23     attr_accessor :style
24     
25     def initialize(tag,value,style=nil)
26       super(tag,value)
27       @style = style
28     end
29     def __is_scalar; true; end
30   end
31   
32   class CollectionNode < Node
33     attr_accessor :flow_style
34     
35     def initialize(tag, value,flow_style=nil)
36       super(tag,value)
37       @flow_style = flow_style
38     end
39     def __is_collection; true; end
40   end
41   
42   class SequenceNode < CollectionNode
43     def tid
44       "sequence"
45     end
46     def __is_sequence; true; end
47   end
48   
49   class MappingNode < CollectionNode
50     def tid
51       "mapping"
52     end
53     def __is_mapping; true; end
54   end
55 end