kwalify 0.6.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (219) hide show
  1. data/CHANGES.txt +232 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.txt +16 -19
  4. data/bin/kwalify +3 -3
  5. data/contrib/inline-require +6 -4
  6. data/contrib/kwalify +3719 -2427
  7. data/doc-api/classes/CommandOptionError.html +17 -17
  8. data/doc-api/classes/CommandOptionParser.html +63 -63
  9. data/doc-api/classes/Kwalify.html +29 -7
  10. data/doc-api/classes/Kwalify/AssertionError.html +9 -9
  11. data/doc-api/classes/Kwalify/BaseError.html +72 -71
  12. data/doc-api/classes/Kwalify/BaseParser.html +461 -0
  13. data/doc-api/classes/Kwalify/CommandOptionError.html +11 -11
  14. data/doc-api/classes/Kwalify/ErrorHelper.html +51 -46
  15. data/doc-api/classes/Kwalify/HashInterface.html +13 -135
  16. data/doc-api/classes/Kwalify/Json.html +105 -0
  17. data/doc-api/classes/Kwalify/Main.html +129 -126
  18. data/doc-api/classes/Kwalify/MetaValidator.html +248 -232
  19. data/doc-api/classes/Kwalify/Parser.html +12 -12
  20. data/doc-api/classes/Kwalify/PlainYamlParser.html +166 -163
  21. data/doc-api/classes/Kwalify/PlainYamlParser/Alias.html +11 -11
  22. data/doc-api/classes/Kwalify/Rule.html +152 -130
  23. data/doc-api/classes/Kwalify/SchemaError.html +10 -10
  24. data/doc-api/classes/Kwalify/SyntaxError.html +185 -0
  25. data/doc-api/classes/Kwalify/Types.html +26 -25
  26. data/doc-api/classes/Kwalify/Util.html +389 -0
  27. data/doc-api/classes/Kwalify/Util/HashLike.html +246 -0
  28. data/doc-api/classes/Kwalify/Util/OrderedHash.html +330 -0
  29. data/doc-api/classes/Kwalify/ValidationError.html +10 -10
  30. data/doc-api/classes/Kwalify/Validator.html +153 -86
  31. data/doc-api/classes/Kwalify/Yaml.html +181 -0
  32. data/doc-api/classes/Kwalify/Yaml/Parser.html +1538 -0
  33. data/doc-api/classes/Kwalify/YamlParser.html +190 -183
  34. data/doc-api/classes/Kwalify/YamlSyntaxError.html +8 -57
  35. data/doc-api/created.rid +1 -1
  36. data/doc-api/files/__/README_txt.html +17 -22
  37. data/doc-api/files/kwalify/errors_rb.html +2 -2
  38. data/doc-api/files/kwalify/main_rb.html +4 -3
  39. data/doc-api/files/kwalify/messages_rb.html +2 -2
  40. data/doc-api/files/kwalify/meta-validator_rb.html +3 -3
  41. data/doc-api/files/kwalify/{util/yaml-helper_rb.html → parser/base_rb.html} +8 -6
  42. data/doc-api/files/kwalify/parser/yaml_rb.html +117 -0
  43. data/doc-api/files/kwalify/rule_rb.html +2 -2
  44. data/doc-api/files/kwalify/types_rb.html +2 -2
  45. data/doc-api/files/kwalify/util/assert-text-equal_rb.html +2 -2
  46. data/doc-api/files/kwalify/util/hash-interface_rb.html +9 -2
  47. data/doc-api/files/kwalify/util/hashlike_rb.html +107 -0
  48. data/doc-api/files/kwalify/util/option-parser_rb.html +2 -2
  49. data/doc-api/files/kwalify/util/ordered-hash_rb.html +107 -0
  50. data/doc-api/files/kwalify/util/testcase-helper_rb.html +2 -2
  51. data/doc-api/files/kwalify/util_rb.html +107 -0
  52. data/doc-api/files/kwalify/validator_rb.html +2 -2
  53. data/doc-api/files/kwalify/yaml-parser_rb.html +2 -2
  54. data/doc-api/files/kwalify_rb.html +3 -2
  55. data/doc-api/fr_class_index.html +8 -1
  56. data/doc-api/fr_file_index.html +5 -1
  57. data/doc-api/fr_method_index.html +128 -69
  58. data/doc/img/fig01.png +0 -0
  59. data/doc/users-guide.html +882 -717
  60. data/examples/address-book/address-book.schema.yaml +2 -2
  61. data/examples/data-binding/BABEL.data.yaml +63 -0
  62. data/examples/data-binding/BABEL.schema.yaml +31 -0
  63. data/examples/data-binding/Makefile +8 -0
  64. data/examples/data-binding/Rakefile +13 -0
  65. data/examples/data-binding/main.rb +27 -0
  66. data/examples/invoice/invoice.schema.yaml +3 -3
  67. data/examples/tapkit/tapkit.schema.yaml +2 -2
  68. data/lib/kwalify.rb +41 -4
  69. data/lib/kwalify/errors.rb +118 -96
  70. data/lib/kwalify/kwalify.schema.yaml +58 -0
  71. data/lib/kwalify/main.rb +384 -377
  72. data/lib/kwalify/messages.rb +41 -27
  73. data/lib/kwalify/meta-validator.rb +251 -331
  74. data/lib/kwalify/parser/base.rb +127 -0
  75. data/lib/kwalify/parser/yaml.rb +837 -0
  76. data/lib/kwalify/rule.rb +545 -487
  77. data/lib/kwalify/templates/genclass-java.eruby +189 -162
  78. data/lib/kwalify/templates/genclass-php.eruby +104 -0
  79. data/lib/kwalify/templates/genclass-ruby.eruby +95 -66
  80. data/lib/kwalify/types.rb +107 -106
  81. data/lib/kwalify/util.rb +157 -0
  82. data/lib/kwalify/util/assert-text-equal.rb +33 -31
  83. data/lib/kwalify/util/hash-interface.rb +11 -30
  84. data/lib/kwalify/util/hashlike.rb +51 -0
  85. data/lib/kwalify/util/option-parser.rb +144 -144
  86. data/lib/kwalify/util/ordered-hash.rb +57 -0
  87. data/lib/kwalify/util/testcase-helper.rb +3 -3
  88. data/lib/kwalify/validator.rb +267 -212
  89. data/lib/kwalify/yaml-parser.rb +822 -768
  90. data/setup.rb +861 -607
  91. data/test/Rookbook.yaml +10 -0
  92. data/test/{tmp.dir/Context.java → data/users-guide/AddressBook.java.expected} +11 -11
  93. data/test/data/users-guide/BABEL.data.yaml +24 -0
  94. data/test/data/users-guide/BABEL.schema.yaml +30 -0
  95. data/test/data/users-guide/ExampleAddressBook.java +47 -0
  96. data/test/{tmp.dir/Group.java → data/users-guide/Group.java.expected} +2 -11
  97. data/test/data/users-guide/Person.java.expected +44 -0
  98. data/test/data/users-guide/address_book.rb +52 -0
  99. data/test/data/users-guide/address_book.schema.yaml +28 -0
  100. data/test/data/users-guide/address_book.yaml +27 -0
  101. data/test/data/users-guide/answers-schema.yaml +12 -0
  102. data/test/data/users-guide/answers-validator.rb +52 -0
  103. data/test/data/users-guide/babel_genclass.result +26 -0
  104. data/test/data/users-guide/config.schema.yaml +7 -0
  105. data/test/data/users-guide/config.yaml +4 -0
  106. data/test/{tmp.dir/silent1.document → data/users-guide/document01a.yaml} +0 -0
  107. data/test/data/users-guide/document01b.yaml +3 -0
  108. data/test/data/users-guide/document02a.yaml +4 -0
  109. data/test/data/users-guide/document02b.yaml +4 -0
  110. data/test/data/users-guide/document03a.yaml +6 -0
  111. data/test/data/users-guide/document03b.yaml +6 -0
  112. data/test/data/users-guide/document04a.yaml +9 -0
  113. data/test/data/users-guide/document04b.yaml +9 -0
  114. data/test/data/users-guide/document05a.yaml +11 -0
  115. data/test/data/users-guide/document05b.yaml +12 -0
  116. data/test/data/users-guide/document06a.yaml +15 -0
  117. data/test/data/users-guide/document06b.yaml +16 -0
  118. data/test/data/users-guide/document07a.yaml +9 -0
  119. data/test/data/users-guide/document07b.yaml +7 -0
  120. data/test/data/users-guide/document12a.json +10 -0
  121. data/test/data/users-guide/document12b.json +6 -0
  122. data/test/data/users-guide/document13a.yaml +17 -0
  123. data/test/data/users-guide/document14a.yaml +3 -0
  124. data/test/data/users-guide/document14b.yaml +3 -0
  125. data/test/data/users-guide/document15a.yaml +6 -0
  126. data/test/data/users-guide/document15b.yaml +5 -0
  127. data/test/data/users-guide/example_address_book.rb +10 -0
  128. data/test/data/users-guide/example_address_book_java.result +32 -0
  129. data/test/data/users-guide/example_address_book_ruby.result +31 -0
  130. data/test/data/users-guide/genclass_java.result +4 -0
  131. data/test/data/users-guide/howto-validation-with-parsing.rb +28 -0
  132. data/test/data/users-guide/howto-validation.rb +25 -0
  133. data/test/data/users-guide/howto3.rb +6 -0
  134. data/test/data/users-guide/howto3.result +5 -0
  135. data/test/data/users-guide/howto3.yaml +8 -0
  136. data/test/data/users-guide/howto5_databinding.result +111 -0
  137. data/test/data/users-guide/invalid01.result +3 -0
  138. data/test/data/users-guide/invalid02.result +5 -0
  139. data/test/data/users-guide/invalid03.result +5 -0
  140. data/test/data/users-guide/invalid04.result +4 -0
  141. data/test/data/users-guide/invalid05.result +11 -0
  142. data/test/data/users-guide/invalid06.result +4 -0
  143. data/test/data/users-guide/invalid07.result +3 -0
  144. data/test/data/users-guide/invalid08.result +3 -0
  145. data/test/data/users-guide/invalid12.json +8 -0
  146. data/test/data/users-guide/invalid14.result +4 -0
  147. data/test/data/users-guide/invalid15.result +4 -0
  148. data/test/data/users-guide/loadbabel.rb +27 -0
  149. data/test/data/users-guide/loadconfig.rb +15 -0
  150. data/test/data/users-guide/loadconfig.result +2 -0
  151. data/test/data/users-guide/models.rb +22 -0
  152. data/test/data/users-guide/option_ha.result +6 -0
  153. data/test/data/users-guide/option_ha_genclass_java.result +7 -0
  154. data/test/{tmp.dir/meta1.schema → data/users-guide/schema01.yaml} +0 -0
  155. data/test/data/users-guide/schema02.yaml +12 -0
  156. data/test/data/users-guide/schema03.yaml +9 -0
  157. data/test/data/users-guide/schema04.yaml +20 -0
  158. data/test/data/users-guide/schema05.yaml +29 -0
  159. data/test/data/users-guide/schema06.yaml +11 -0
  160. data/test/data/users-guide/schema12.json +12 -0
  161. data/test/data/users-guide/schema13.yaml +13 -0
  162. data/test/data/users-guide/schema14.yaml +5 -0
  163. data/test/data/users-guide/schema15.yaml +21 -0
  164. data/test/data/users-guide/valid01.result +2 -0
  165. data/test/data/users-guide/valid02.result +2 -0
  166. data/test/data/users-guide/valid03.result +2 -0
  167. data/test/data/users-guide/valid04.result +2 -0
  168. data/test/data/users-guide/valid05.result +2 -0
  169. data/test/data/users-guide/valid06.result +2 -0
  170. data/test/data/users-guide/valid07.result +2 -0
  171. data/test/data/users-guide/valid08.result +2 -0
  172. data/test/data/users-guide/valid12.result +2 -0
  173. data/test/data/users-guide/valid13.result +2 -0
  174. data/test/data/users-guide/valid14.result +2 -0
  175. data/test/data/users-guide/valid15.result +2 -0
  176. data/test/data/users-guide/validate08.rb +37 -0
  177. data/test/test-action.rb +78 -0
  178. data/test/test-action.yaml +738 -0
  179. data/test/test-databinding.rb +80 -0
  180. data/test/test-databinding.yaml +301 -0
  181. data/test/test-main.rb +129 -150
  182. data/test/test-main.yaml +126 -321
  183. data/test/test-metavalidator.rb +47 -47
  184. data/test/test-metavalidator.yaml +77 -21
  185. data/test/test-parser-yaml.rb +57 -0
  186. data/test/test-parser-yaml.yaml +1749 -0
  187. data/test/test-rule.rb +14 -15
  188. data/test/test-rule.yaml +6 -3
  189. data/test/test-users-guide.rb +75 -0
  190. data/test/test-validator.rb +77 -52
  191. data/test/test-validator.yaml +168 -6
  192. data/test/test-yaml-parser.rb +47 -0
  193. data/test/{test-yamlparser.yaml → test-yaml-parser.yaml} +159 -52
  194. data/test/test.rb +37 -21
  195. metadata +136 -37
  196. data/COPYING +0 -340
  197. data/ChangeLog +0 -70
  198. data/doc-api/classes/YamlHelper.html +0 -259
  199. data/lib/kwalify/util/yaml-helper.rb +0 -82
  200. data/test/test-yamlparser.rb +0 -58
  201. data/test/tmp.dir/User.java +0 -43
  202. data/test/tmp.dir/action1.document +0 -18
  203. data/test/tmp.dir/action1.schema +0 -32
  204. data/test/tmp.dir/action2.document +0 -18
  205. data/test/tmp.dir/action2.schema +0 -32
  206. data/test/tmp.dir/emacs.document +0 -6
  207. data/test/tmp.dir/emacs.schema +0 -6
  208. data/test/tmp.dir/meta1.document +0 -0
  209. data/test/tmp.dir/meta2.document +0 -0
  210. data/test/tmp.dir/meta2.schema +0 -3
  211. data/test/tmp.dir/silent1.schema +0 -3
  212. data/test/tmp.dir/silent2.document +0 -7
  213. data/test/tmp.dir/silent2.schema +0 -3
  214. data/test/tmp.dir/stream.invalid +0 -8
  215. data/test/tmp.dir/stream.schema +0 -3
  216. data/test/tmp.dir/stream.valid +0 -8
  217. data/test/tmp.dir/untabify.document +0 -5
  218. data/test/tmp.dir/untabify.schema +0 -10
  219. data/todo.txt +0 -34
@@ -0,0 +1,1538 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Kwalify::Yaml::Parser</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Kwalify::Yaml::Parser</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../files/kwalify/parser/yaml_rb.html">
59
+ kwalify/parser/yaml.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="../BaseParser.html">
69
+ Kwalify::BaseParser
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <p>
85
+ YAML parser with validator
86
+ </p>
87
+ <p>
88
+ ex.
89
+ </p>
90
+ <pre>
91
+ schema = YAML.load_file('schema.yaml')
92
+ require 'kwalify'
93
+ validator = Kwalify::Validator.new(schema)
94
+ parser = Kwalify::Yaml::Parser.new(validator) # validator is optional
95
+ #parser.preceding_alias = true # optional
96
+ #parser.data_binding = true # optional
97
+ ydoc = parser.parse_file('data.yaml')
98
+ errors = parser.errors
99
+ if errors &amp;&amp; !errors.empty?
100
+ errors.each do |e|
101
+ puts &quot;line=#{e.linenum}, path=#{e.path}, mesg=#{e.message}&quot;
102
+ end
103
+ end
104
+ </pre>
105
+
106
+ </div>
107
+
108
+
109
+ </div>
110
+
111
+ <div id="method-list">
112
+ <h3 class="section-bar">Methods</h3>
113
+
114
+ <div class="name-list">
115
+ <a href="#M000071">_getclass</a>&nbsp;&nbsp;
116
+ <a href="#M000042">_set_error_info</a>&nbsp;&nbsp;
117
+ <a href="#M000057">_validate_map_value</a>&nbsp;&nbsp;
118
+ <a href="#M000069">add_to_seq</a>&nbsp;&nbsp;
119
+ <a href="#M000067">create_mapping</a>&nbsp;&nbsp;
120
+ <a href="#M000068">create_scalar</a>&nbsp;&nbsp;
121
+ <a href="#M000066">create_sequence</a>&nbsp;&nbsp;
122
+ <a href="#M000044">document_start?</a>&nbsp;&nbsp;
123
+ <a href="#M000046">has_next?</a>&nbsp;&nbsp;
124
+ <a href="#M000072">location</a>&nbsp;&nbsp;
125
+ <a href="#M000040">new</a>&nbsp;&nbsp;
126
+ <a href="#M000047">parse</a>&nbsp;&nbsp;
127
+ <a href="#M000053">parse_alias</a>&nbsp;&nbsp;
128
+ <a href="#M000052">parse_anchor</a>&nbsp;&nbsp;
129
+ <a href="#M000058">parse_block_map</a>&nbsp;&nbsp;
130
+ <a href="#M000059">parse_block_scalar</a>&nbsp;&nbsp;
131
+ <a href="#M000056">parse_block_seq</a>&nbsp;&nbsp;
132
+ <a href="#M000060">parse_block_text</a>&nbsp;&nbsp;
133
+ <a href="#M000055">parse_block_value</a>&nbsp;&nbsp;
134
+ <a href="#M000051">parse_documents</a>&nbsp;&nbsp;
135
+ <a href="#M000048">parse_file</a>&nbsp;&nbsp;
136
+ <a href="#M000063">parse_flow_map</a>&nbsp;&nbsp;
137
+ <a href="#M000064">parse_flow_scalar</a>&nbsp;&nbsp;
138
+ <a href="#M000062">parse_flow_seq</a>&nbsp;&nbsp;
139
+ <a href="#M000061">parse_flow_value</a>&nbsp;&nbsp;
140
+ <a href="#M000049">parse_next</a>&nbsp;&nbsp;
141
+ <a href="#M000050">parse_stream</a>&nbsp;&nbsp;
142
+ <a href="#M000070">put_to_map</a>&nbsp;&nbsp;
143
+ <a href="#M000041">reset_parser</a>&nbsp;&nbsp;
144
+ <a href="#M000054">resolve_preceding_aliases</a>&nbsp;&nbsp;
145
+ <a href="#M000073">set_errors_linenum</a>&nbsp;&nbsp;
146
+ <a href="#M000043">skip_spaces_and_comments</a>&nbsp;&nbsp;
147
+ <a href="#M000045">stream_end?</a>&nbsp;&nbsp;
148
+ <a href="#M000065">to_scalar</a>&nbsp;&nbsp;
149
+ </div>
150
+ </div>
151
+
152
+ </div>
153
+
154
+
155
+ <!-- if includes -->
156
+
157
+ <div id="section">
158
+
159
+
160
+ <div id="constants-list">
161
+ <h3 class="section-bar">Constants</h3>
162
+
163
+ <div class="name-list">
164
+ <table summary="Constants">
165
+ <tr class="top-aligned-row context-row">
166
+ <td class="context-item-name">PRECEDING_ALIAS_PLACEHOLDER</td>
167
+ <td>=</td>
168
+ <td class="context-item-value">Object.new # :nodoc:</td>
169
+ </tr>
170
+ </table>
171
+ </div>
172
+ </div>
173
+
174
+ <div id="aliases-list">
175
+ <h3 class="section-bar">External Aliases</h3>
176
+
177
+ <div class="name-list">
178
+ <table summary="aliases">
179
+ <tr class="top-aligned-row context-row">
180
+ <td class="context-item-name">reset</td>
181
+ <td>-&gt;</td>
182
+ <td class="context-item-value">reset_scanner</td>
183
+ </tr>
184
+ </table>
185
+ </div>
186
+ </div>
187
+
188
+
189
+ <div id="attribute-list">
190
+ <h3 class="section-bar">Attributes</h3>
191
+
192
+ <div class="name-list">
193
+ <table>
194
+ <tr class="top-aligned-row context-row">
195
+ <td class="context-item-name">data_binding</td>
196
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
197
+ <td class="context-item-desc"></td>
198
+ </tr>
199
+ <tr class="top-aligned-row context-row">
200
+ <td class="context-item-name">errors</td>
201
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
202
+ <td class="context-item-desc"></td>
203
+ </tr>
204
+ <tr class="top-aligned-row context-row">
205
+ <td class="context-item-name">mapping_class</td>
206
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
207
+ <td class="context-item-desc"></td>
208
+ </tr>
209
+ <tr class="top-aligned-row context-row">
210
+ <td class="context-item-name">preceding_alias</td>
211
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
212
+ <td class="context-item-desc"></td>
213
+ </tr>
214
+ <tr class="top-aligned-row context-row">
215
+ <td class="context-item-name">sequence_class</td>
216
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
217
+ <td class="context-item-desc"></td>
218
+ </tr>
219
+ <tr class="top-aligned-row context-row">
220
+ <td class="context-item-name">validator</td>
221
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
222
+ <td class="context-item-desc"></td>
223
+ </tr>
224
+ </table>
225
+ </div>
226
+ </div>
227
+
228
+
229
+
230
+ <!-- if method_list -->
231
+ <div id="methods">
232
+ <h3 class="section-bar">Public Class methods</h3>
233
+
234
+ <div id="method-M000040" class="method-detail">
235
+ <a name="M000040"></a>
236
+
237
+ <div class="method-heading">
238
+ <a href="#M000040" class="method-signature">
239
+ <span class="method-name">new</span><span class="method-args">(validator=nil, properties={})</span>
240
+ </a>
241
+ </div>
242
+
243
+ <div class="method-description">
244
+ <p><a class="source-toggle" href="#"
245
+ onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
246
+ <div class="method-source-code" id="M000040-source">
247
+ <pre>
248
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 46</span>
249
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">validator</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">properties</span>={})
250
+ <span class="ruby-ivar">@validator</span> = <span class="ruby-identifier">validator</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">Kwalify</span><span class="ruby-operator">::</span><span class="ruby-constant">Validator</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">validator</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">validator</span>
251
+ <span class="ruby-ivar">@data_binding</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:data_binding</span>] <span class="ruby-comment cmt"># enable data binding or not</span>
252
+ <span class="ruby-ivar">@preceding_alias</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:preceding_alias</span>] <span class="ruby-comment cmt"># allow preceding alias or not</span>
253
+ <span class="ruby-ivar">@sequence_class</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:sequence_class</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">Array</span>
254
+ <span class="ruby-ivar">@mapping_class</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:mapping_class</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">Hash</span>
255
+ <span class="ruby-keyword kw">end</span>
256
+ </pre>
257
+ </div>
258
+ </div>
259
+ </div>
260
+
261
+ <h3 class="section-bar">Public Instance methods</h3>
262
+
263
+ <div id="method-M000042" class="method-detail">
264
+ <a name="M000042"></a>
265
+
266
+ <div class="method-heading">
267
+ <a href="#M000042" class="method-signature">
268
+ <span class="method-name">_set_error_info</span><span class="method-args">(linenum=@linenum, column=@column) {|| ...}</span>
269
+ </a>
270
+ </div>
271
+
272
+ <div class="method-description">
273
+ <p>
274
+ def _validate_error(message, path, linenum=@linenum, column=@column)
275
+ </p>
276
+ <pre>
277
+ #message = _build_message(message_key)
278
+ error = _error(ValidationError, message.to_s, path, linenum, column)
279
+ @errors &lt;&lt; error
280
+ </pre>
281
+ <p>
282
+ end private :_validate_error
283
+ </p>
284
+ <p><a class="source-toggle" href="#"
285
+ onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
286
+ <div class="method-source-code" id="M000042-source">
287
+ <pre>
288
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 90</span>
289
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_set_error_info</span>(<span class="ruby-identifier">linenum</span>=<span class="ruby-ivar">@linenum</span>, <span class="ruby-identifier">column</span>=<span class="ruby-ivar">@column</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
290
+ <span class="ruby-identifier">len</span> = <span class="ruby-ivar">@errors</span>.<span class="ruby-identifier">length</span>
291
+ <span class="ruby-keyword kw">yield</span>
292
+ <span class="ruby-identifier">n</span> = <span class="ruby-ivar">@errors</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">len</span>
293
+ (<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-identifier">n</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
294
+ <span class="ruby-identifier">error</span> = <span class="ruby-ivar">@errors</span>[<span class="ruby-operator">-</span><span class="ruby-identifier">i</span>]
295
+ <span class="ruby-identifier">error</span>.<span class="ruby-identifier">linenum</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">linenum</span>
296
+ <span class="ruby-identifier">error</span>.<span class="ruby-identifier">column</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">column</span>
297
+ <span class="ruby-identifier">error</span>.<span class="ruby-identifier">filename</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@filename</span>
298
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
299
+ <span class="ruby-keyword kw">end</span>
300
+ </pre>
301
+ </div>
302
+ </div>
303
+ </div>
304
+
305
+ <div id="method-M000057" class="method-detail">
306
+ <a name="M000057"></a>
307
+
308
+ <div class="method-heading">
309
+ <a href="#M000057" class="method-signature">
310
+ <span class="method-name">_validate_map_value</span><span class="method-args">(map, map_rule, rule, path, uniq_table, key, val,</span>
311
+ </a>
312
+ </div>
313
+
314
+ <div class="method-description">
315
+ <p><a class="source-toggle" href="#"
316
+ onclick="toggleCode('M000057-source');return false;">[Source]</a></p>
317
+ <div class="method-source-code" id="M000057-source">
318
+ <pre>
319
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 404</span>
320
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_validate_map_value</span>(<span class="ruby-identifier">map</span>, <span class="ruby-identifier">map_rule</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-comment cmt">#*V</span>
321
+ <span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>) <span class="ruby-comment cmt">#*V</span>
322
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">map_rule</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">rule</span> <span class="ruby-comment cmt">#*V</span>
323
+ <span class="ruby-comment cmt">#_validate_error(&quot;unknown mapping key.&quot;, path) #*V</span>
324
+ <span class="ruby-identifier">_set_error_info</span>(<span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-comment cmt">#*V</span>
325
+ <span class="ruby-identifier">error</span> = <span class="ruby-constant">Kwalify</span><span class="ruby-operator">::</span><span class="ruby-constant">ErrorHelper</span>.<span class="ruby-identifier">validate_error</span>(<span class="ruby-identifier">:key_undefined</span>, <span class="ruby-comment cmt">#*V</span>
326
+ <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">map</span>, [<span class="ruby-node">&quot;#{key}:&quot;</span>]) <span class="ruby-comment cmt">#*V</span>
327
+ <span class="ruby-ivar">@errors</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">error</span> <span class="ruby-comment cmt">#*V</span>
328
+ <span class="ruby-comment cmt">#error.linenum = _linenum #*V</span>
329
+ <span class="ruby-comment cmt">#error.column = _column #*V</span>
330
+ <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt">#*V</span>
331
+ <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt">#*V</span>
332
+ <span class="ruby-identifier">_set_error_info</span>(<span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-comment cmt">#*V</span>
333
+ <span class="ruby-ivar">@validator</span>.<span class="ruby-identifier">_validate</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-ivar">@errors</span>, <span class="ruby-ivar">@done</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-keyword kw">false</span>) <span class="ruby-comment cmt">#*V</span>
334
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">val</span>.<span class="ruby-identifier">equal?</span>(<span class="ruby-constant">PRECEDING_ALIAS_PLACEHOLDER</span>) <span class="ruby-comment cmt">#*V</span>
335
+ <span class="ruby-keyword kw">end</span>
336
+ </pre>
337
+ </div>
338
+ </div>
339
+ </div>
340
+
341
+ <div id="method-M000044" class="method-detail">
342
+ <a name="M000044"></a>
343
+
344
+ <div class="method-heading">
345
+ <a href="#M000044" class="method-signature">
346
+ <span class="method-name">document_start?</span><span class="method-args">()</span>
347
+ </a>
348
+ </div>
349
+
350
+ <div class="method-description">
351
+ <p><a class="source-toggle" href="#"
352
+ onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
353
+ <div class="method-source-code" id="M000044-source">
354
+ <pre>
355
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 112</span>
356
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">document_start?</span>()
357
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/---\s/</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@column</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
358
+ <span class="ruby-keyword kw">end</span>
359
+ </pre>
360
+ </div>
361
+ </div>
362
+ </div>
363
+
364
+ <div id="method-M000046" class="method-detail">
365
+ <a name="M000046"></a>
366
+
367
+ <div class="method-heading">
368
+ <a href="#M000046" class="method-signature">
369
+ <span class="method-name">has_next?</span><span class="method-args">()</span>
370
+ </a>
371
+ </div>
372
+
373
+ <div class="method-description">
374
+ <p><a class="source-toggle" href="#"
375
+ onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
376
+ <div class="method-source-code" id="M000046-source">
377
+ <pre>
378
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 122</span>
379
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_next?</span>()
380
+ <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span>(<span class="ruby-identifier">eos?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">stream_end?</span>)
381
+ <span class="ruby-keyword kw">end</span>
382
+ </pre>
383
+ </div>
384
+ </div>
385
+ </div>
386
+
387
+ <div id="method-M000072" class="method-detail">
388
+ <a name="M000072"></a>
389
+
390
+ <div class="method-heading">
391
+ <a href="#M000072" class="method-signature">
392
+ <span class="method-name">location</span><span class="method-args">(path)</span>
393
+ </a>
394
+ </div>
395
+
396
+ <div class="method-description">
397
+ <p><a class="source-toggle" href="#"
398
+ onclick="toggleCode('M000072-source');return false;">[Source]</a></p>
399
+ <div class="method-source-code" id="M000072-source">
400
+ <pre>
401
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 791</span>
402
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">location</span>(<span class="ruby-identifier">path</span>)
403
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span>
404
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@location_table</span>[<span class="ruby-value">-1</span>] <span class="ruby-comment cmt"># return value is [linenum, column]</span>
405
+ <span class="ruby-keyword kw">end</span>
406
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
407
+ <span class="ruby-identifier">items</span> = <span class="ruby-identifier">path</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">to_scalar</span>(<span class="ruby-identifier">item</span>) }
408
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
409
+ <span class="ruby-identifier">items</span> = <span class="ruby-identifier">path</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">to_scalar</span>(<span class="ruby-identifier">item</span>) }
410
+ <span class="ruby-identifier">items</span>.<span class="ruby-identifier">shift</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?/</span> <span class="ruby-comment cmt"># delete empty string on head</span>
411
+ <span class="ruby-keyword kw">else</span>
412
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;path should be Array or String.&quot;</span>)
413
+ <span class="ruby-keyword kw">end</span>
414
+ <span class="ruby-identifier">last_item</span> = <span class="ruby-identifier">items</span>.<span class="ruby-identifier">pop</span>()
415
+ <span class="ruby-identifier">c</span> = <span class="ruby-ivar">@doc</span> <span class="ruby-comment cmt"># collection</span>
416
+ <span class="ruby-identifier">items</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span>
417
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
418
+ <span class="ruby-identifier">c</span> = <span class="ruby-identifier">c</span>[<span class="ruby-identifier">item</span>.<span class="ruby-identifier">to_i</span>]
419
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
420
+ <span class="ruby-identifier">c</span> = <span class="ruby-identifier">c</span>[<span class="ruby-identifier">item</span>]
421
+ <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">table</span> = <span class="ruby-ivar">@location_table</span>[<span class="ruby-identifier">c</span>.<span class="ruby-identifier">__id__</span>]) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">table</span>[<span class="ruby-identifier">:classobj</span>]
422
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">item</span>)
423
+ <span class="ruby-identifier">c</span> = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">__send__</span>(<span class="ruby-identifier">item</span>)
424
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">&quot;[]=&quot;</span>)
425
+ <span class="ruby-identifier">c</span> = <span class="ruby-identifier">c</span>[<span class="ruby-identifier">item</span>]
426
+ <span class="ruby-keyword kw">else</span>
427
+ <span class="ruby-identifier">assert</span> <span class="ruby-keyword kw">false</span>
428
+ <span class="ruby-keyword kw">end</span>
429
+ <span class="ruby-keyword kw">else</span>
430
+ <span class="ruby-comment cmt">#assert false</span>
431
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{path.inspect}: invalid path.&quot;</span>)
432
+ <span class="ruby-keyword kw">end</span>
433
+ <span class="ruby-keyword kw">end</span>
434
+ <span class="ruby-identifier">collection</span> = <span class="ruby-ivar">@location_table</span>[<span class="ruby-identifier">c</span>.<span class="ruby-identifier">__id__</span>]
435
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">collection</span>.<span class="ruby-identifier">nil?</span>
436
+ <span class="ruby-identifier">index</span> = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">last_item</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">last_item</span>
437
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">collection</span>[<span class="ruby-identifier">index</span>] <span class="ruby-comment cmt"># return value is [linenum, column]</span>
438
+ <span class="ruby-keyword kw">end</span>
439
+ </pre>
440
+ </div>
441
+ </div>
442
+ </div>
443
+
444
+ <div id="method-M000047" class="method-detail">
445
+ <a name="M000047"></a>
446
+
447
+ <div class="method-heading">
448
+ <a href="#M000047" class="method-signature">
449
+ <span class="method-name">parse</span><span class="method-args">(input=nil, opts={})</span>
450
+ </a>
451
+ </div>
452
+
453
+ <div class="method-description">
454
+ <p><a class="source-toggle" href="#"
455
+ onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
456
+ <div class="method-source-code" id="M000047-source">
457
+ <pre>
458
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 127</span>
459
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">input</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">opts</span>={})
460
+ <span class="ruby-identifier">reset_scanner</span>(<span class="ruby-identifier">input</span>, <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:filename</span>], <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:untabify</span>]) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">input</span>
461
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parse_next</span>()
462
+ <span class="ruby-keyword kw">end</span>
463
+ </pre>
464
+ </div>
465
+ </div>
466
+ </div>
467
+
468
+ <div id="method-M000053" class="method-detail">
469
+ <a name="M000053"></a>
470
+
471
+ <div class="method-heading">
472
+ <a href="#M000053" class="method-signature">
473
+ <span class="method-name">parse_alias</span><span class="method-args">(rule, path, uniq_table, container)</span>
474
+ </a>
475
+ </div>
476
+
477
+ <div class="method-description">
478
+ <p><a class="source-toggle" href="#"
479
+ onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
480
+ <div class="method-source-code" id="M000053-source">
481
+ <pre>
482
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 198</span>
483
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_alias</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">container</span>)
484
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">group</span>(<span class="ruby-value">1</span>)
485
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@anchors</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">name</span>)
486
+ <span class="ruby-identifier">val</span> = <span class="ruby-ivar">@anchors</span>[<span class="ruby-identifier">name</span>]
487
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@preceding_alias</span>
488
+ <span class="ruby-ivar">@preceding_aliases</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">name</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>.<span class="ruby-identifier">dup</span>, <span class="ruby-identifier">container</span>,
489
+ <span class="ruby-ivar">@linenum</span>, <span class="ruby-ivar">@column</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>]
490
+ <span class="ruby-identifier">val</span> = <span class="ruby-constant">PRECEDING_ALIAS_PLACEHOLDER</span>
491
+ <span class="ruby-keyword kw">else</span>
492
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_syntax_error</span>(<span class="ruby-node">&quot;*#{name}: anchor not found.&quot;</span>, <span class="ruby-identifier">path</span>,
493
+ <span class="ruby-ivar">@linenum</span>, <span class="ruby-ivar">@column</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
494
+ <span class="ruby-keyword kw">end</span>
495
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
496
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">val</span>
497
+ <span class="ruby-keyword kw">end</span>
498
+ </pre>
499
+ </div>
500
+ </div>
501
+ </div>
502
+
503
+ <div id="method-M000052" class="method-detail">
504
+ <a name="M000052"></a>
505
+
506
+ <div class="method-heading">
507
+ <a href="#M000052" class="method-signature">
508
+ <span class="method-name">parse_anchor</span><span class="method-args">(rule, path, uniq_table, container)</span>
509
+ </a>
510
+ </div>
511
+
512
+ <div class="method-description">
513
+ <p><a class="source-toggle" href="#"
514
+ onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
515
+ <div class="method-source-code" id="M000052-source">
516
+ <pre>
517
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 187</span>
518
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_anchor</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">container</span>)
519
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">group</span>(<span class="ruby-value">1</span>)
520
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@anchors</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">name</span>)
521
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_syntax_error</span>(<span class="ruby-node">&quot;&amp;#{name}: anchor duplicated.&quot;</span>, <span class="ruby-identifier">path</span>,
522
+ <span class="ruby-ivar">@linenum</span>, <span class="ruby-ivar">@column</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">length</span>)
523
+ <span class="ruby-keyword kw">end</span>
524
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
525
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">name</span>
526
+ <span class="ruby-keyword kw">end</span>
527
+ </pre>
528
+ </div>
529
+ </div>
530
+ </div>
531
+
532
+ <div id="method-M000058" class="method-detail">
533
+ <a name="M000058"></a>
534
+
535
+ <div class="method-heading">
536
+ <a href="#M000058" class="method-signature">
537
+ <span class="method-name">parse_block_map</span><span class="method-args">(map, map_rule, path, uniq_table)</span>
538
+ </a>
539
+ </div>
540
+
541
+ <div class="method-description">
542
+ <p><a class="source-toggle" href="#"
543
+ onclick="toggleCode('M000058-source');return false;">[Source]</a></p>
544
+ <div class="method-source-code" id="M000058-source">
545
+ <pre>
546
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 422</span>
547
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_block_map</span>(<span class="ruby-identifier">map</span>, <span class="ruby-identifier">map_rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
548
+ <span class="ruby-identifier">_start_linenum</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
549
+ <span class="ruby-identifier">_start_column</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
550
+ <span class="ruby-identifier">level</span> = <span class="ruby-ivar">@column</span>
551
+ <span class="ruby-identifier">path</span>.<span class="ruby-identifier">push</span>(<span class="ruby-keyword kw">nil</span>)
552
+ <span class="ruby-identifier">is_merged</span> = <span class="ruby-keyword kw">false</span>
553
+ <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">true</span>
554
+ <span class="ruby-identifier">_linenum</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
555
+ <span class="ruby-identifier">_column</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
556
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@column</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">MAPKEY_PATTERN</span>)
557
+ <span class="ruby-identifier">key</span> = <span class="ruby-identifier">group</span>(<span class="ruby-value">1</span>)
558
+ <span class="ruby-identifier">skip_spaces_and_comments</span>() <span class="ruby-comment cmt">#*V</span>
559
+ <span class="ruby-identifier">_linenum2</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
560
+ <span class="ruby-identifier">_column2</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
561
+ <span class="ruby-identifier">is_merged</span> = <span class="ruby-identifier">_parse_map_value</span>(<span class="ruby-identifier">map</span>, <span class="ruby-identifier">map_rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">level</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">is_merged</span>,
562
+ <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>, <span class="ruby-identifier">_linenum2</span>, <span class="ruby-identifier">_column2</span>)
563
+ <span class="ruby-comment cmt">#skip_spaces_and_comments()</span>
564
+ <span class="ruby-keyword kw">end</span>
565
+ <span class="ruby-identifier">path</span>.<span class="ruby-identifier">pop</span>()
566
+ <span class="ruby-identifier">_set_error_info</span>(<span class="ruby-identifier">_start_linenum</span>, <span class="ruby-identifier">_start_column</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-comment cmt">#*V</span>
567
+ <span class="ruby-ivar">@validator</span>.<span class="ruby-identifier">_validate_mapping_required_keys</span>(<span class="ruby-identifier">map</span>, <span class="ruby-identifier">map_rule</span>, <span class="ruby-comment cmt">#*V</span>
568
+ <span class="ruby-identifier">path</span>, <span class="ruby-ivar">@errors</span>) <span class="ruby-comment cmt">#*V</span>
569
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">map_rule</span> <span class="ruby-comment cmt">#*V</span>
570
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">map</span>
571
+ <span class="ruby-keyword kw">end</span>
572
+ </pre>
573
+ </div>
574
+ </div>
575
+ </div>
576
+
577
+ <div id="method-M000059" class="method-detail">
578
+ <a name="M000059"></a>
579
+
580
+ <div class="method-heading">
581
+ <a href="#M000059" class="method-signature">
582
+ <span class="method-name">parse_block_scalar</span><span class="method-args">(rule, path, uniq_table)</span>
583
+ </a>
584
+ </div>
585
+
586
+ <div class="method-description">
587
+ <p><a class="source-toggle" href="#"
588
+ onclick="toggleCode('M000059-source');return false;">[Source]</a></p>
589
+ <div class="method-source-code" id="M000059-source">
590
+ <pre>
591
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 459</span>
592
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_block_scalar</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
593
+ <span class="ruby-identifier">_linenum</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
594
+ <span class="ruby-identifier">_column</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
595
+ <span class="ruby-identifier">ch</span> = <span class="ruby-identifier">peep</span>(<span class="ruby-value">1</span>)
596
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ch</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'&quot;'</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">ch</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;'&quot;</span>
597
+ <span class="ruby-identifier">val</span> = <span class="ruby-identifier">scan_string</span>()
598
+ <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/[ \t]*(?:\#.*)?$/</span>)
599
+ <span class="ruby-keyword kw">else</span>
600
+ <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/(.*?)[ \t]*(?:\#.*)?$/</span>)
601
+ <span class="ruby-comment cmt">#str.rstrip!</span>
602
+ <span class="ruby-identifier">val</span> = <span class="ruby-identifier">to_scalar</span>(<span class="ruby-identifier">group</span>(<span class="ruby-value">1</span>))
603
+ <span class="ruby-keyword kw">end</span>
604
+ <span class="ruby-identifier">val</span> = <span class="ruby-identifier">create_scalar</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">val</span>, <span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>) <span class="ruby-comment cmt">#*V</span>
605
+ <span class="ruby-comment cmt">#_set_error_info(_linenum, _column) do #*V</span>
606
+ <span class="ruby-comment cmt"># @validator._validate_unique(val, rule, path, @errors, uniq_table) #*V</span>
607
+ <span class="ruby-comment cmt">#end if uniq_table #*V</span>
608
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
609
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">val</span>
610
+ <span class="ruby-keyword kw">end</span>
611
+ </pre>
612
+ </div>
613
+ </div>
614
+ </div>
615
+
616
+ <div id="method-M000056" class="method-detail">
617
+ <a name="M000056"></a>
618
+
619
+ <div class="method-heading">
620
+ <a href="#M000056" class="method-signature">
621
+ <span class="method-name">parse_block_seq</span><span class="method-args">(seq, seq_rule, path, uniq_table)</span>
622
+ </a>
623
+ </div>
624
+
625
+ <div class="method-description">
626
+ <p><a class="source-toggle" href="#"
627
+ onclick="toggleCode('M000056-source');return false;">[Source]</a></p>
628
+ <div class="method-source-code" id="M000056-source">
629
+ <pre>
630
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 307</span>
631
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_block_seq</span>(<span class="ruby-identifier">seq</span>, <span class="ruby-identifier">seq_rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
632
+ <span class="ruby-identifier">level</span> = <span class="ruby-ivar">@column</span>
633
+ <span class="ruby-identifier">rule</span> = <span class="ruby-identifier">seq_rule</span> <span class="ruby-value">? </span><span class="ruby-identifier">seq_rule</span>.<span class="ruby-identifier">sequence</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
634
+ <span class="ruby-identifier">path</span>.<span class="ruby-identifier">push</span>(<span class="ruby-keyword kw">nil</span>)
635
+ <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
636
+ <span class="ruby-identifier">_linenum</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
637
+ <span class="ruby-identifier">_column</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
638
+ <span class="ruby-identifier">uniq_table</span> = <span class="ruby-identifier">rule</span> <span class="ruby-value">? </span><span class="ruby-identifier">rule</span>.<span class="ruby-identifier">_uniqueness_check_table</span>() <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt">#*V</span>
639
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@column</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/-\s+/</span>)
640
+ <span class="ruby-identifier">path</span>[<span class="ruby-value">-1</span>] = <span class="ruby-identifier">i</span>
641
+ <span class="ruby-identifier">skip_spaces_and_comments</span>() <span class="ruby-comment cmt">#*V</span>
642
+ <span class="ruby-identifier">_linenum2</span> = <span class="ruby-ivar">@linenum</span>
643
+ <span class="ruby-identifier">_column2</span> = <span class="ruby-ivar">@column</span>
644
+ <span class="ruby-identifier">val</span> = <span class="ruby-identifier">parse_block_value</span>(<span class="ruby-identifier">level</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">seq</span>)
645
+ <span class="ruby-identifier">add_to_seq</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">seq</span>, <span class="ruby-identifier">val</span>, <span class="ruby-identifier">_linenum2</span>, <span class="ruby-identifier">_column2</span>) <span class="ruby-comment cmt"># seq &lt;&lt; val</span>
646
+ <span class="ruby-identifier">_set_error_info</span>(<span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-comment cmt">#*V</span>
647
+ <span class="ruby-ivar">@validator</span>.<span class="ruby-identifier">_validate</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-ivar">@errors</span>, <span class="ruby-ivar">@done</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-keyword kw">false</span>) <span class="ruby-comment cmt">#*V</span>
648
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">val</span>.<span class="ruby-identifier">equal?</span>(<span class="ruby-constant">PRECEDING_ALIAS_PLACEHOLDER</span>) <span class="ruby-comment cmt">#*V</span>
649
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
650
+ <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
651
+ <span class="ruby-identifier">_linenum</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
652
+ <span class="ruby-identifier">_column</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
653
+ <span class="ruby-keyword kw">end</span>
654
+ <span class="ruby-identifier">path</span>.<span class="ruby-identifier">pop</span>()
655
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">seq</span>
656
+ <span class="ruby-keyword kw">end</span>
657
+ </pre>
658
+ </div>
659
+ </div>
660
+ </div>
661
+
662
+ <div id="method-M000060" class="method-detail">
663
+ <a name="M000060"></a>
664
+
665
+ <div class="method-heading">
666
+ <a href="#M000060" class="method-signature">
667
+ <span class="method-name">parse_block_text</span><span class="method-args">(column, rule, path, uniq_table)</span>
668
+ </a>
669
+ </div>
670
+
671
+ <div class="method-description">
672
+ <p><a class="source-toggle" href="#"
673
+ onclick="toggleCode('M000060-source');return false;">[Source]</a></p>
674
+ <div class="method-source-code" id="M000060-source">
675
+ <pre>
676
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 480</span>
677
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_block_text</span>(<span class="ruby-identifier">column</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
678
+ <span class="ruby-identifier">_linenum</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
679
+ <span class="ruby-identifier">_column</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
680
+ <span class="ruby-identifier">indicator</span> = <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/[|&gt;]/</span>)
681
+ <span class="ruby-identifier">chomping</span> = <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/[-+]/</span>)
682
+ <span class="ruby-identifier">num</span> = <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\d+/</span>)
683
+ <span class="ruby-identifier">indent</span> = <span class="ruby-identifier">num</span> <span class="ruby-value">? </span><span class="ruby-identifier">column</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">num</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
684
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/[ \t]*(.*?)(\#.*)?\r?\n/</span>) <span class="ruby-comment cmt"># /[ \t]*(\#.*)?\r?\n/</span>
685
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_syntax_error</span>(<span class="ruby-value str">&quot;Syntax Error (line break or comment are expected)&quot;</span>, <span class="ruby-identifier">path</span>)
686
+ <span class="ruby-keyword kw">end</span>
687
+ <span class="ruby-identifier">s</span> = <span class="ruby-identifier">group</span>(<span class="ruby-value">1</span>)
688
+ <span class="ruby-identifier">is_folded</span> = <span class="ruby-keyword kw">false</span>
689
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/( *)(.*?)(\r?\n)/</span>)
690
+ <span class="ruby-identifier">spaces</span> = <span class="ruby-identifier">group</span>(<span class="ruby-value">1</span>)
691
+ <span class="ruby-identifier">text</span> = <span class="ruby-identifier">group</span>(<span class="ruby-value">2</span>)
692
+ <span class="ruby-identifier">nl</span> = <span class="ruby-identifier">group</span>(<span class="ruby-value">3</span>)
693
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indent</span>.<span class="ruby-identifier">nil?</span>
694
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">spaces</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">column</span>
695
+ <span class="ruby-identifier">indent</span> = <span class="ruby-identifier">spaces</span>.<span class="ruby-identifier">length</span>
696
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
697
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">nl</span>
698
+ <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/.*?\n/</span>)
699
+ <span class="ruby-keyword kw">next</span>
700
+ <span class="ruby-keyword kw">else</span>
701
+ <span class="ruby-ivar">@diagnostic</span> = <span class="ruby-value str">'text indent in block text may be shorter than that of first line or specified column.'</span>
702
+ <span class="ruby-keyword kw">break</span>
703
+ <span class="ruby-keyword kw">end</span>
704
+ <span class="ruby-keyword kw">else</span>
705
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">spaces</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">indent</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
706
+ <span class="ruby-ivar">@diagnostic</span> = <span class="ruby-value str">'text indent in block text may be shorter than that of first line or specified column.'</span>
707
+ <span class="ruby-keyword kw">break</span>
708
+ <span class="ruby-keyword kw">end</span>
709
+ <span class="ruby-keyword kw">end</span>
710
+ <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/.*?\n/</span>)
711
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indicator</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'|'</span>
712
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">spaces</span>[<span class="ruby-identifier">indent</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">spaces</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">indent</span>
713
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">nl</span>
714
+ <span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt"># indicator == '&gt;'</span>
715
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">spaces</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">indent</span>
716
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\r?\n((\r?\n)+)\z/</span>, <span class="ruby-value str">'\1'</span>)
717
+ <span class="ruby-keyword kw">nil</span>
718
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">is_folded</span>
719
+ <span class="ruby-identifier">s</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\r?\n\z/</span>, <span class="ruby-value str">' '</span>)
720
+ <span class="ruby-keyword kw">end</span>
721
+ <span class="ruby-comment cmt">#s.sub!(/\r?\n\z/, '') if !s.sub!(/\r?\n(\r?\n)+\z/, '\1') &amp;&amp; is_folded</span>
722
+ <span class="ruby-identifier">is_folded</span> = <span class="ruby-keyword kw">true</span>
723
+ <span class="ruby-keyword kw">else</span>
724
+ <span class="ruby-identifier">is_folded</span> = <span class="ruby-keyword kw">false</span>
725
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">spaces</span>[<span class="ruby-identifier">indent</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">spaces</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">indent</span>
726
+ <span class="ruby-keyword kw">end</span>
727
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">nl</span>
728
+ <span class="ruby-keyword kw">end</span>
729
+ <span class="ruby-keyword kw">end</span>
730
+ <span class="ruby-comment cmt">## chomping</span>
731
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">chomping</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'+'</span>
732
+ <span class="ruby-keyword kw">nil</span>
733
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">chomping</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'-'</span>
734
+ <span class="ruby-identifier">s</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/(\r?\n)+\z/</span>, <span class="ruby-value str">''</span>)
735
+ <span class="ruby-keyword kw">else</span>
736
+ <span class="ruby-identifier">s</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/(\r?\n)(\r?\n)+\z/</span>, <span class="ruby-value str">'\1'</span>)
737
+ <span class="ruby-keyword kw">end</span>
738
+ <span class="ruby-comment cmt">#</span>
739
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
740
+ <span class="ruby-identifier">val</span> = <span class="ruby-identifier">s</span>
741
+ <span class="ruby-comment cmt">#_set_error_info(_linenum, _column) do #*V</span>
742
+ <span class="ruby-comment cmt"># @validator._validate_unique(val, rule, path, @errors, uniq_table) #*V</span>
743
+ <span class="ruby-comment cmt">#end if uniq_table #*V</span>
744
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">val</span>
745
+ <span class="ruby-keyword kw">end</span>
746
+ </pre>
747
+ </div>
748
+ </div>
749
+ </div>
750
+
751
+ <div id="method-M000055" class="method-detail">
752
+ <a name="M000055"></a>
753
+
754
+ <div class="method-heading">
755
+ <a href="#M000055" class="method-signature">
756
+ <span class="method-name">parse_block_value</span><span class="method-args">(level, rule, path, uniq_table, container)</span>
757
+ </a>
758
+ </div>
759
+
760
+ <div class="method-description">
761
+ <p><a class="source-toggle" href="#"
762
+ onclick="toggleCode('M000055-source');return false;">[Source]</a></p>
763
+ <div class="method-source-code" id="M000055-source">
764
+ <pre>
765
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 235</span>
766
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_block_value</span>(<span class="ruby-identifier">level</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">container</span>)
767
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
768
+ <span class="ruby-comment cmt">## nil</span>
769
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@column</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">eos?</span>
770
+ <span class="ruby-comment cmt">## anchor and alias</span>
771
+ <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>
772
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\&amp;([-\w]+)/</span>)
773
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">parse_anchor</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">container</span>)
774
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\*([-\w]+)/</span>)
775
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parse_alias</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">container</span>)
776
+ <span class="ruby-keyword kw">end</span>
777
+ <span class="ruby-comment cmt">## type</span>
778
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/!!?\w+/</span>)
779
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
780
+ <span class="ruby-keyword kw">end</span>
781
+ <span class="ruby-comment cmt">## sequence</span>
782
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/-\s+/</span>)
783
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">rule</span>.<span class="ruby-identifier">sequence</span>
784
+ <span class="ruby-comment cmt">#_validate_error(&quot;sequence is not expected.&quot;, path)</span>
785
+ <span class="ruby-identifier">rule</span> = <span class="ruby-keyword kw">nil</span>
786
+ <span class="ruby-keyword kw">end</span>
787
+ <span class="ruby-identifier">seq</span> = <span class="ruby-identifier">create_sequence</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-ivar">@linenum</span>, <span class="ruby-ivar">@column</span>)
788
+ <span class="ruby-ivar">@anchors</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">seq</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>
789
+ <span class="ruby-identifier">parse_block_seq</span>(<span class="ruby-identifier">seq</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
790
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">seq</span>
791
+ <span class="ruby-keyword kw">end</span>
792
+ <span class="ruby-comment cmt">## mapping</span>
793
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match?</span>(<span class="ruby-constant">MAPKEY_PATTERN</span>)
794
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">rule</span>.<span class="ruby-identifier">mapping</span>
795
+ <span class="ruby-comment cmt">#_validate_error(&quot;mapping is not expected.&quot;, path)</span>
796
+ <span class="ruby-identifier">rule</span> = <span class="ruby-keyword kw">nil</span>
797
+ <span class="ruby-keyword kw">end</span>
798
+ <span class="ruby-identifier">map</span> = <span class="ruby-identifier">create_mapping</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-ivar">@linenum</span>, <span class="ruby-ivar">@column</span>)
799
+ <span class="ruby-ivar">@anchors</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">map</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>
800
+ <span class="ruby-identifier">parse_block_map</span>(<span class="ruby-identifier">map</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
801
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">map</span>
802
+ <span class="ruby-keyword kw">end</span>
803
+ <span class="ruby-comment cmt">## sequence (flow-style)</span>
804
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/\[/</span>)
805
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">rule</span>.<span class="ruby-identifier">sequence</span>
806
+ <span class="ruby-comment cmt">#_validate_error(&quot;sequence is not expected.&quot;, path)</span>
807
+ <span class="ruby-identifier">rule</span> = <span class="ruby-keyword kw">nil</span>
808
+ <span class="ruby-keyword kw">end</span>
809
+ <span class="ruby-identifier">seq</span> = <span class="ruby-identifier">create_sequence</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-ivar">@linenum</span>, <span class="ruby-ivar">@column</span>)
810
+ <span class="ruby-ivar">@anchors</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">seq</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>
811
+ <span class="ruby-identifier">parse_flow_seq</span>(<span class="ruby-identifier">seq</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
812
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">seq</span>
813
+ <span class="ruby-keyword kw">end</span>
814
+ <span class="ruby-comment cmt">## mapping (flow-style)</span>
815
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/\{/</span>)
816
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">rule</span>.<span class="ruby-identifier">mapping</span>
817
+ <span class="ruby-comment cmt">#_validate_error(&quot;mapping is not expected.&quot;, path)</span>
818
+ <span class="ruby-identifier">rule</span> = <span class="ruby-keyword kw">nil</span>
819
+ <span class="ruby-keyword kw">end</span>
820
+ <span class="ruby-identifier">map</span> = <span class="ruby-identifier">create_mapping</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-ivar">@linenum</span>, <span class="ruby-ivar">@column</span>)
821
+ <span class="ruby-ivar">@anchors</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">map</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>
822
+ <span class="ruby-identifier">parse_flow_map</span>(<span class="ruby-identifier">map</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
823
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">map</span>
824
+ <span class="ruby-keyword kw">end</span>
825
+ <span class="ruby-comment cmt">## block text</span>
826
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/[|&gt;]/</span>)
827
+ <span class="ruby-identifier">text</span> = <span class="ruby-identifier">parse_block_text</span>(<span class="ruby-identifier">level</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
828
+ <span class="ruby-ivar">@anchors</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">text</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>
829
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">text</span>
830
+ <span class="ruby-keyword kw">end</span>
831
+ <span class="ruby-comment cmt">## scalar</span>
832
+ <span class="ruby-identifier">scalar</span> = <span class="ruby-identifier">parse_block_scalar</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
833
+ <span class="ruby-ivar">@anchors</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">scalar</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>
834
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">scalar</span>
835
+ <span class="ruby-keyword kw">end</span>
836
+ </pre>
837
+ </div>
838
+ </div>
839
+ </div>
840
+
841
+ <div id="method-M000051" class="method-detail">
842
+ <a name="M000051"></a>
843
+
844
+ <div class="method-heading">
845
+ <span class="method-name">parse_documents</span><span class="method-args">(input, opts={}, &amp;block)</span>
846
+ </div>
847
+
848
+ <div class="method-description">
849
+ <p>
850
+ Alias for <a href="Parser.html#M000050">parse_stream</a>
851
+ </p>
852
+ </div>
853
+ </div>
854
+
855
+ <div id="method-M000048" class="method-detail">
856
+ <a name="M000048"></a>
857
+
858
+ <div class="method-heading">
859
+ <a href="#M000048" class="method-signature">
860
+ <span class="method-name">parse_file</span><span class="method-args">(filename, opts={})</span>
861
+ </a>
862
+ </div>
863
+
864
+ <div class="method-description">
865
+ <p><a class="source-toggle" href="#"
866
+ onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
867
+ <div class="method-source-code" id="M000048-source">
868
+ <pre>
869
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 133</span>
870
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_file</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">opts</span>={})
871
+ <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:filename</span>] = <span class="ruby-identifier">filename</span>
872
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parse</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">filename</span>), <span class="ruby-identifier">opts</span>)
873
+ <span class="ruby-keyword kw">end</span>
874
+ </pre>
875
+ </div>
876
+ </div>
877
+ </div>
878
+
879
+ <div id="method-M000063" class="method-detail">
880
+ <a name="M000063"></a>
881
+
882
+ <div class="method-heading">
883
+ <a href="#M000063" class="method-signature">
884
+ <span class="method-name">parse_flow_map</span><span class="method-args">(map, map_rule, path, uniq_table)</span>
885
+ </a>
886
+ </div>
887
+
888
+ <div class="method-description">
889
+ <p><a class="source-toggle" href="#"
890
+ onclick="toggleCode('M000063-source');return false;">[Source]</a></p>
891
+ <div class="method-source-code" id="M000063-source">
892
+ <pre>
893
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 630</span>
894
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_flow_map</span>(<span class="ruby-identifier">map</span>, <span class="ruby-identifier">map_rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
895
+ <span class="ruby-comment cmt">#scan(/\{\s*/) # not work?</span>
896
+ <span class="ruby-identifier">_start_linenum</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
897
+ <span class="ruby-identifier">_start_column</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
898
+ <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\{/</span>)
899
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
900
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\}/</span>)
901
+ <span class="ruby-keyword kw">nil</span>
902
+ <span class="ruby-keyword kw">else</span>
903
+ <span class="ruby-identifier">path</span>.<span class="ruby-identifier">push</span>(<span class="ruby-keyword kw">nil</span>)
904
+ <span class="ruby-identifier">is_merged</span> = <span class="ruby-keyword kw">false</span>
905
+ <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">true</span>
906
+ <span class="ruby-identifier">_linenum</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
907
+ <span class="ruby-identifier">_column</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
908
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">MAPKEY_PATTERN</span>)
909
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_syntax_error</span>(<span class="ruby-value str">&quot;mapping key is expected.&quot;</span>, <span class="ruby-identifier">path</span>)
910
+ <span class="ruby-keyword kw">end</span>
911
+ <span class="ruby-identifier">key</span> = <span class="ruby-identifier">group</span>(<span class="ruby-value">1</span>)
912
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
913
+ <span class="ruby-identifier">_linenum2</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
914
+ <span class="ruby-identifier">_column2</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
915
+ <span class="ruby-identifier">is_merged</span> = <span class="ruby-identifier">_parse_map_value</span>(<span class="ruby-identifier">map</span>, <span class="ruby-identifier">map_rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">is_merged</span>,
916
+ <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>, <span class="ruby-identifier">_linenum2</span>, <span class="ruby-identifier">_column2</span>)
917
+ <span class="ruby-comment cmt">#skip_spaces_and_comments()</span>
918
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/,\s+/</span>)
919
+ <span class="ruby-keyword kw">end</span>
920
+ <span class="ruby-identifier">path</span>.<span class="ruby-identifier">pop</span>()
921
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\}/</span>)
922
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_syntax_error</span>(<span class="ruby-value str">&quot;flow mapping is not closed by '}'.&quot;</span>, <span class="ruby-identifier">path</span>)
923
+ <span class="ruby-keyword kw">end</span>
924
+ <span class="ruby-keyword kw">end</span>
925
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
926
+ <span class="ruby-identifier">_set_error_info</span>(<span class="ruby-identifier">_start_linenum</span>, <span class="ruby-identifier">_start_column</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-comment cmt">#*V</span>
927
+ <span class="ruby-ivar">@validator</span>.<span class="ruby-identifier">_validate_mapping_required_keys</span>(<span class="ruby-identifier">map</span>, <span class="ruby-identifier">map_rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-ivar">@errors</span>) <span class="ruby-comment cmt">#*V</span>
928
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">map_rule</span> <span class="ruby-comment cmt">#*V</span>
929
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">map</span>
930
+ <span class="ruby-keyword kw">end</span>
931
+ </pre>
932
+ </div>
933
+ </div>
934
+ </div>
935
+
936
+ <div id="method-M000064" class="method-detail">
937
+ <a name="M000064"></a>
938
+
939
+ <div class="method-heading">
940
+ <a href="#M000064" class="method-signature">
941
+ <span class="method-name">parse_flow_scalar</span><span class="method-args">(rule, path, uniq_table)</span>
942
+ </a>
943
+ </div>
944
+
945
+ <div class="method-description">
946
+ <p><a class="source-toggle" href="#"
947
+ onclick="toggleCode('M000064-source');return false;">[Source]</a></p>
948
+ <div class="method-source-code" id="M000064-source">
949
+ <pre>
950
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 669</span>
951
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_flow_scalar</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
952
+ <span class="ruby-identifier">ch</span> = <span class="ruby-identifier">peep</span>(<span class="ruby-value">1</span>)
953
+ <span class="ruby-identifier">_linenum</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
954
+ <span class="ruby-identifier">_column</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
955
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ch</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'&quot;'</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">ch</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;'&quot;</span>
956
+ <span class="ruby-identifier">val</span> = <span class="ruby-identifier">scan_string</span>()
957
+ <span class="ruby-keyword kw">else</span>
958
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/[^,\]\}\#]*/</span>)
959
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/,\S/</span>)
960
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/,\S/</span>)
961
+ <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/./</span>)
962
+ <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/[^,\]\}\#]*/</span>)
963
+ <span class="ruby-keyword kw">end</span>
964
+ <span class="ruby-keyword kw">end</span>
965
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">rstrip!</span>
966
+ <span class="ruby-identifier">val</span> = <span class="ruby-identifier">to_scalar</span>(<span class="ruby-identifier">str</span>)
967
+ <span class="ruby-keyword kw">end</span>
968
+ <span class="ruby-identifier">val</span> = <span class="ruby-identifier">create_scalar</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">val</span>, <span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>) <span class="ruby-comment cmt">#*V</span>
969
+ <span class="ruby-comment cmt">#_set_error_info(_linenum, _column) do #*V</span>
970
+ <span class="ruby-comment cmt"># @validator._validate_unique(val, rule, path, @errors, uniq_table) #*V</span>
971
+ <span class="ruby-comment cmt">#end if uniq_table #*V</span>
972
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
973
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">val</span>
974
+ <span class="ruby-keyword kw">end</span>
975
+ </pre>
976
+ </div>
977
+ </div>
978
+ </div>
979
+
980
+ <div id="method-M000062" class="method-detail">
981
+ <a name="M000062"></a>
982
+
983
+ <div class="method-heading">
984
+ <a href="#M000062" class="method-signature">
985
+ <span class="method-name">parse_flow_seq</span><span class="method-args">(seq, seq_rule, path, uniq_table)</span>
986
+ </a>
987
+ </div>
988
+
989
+ <div class="method-description">
990
+ <p><a class="source-toggle" href="#"
991
+ onclick="toggleCode('M000062-source');return false;">[Source]</a></p>
992
+ <div class="method-source-code" id="M000062-source">
993
+ <pre>
994
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 593</span>
995
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_flow_seq</span>(<span class="ruby-identifier">seq</span>, <span class="ruby-identifier">seq_rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
996
+ <span class="ruby-comment cmt">#scan(/\[\s*/)</span>
997
+ <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\[/</span>)
998
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
999
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\]/</span>)
1000
+ <span class="ruby-keyword kw">nil</span>
1001
+ <span class="ruby-keyword kw">else</span>
1002
+ <span class="ruby-identifier">rule</span> = <span class="ruby-identifier">seq_rule</span> <span class="ruby-value">? </span><span class="ruby-identifier">seq_rule</span>.<span class="ruby-identifier">sequence</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt">#*V</span>
1003
+ <span class="ruby-identifier">uniq_table</span> = <span class="ruby-identifier">rule</span> <span class="ruby-value">? </span><span class="ruby-identifier">rule</span>.<span class="ruby-identifier">_uniqueness_check_table</span>() <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt">#*V</span>
1004
+ <span class="ruby-identifier">path</span>.<span class="ruby-identifier">push</span>(<span class="ruby-keyword kw">nil</span>)
1005
+ <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1006
+ <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">true</span>
1007
+ <span class="ruby-identifier">path</span>[<span class="ruby-value">-1</span>] = <span class="ruby-identifier">i</span>
1008
+ <span class="ruby-identifier">_linenum</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
1009
+ <span class="ruby-identifier">_column</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
1010
+ <span class="ruby-identifier">val</span> = <span class="ruby-identifier">parse_flow_value</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">seq</span>)
1011
+ <span class="ruby-identifier">add_to_seq</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">seq</span>, <span class="ruby-identifier">val</span>, <span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>) <span class="ruby-comment cmt"># seq &lt;&lt; val</span>
1012
+ <span class="ruby-identifier">_set_error_info</span>(<span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-comment cmt">#*V</span>
1013
+ <span class="ruby-ivar">@validator</span>.<span class="ruby-identifier">_validate</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-ivar">@errors</span>, <span class="ruby-ivar">@done</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-keyword kw">false</span>) <span class="ruby-comment cmt">#*V</span>
1014
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">val</span>.<span class="ruby-identifier">equal?</span>(<span class="ruby-constant">PRECEDING_ALIAS_PLACEHOLDER</span>) <span class="ruby-comment cmt">#*V</span>
1015
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
1016
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/,\s+/</span>)
1017
+ <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1018
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/\]/</span>)
1019
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_syntax_error</span>(<span class="ruby-value str">&quot;sequence item required (or last comma is extra).&quot;</span>, <span class="ruby-identifier">path</span>)
1020
+ <span class="ruby-keyword kw">end</span>
1021
+ <span class="ruby-keyword kw">end</span>
1022
+ <span class="ruby-identifier">path</span>.<span class="ruby-identifier">pop</span>()
1023
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\]/</span>)
1024
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_syntax_error</span>(<span class="ruby-value str">&quot;flow sequence is not closed by ']'.&quot;</span>, <span class="ruby-identifier">path</span>)
1025
+ <span class="ruby-keyword kw">end</span>
1026
+ <span class="ruby-keyword kw">end</span>
1027
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
1028
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">seq</span>
1029
+ <span class="ruby-keyword kw">end</span>
1030
+ </pre>
1031
+ </div>
1032
+ </div>
1033
+ </div>
1034
+
1035
+ <div id="method-M000061" class="method-detail">
1036
+ <a name="M000061"></a>
1037
+
1038
+ <div class="method-heading">
1039
+ <a href="#M000061" class="method-signature">
1040
+ <span class="method-name">parse_flow_value</span><span class="method-args">(rule, path, uniq_table, container)</span>
1041
+ </a>
1042
+ </div>
1043
+
1044
+ <div class="method-description">
1045
+ <p><a class="source-toggle" href="#"
1046
+ onclick="toggleCode('M000061-source');return false;">[Source]</a></p>
1047
+ <div class="method-source-code" id="M000061-source">
1048
+ <pre>
1049
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 551</span>
1050
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_flow_value</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">container</span>)
1051
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
1052
+ <span class="ruby-comment cmt">## anchor and alias</span>
1053
+ <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>
1054
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\&amp;([-\w]+)/</span>)
1055
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">parse_anchor</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">container</span>)
1056
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\*([-\w]+)/</span>)
1057
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parse_alias</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">container</span>)
1058
+ <span class="ruby-keyword kw">end</span>
1059
+ <span class="ruby-comment cmt">## type</span>
1060
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/!!?\w+/</span>)
1061
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
1062
+ <span class="ruby-keyword kw">end</span>
1063
+ <span class="ruby-comment cmt">## sequence</span>
1064
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/\[/</span>)
1065
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">rule</span>.<span class="ruby-identifier">sequence</span> <span class="ruby-comment cmt">#*V</span>
1066
+ <span class="ruby-comment cmt">#_validate_error(&quot;sequence is not expected.&quot;, path) #*V</span>
1067
+ <span class="ruby-identifier">rule</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt">#*V</span>
1068
+ <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt">#*V</span>
1069
+ <span class="ruby-identifier">seq</span> = <span class="ruby-identifier">create_sequence</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-ivar">@linenum</span>, <span class="ruby-ivar">@column</span>)
1070
+ <span class="ruby-ivar">@anchors</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">seq</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>
1071
+ <span class="ruby-identifier">parse_flow_seq</span>(<span class="ruby-identifier">seq</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
1072
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">seq</span>
1073
+ <span class="ruby-keyword kw">end</span>
1074
+ <span class="ruby-comment cmt">## mapping</span>
1075
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/\{/</span>)
1076
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">rule</span>.<span class="ruby-identifier">mapping</span> <span class="ruby-comment cmt">#*V</span>
1077
+ <span class="ruby-comment cmt">#_validate_error(&quot;mapping is not expected.&quot;, path) #*V</span>
1078
+ <span class="ruby-identifier">rule</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt">#*V</span>
1079
+ <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt">#*V</span>
1080
+ <span class="ruby-identifier">map</span> = <span class="ruby-identifier">create_mapping</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-ivar">@linenum</span>, <span class="ruby-ivar">@column</span>)
1081
+ <span class="ruby-ivar">@anchors</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">map</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>
1082
+ <span class="ruby-identifier">parse_flow_map</span>(<span class="ruby-identifier">map</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
1083
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">map</span>
1084
+ <span class="ruby-keyword kw">end</span>
1085
+ <span class="ruby-comment cmt">## scalar</span>
1086
+ <span class="ruby-identifier">scalar</span> = <span class="ruby-identifier">parse_flow_scalar</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>)
1087
+ <span class="ruby-ivar">@anchors</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">scalar</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>
1088
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">scalar</span>
1089
+ <span class="ruby-keyword kw">end</span>
1090
+ </pre>
1091
+ </div>
1092
+ </div>
1093
+ </div>
1094
+
1095
+ <div id="method-M000049" class="method-detail">
1096
+ <a name="M000049"></a>
1097
+
1098
+ <div class="method-heading">
1099
+ <a href="#M000049" class="method-signature">
1100
+ <span class="method-name">parse_next</span><span class="method-args">()</span>
1101
+ </a>
1102
+ </div>
1103
+
1104
+ <div class="method-description">
1105
+ <p><a class="source-toggle" href="#"
1106
+ onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
1107
+ <div class="method-source-code" id="M000049-source">
1108
+ <pre>
1109
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 139</span>
1110
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_next</span>()
1111
+ <span class="ruby-identifier">reset_parser</span>()
1112
+ <span class="ruby-identifier">path</span> = []
1113
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
1114
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">document_start?</span>()
1115
+ <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/.*\n/</span>)
1116
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
1117
+ <span class="ruby-keyword kw">end</span>
1118
+ <span class="ruby-identifier">_linenum</span> = <span class="ruby-ivar">@linenum</span> <span class="ruby-comment cmt">#*V</span>
1119
+ <span class="ruby-identifier">_column</span> = <span class="ruby-ivar">@column</span> <span class="ruby-comment cmt">#*V</span>
1120
+ <span class="ruby-identifier">rule</span> = <span class="ruby-ivar">@validator</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@validator</span>.<span class="ruby-identifier">rule</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt">#*V</span>
1121
+ <span class="ruby-identifier">uniq_table</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt">#*V</span>
1122
+ <span class="ruby-identifier">parent</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt">#*V</span>
1123
+ <span class="ruby-identifier">val</span> = <span class="ruby-identifier">parse_block_value</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-identifier">parent</span>)
1124
+ <span class="ruby-identifier">_set_error_info</span>(<span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-comment cmt">#*V</span>
1125
+ <span class="ruby-ivar">@validator</span>.<span class="ruby-identifier">_validate</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">rule</span>, [], <span class="ruby-ivar">@errors</span>, <span class="ruby-ivar">@done</span>, <span class="ruby-identifier">uniq_table</span>, <span class="ruby-keyword kw">false</span>) <span class="ruby-comment cmt">#*V</span>
1126
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span> <span class="ruby-comment cmt">#*V</span>
1127
+ <span class="ruby-identifier">resolve_preceding_aliases</span>(<span class="ruby-identifier">val</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@preceding_alias</span>
1128
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">eos?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">document_start?</span>() <span class="ruby-operator">||</span> <span class="ruby-identifier">stream_end?</span>()
1129
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_syntax_error</span>(<span class="ruby-value str">&quot;document end expected (maybe invalid tab char found).&quot;</span>, <span class="ruby-identifier">path</span>)
1130
+ <span class="ruby-keyword kw">end</span>
1131
+ <span class="ruby-ivar">@doc</span> = <span class="ruby-identifier">val</span>
1132
+ <span class="ruby-ivar">@location_table</span>[<span class="ruby-value">-1</span>] = [<span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>]
1133
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">val</span>
1134
+ <span class="ruby-keyword kw">end</span>
1135
+ </pre>
1136
+ </div>
1137
+ </div>
1138
+ </div>
1139
+
1140
+ <div id="method-M000050" class="method-detail">
1141
+ <a name="M000050"></a>
1142
+
1143
+ <div class="method-heading">
1144
+ <a href="#M000050" class="method-signature">
1145
+ <span class="method-name">parse_stream</span><span class="method-args">(input, opts={}) {|ydoc)| ...}</span>
1146
+ </a>
1147
+ </div>
1148
+
1149
+ <div class="method-description">
1150
+ <p><a class="source-toggle" href="#"
1151
+ onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
1152
+ <div class="method-source-code" id="M000050-source">
1153
+ <pre>
1154
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 166</span>
1155
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_stream</span>(<span class="ruby-identifier">input</span>, <span class="ruby-identifier">opts</span>={}, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1156
+ <span class="ruby-identifier">reset_scanner</span>(<span class="ruby-identifier">input</span>, <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:filename</span>], <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:untabify</span>])
1157
+ <span class="ruby-identifier">ydocs</span> = <span class="ruby-identifier">block_given?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> []
1158
+ <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">true</span>
1159
+ <span class="ruby-identifier">ydoc</span> = <span class="ruby-identifier">parse_next</span>()
1160
+ <span class="ruby-identifier">ydocs</span> <span class="ruby-value">? </span>(<span class="ruby-identifier">ydocs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">ydoc</span>) <span class="ruby-operator">:</span> (<span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">ydoc</span>)
1161
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">eos?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">stream_end?</span>()
1162
+ <span class="ruby-identifier">document_start?</span>() <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;** internal error&quot;</span>
1163
+ <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/.*\n/</span>)
1164
+ <span class="ruby-keyword kw">end</span>
1165
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">ydocs</span>
1166
+ <span class="ruby-keyword kw">end</span>
1167
+ </pre>
1168
+ </div>
1169
+ </div>
1170
+ </div>
1171
+
1172
+ <div id="method-M000041" class="method-detail">
1173
+ <a name="M000041"></a>
1174
+
1175
+ <div class="method-heading">
1176
+ <a href="#M000041" class="method-signature">
1177
+ <span class="method-name">reset_parser</span><span class="method-args">()</span>
1178
+ </a>
1179
+ </div>
1180
+
1181
+ <div class="method-description">
1182
+ <p><a class="source-toggle" href="#"
1183
+ onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
1184
+ <div class="method-source-code" id="M000041-source">
1185
+ <pre>
1186
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 60</span>
1187
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset_parser</span>()
1188
+ <span class="ruby-ivar">@anchors</span> = {}
1189
+ <span class="ruby-ivar">@errors</span> = []
1190
+ <span class="ruby-ivar">@done</span> = {}
1191
+ <span class="ruby-ivar">@preceding_aliases</span> = []
1192
+ <span class="ruby-ivar">@location_table</span> = {} <span class="ruby-comment cmt"># object_id -&gt; sequence or mapping</span>
1193
+ <span class="ruby-ivar">@doc</span> = <span class="ruby-keyword kw">nil</span>
1194
+ <span class="ruby-keyword kw">end</span>
1195
+ </pre>
1196
+ </div>
1197
+ </div>
1198
+ </div>
1199
+
1200
+ <div id="method-M000054" class="method-detail">
1201
+ <a name="M000054"></a>
1202
+
1203
+ <div class="method-heading">
1204
+ <a href="#M000054" class="method-signature">
1205
+ <span class="method-name">resolve_preceding_aliases</span><span class="method-args">(val)</span>
1206
+ </a>
1207
+ </div>
1208
+
1209
+ <div class="method-description">
1210
+ <p><a class="source-toggle" href="#"
1211
+ onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
1212
+ <div class="method-source-code" id="M000054-source">
1213
+ <pre>
1214
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 215</span>
1215
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resolve_preceding_aliases</span>(<span class="ruby-identifier">val</span>)
1216
+ <span class="ruby-ivar">@preceding_aliases</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">container</span>, <span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span><span class="ruby-operator">|</span>
1217
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@anchors</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">name</span>)
1218
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_syntax_error</span>(<span class="ruby-node">&quot;*#{name}: anchor not found.&quot;</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>)
1219
+ <span class="ruby-keyword kw">end</span>
1220
+ <span class="ruby-identifier">key</span> = <span class="ruby-identifier">path</span>[<span class="ruby-value">-1</span>]
1221
+ <span class="ruby-identifier">val</span> = <span class="ruby-ivar">@anchors</span>[<span class="ruby-identifier">name</span>]
1222
+ <span class="ruby-identifier">raise</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-operator">!</span><span class="ruby-identifier">container</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'[]'</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">container</span>[<span class="ruby-identifier">key</span>].<span class="ruby-identifier">equal?</span>(<span class="ruby-constant">PRECEDING_ALIAS_PLACEHOLDER</span>)
1223
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">container</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
1224
+ <span class="ruby-identifier">container</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">val</span>
1225
+ <span class="ruby-keyword kw">else</span>
1226
+ <span class="ruby-identifier">put_to_map</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">container</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>)
1227
+ <span class="ruby-keyword kw">end</span>
1228
+ <span class="ruby-identifier">_set_error_info</span>(<span class="ruby-identifier">_linenum</span>, <span class="ruby-identifier">_column</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-comment cmt">#*V</span>
1229
+ <span class="ruby-ivar">@validator</span>.<span class="ruby-identifier">_validate</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">path</span>, <span class="ruby-ivar">@errors</span>, <span class="ruby-ivar">@done</span>, <span class="ruby-keyword kw">false</span>) <span class="ruby-comment cmt">#*V</span>
1230
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span> <span class="ruby-comment cmt">#*V</span>
1231
+ <span class="ruby-keyword kw">end</span>
1232
+ <span class="ruby-keyword kw">end</span>
1233
+ </pre>
1234
+ </div>
1235
+ </div>
1236
+ </div>
1237
+
1238
+ <div id="method-M000073" class="method-detail">
1239
+ <a name="M000073"></a>
1240
+
1241
+ <div class="method-heading">
1242
+ <a href="#M000073" class="method-signature">
1243
+ <span class="method-name">set_errors_linenum</span><span class="method-args">(errors)</span>
1244
+ </a>
1245
+ </div>
1246
+
1247
+ <div class="method-description">
1248
+ <p><a class="source-toggle" href="#"
1249
+ onclick="toggleCode('M000073-source');return false;">[Source]</a></p>
1250
+ <div class="method-source-code" id="M000073-source">
1251
+ <pre>
1252
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 830</span>
1253
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_errors_linenum</span>(<span class="ruby-identifier">errors</span>)
1254
+ <span class="ruby-identifier">errors</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">error</span><span class="ruby-operator">|</span>
1255
+ <span class="ruby-identifier">error</span>.<span class="ruby-identifier">linenum</span>, <span class="ruby-identifier">error</span>.<span class="ruby-identifier">column</span> = <span class="ruby-identifier">location</span>(<span class="ruby-identifier">error</span>.<span class="ruby-identifier">path</span>)
1256
+ <span class="ruby-keyword kw">end</span>
1257
+ <span class="ruby-keyword kw">end</span>
1258
+ </pre>
1259
+ </div>
1260
+ </div>
1261
+ </div>
1262
+
1263
+ <div id="method-M000043" class="method-detail">
1264
+ <a name="M000043"></a>
1265
+
1266
+ <div class="method-heading">
1267
+ <a href="#M000043" class="method-signature">
1268
+ <span class="method-name">skip_spaces_and_comments</span><span class="method-args">()</span>
1269
+ </a>
1270
+ </div>
1271
+
1272
+ <div class="method-description">
1273
+ <p><a class="source-toggle" href="#"
1274
+ onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
1275
+ <div class="method-source-code" id="M000043-source">
1276
+ <pre>
1277
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 103</span>
1278
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">skip_spaces_and_comments</span>()
1279
+ <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\s+/</span>)
1280
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/\#/</span>)
1281
+ <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/.*?\n/</span>)
1282
+ <span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\s+/</span>)
1283
+ <span class="ruby-keyword kw">end</span>
1284
+ <span class="ruby-keyword kw">end</span>
1285
+ </pre>
1286
+ </div>
1287
+ </div>
1288
+ </div>
1289
+
1290
+ <div id="method-M000045" class="method-detail">
1291
+ <a name="M000045"></a>
1292
+
1293
+ <div class="method-heading">
1294
+ <a href="#M000045" class="method-signature">
1295
+ <span class="method-name">stream_end?</span><span class="method-args">()</span>
1296
+ </a>
1297
+ </div>
1298
+
1299
+ <div class="method-description">
1300
+ <p><a class="source-toggle" href="#"
1301
+ onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
1302
+ <div class="method-source-code" id="M000045-source">
1303
+ <pre>
1304
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 117</span>
1305
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stream_end?</span>()
1306
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">match?</span>(<span class="ruby-regexp re">/\.\.\.\s/</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@column</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
1307
+ <span class="ruby-keyword kw">end</span>
1308
+ </pre>
1309
+ </div>
1310
+ </div>
1311
+ </div>
1312
+
1313
+ <div id="method-M000065" class="method-detail">
1314
+ <a name="M000065"></a>
1315
+
1316
+ <div class="method-heading">
1317
+ <a href="#M000065" class="method-signature">
1318
+ <span class="method-name">to_scalar</span><span class="method-args">(str)</span>
1319
+ </a>
1320
+ </div>
1321
+
1322
+ <div class="method-description">
1323
+ <p><a class="source-toggle" href="#"
1324
+ onclick="toggleCode('M000065-source');return false;">[Source]</a></p>
1325
+ <div class="method-source-code" id="M000065-source">
1326
+ <pre>
1327
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 698</span>
1328
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_scalar</span>(<span class="ruby-identifier">str</span>)
1329
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">str</span>
1330
+ <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span> ; <span class="ruby-identifier">val</span> = <span class="ruby-keyword kw">nil</span>
1331
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A-?\d+\.\d+\z/</span> ; <span class="ruby-identifier">val</span> = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">to_f</span>
1332
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A-?\d+\z/</span> ; <span class="ruby-identifier">val</span> = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">to_i</span>
1333
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A(true|yes)\z/</span> ; <span class="ruby-identifier">val</span> = <span class="ruby-keyword kw">true</span>
1334
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A(false|no)\z/</span> ; <span class="ruby-identifier">val</span> = <span class="ruby-keyword kw">false</span>
1335
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A(null|~)\z/</span> ; <span class="ruby-identifier">val</span> = <span class="ruby-keyword kw">nil</span>
1336
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A&quot;(.*)&quot;\z/</span> ; <span class="ruby-identifier">val</span> = <span class="ruby-identifier">$1</span>
1337
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A'(.*)'\z/</span> ; <span class="ruby-identifier">val</span> = <span class="ruby-identifier">$1</span>
1338
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A:(\w+)\z/</span> ; <span class="ruby-identifier">val</span> = <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">intern</span>
1339
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A(\d\d\d\d)-(\d\d)-(\d\d)(?: (\d\d):(\d\d):(\d\d))?\z/</span>
1340
+ <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span> = <span class="ruby-identifier">$1</span>, <span class="ruby-identifier">$2</span>, <span class="ruby-identifier">$3</span>, <span class="ruby-identifier">$4</span>, <span class="ruby-identifier">$5</span>, <span class="ruby-identifier">$6</span>
1341
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hour</span>
1342
+ <span class="ruby-identifier">val</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">mktime</span>(<span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>)
1343
+ <span class="ruby-keyword kw">else</span>
1344
+ <span class="ruby-identifier">val</span> = <span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">year</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">month</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">day</span>.<span class="ruby-identifier">to_i</span>)
1345
+ <span class="ruby-keyword kw">end</span>
1346
+ <span class="ruby-comment cmt">## or</span>
1347
+ <span class="ruby-comment cmt">#params = [$1, $2, $3, $4, $5, $6]</span>
1348
+ <span class="ruby-comment cmt">#val = Time.mktime(*params)</span>
1349
+ <span class="ruby-keyword kw">else</span>
1350
+ <span class="ruby-identifier">val</span> = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">str</span>
1351
+ <span class="ruby-keyword kw">end</span>
1352
+ <span class="ruby-identifier">skip_spaces_and_comments</span>()
1353
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">val</span>
1354
+ <span class="ruby-keyword kw">end</span>
1355
+ </pre>
1356
+ </div>
1357
+ </div>
1358
+ </div>
1359
+
1360
+ <h3 class="section-bar">Protected Instance methods</h3>
1361
+
1362
+ <div id="method-M000071" class="method-detail">
1363
+ <a name="M000071"></a>
1364
+
1365
+ <div class="method-heading">
1366
+ <a href="#M000071" class="method-signature">
1367
+ <span class="method-name">_getclass</span><span class="method-args">(classname)</span>
1368
+ </a>
1369
+ </div>
1370
+
1371
+ <div class="method-description">
1372
+ <p><a class="source-toggle" href="#"
1373
+ onclick="toggleCode('M000071-source');return false;">[Source]</a></p>
1374
+ <div class="method-source-code" id="M000071-source">
1375
+ <pre>
1376
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 779</span>
1377
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_getclass</span>(<span class="ruby-identifier">classname</span>)
1378
+ <span class="ruby-identifier">mod</span> = <span class="ruby-constant">Object</span>
1379
+ <span class="ruby-identifier">classname</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/::/</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">modname</span><span class="ruby-operator">|</span>
1380
+ <span class="ruby-identifier">mod</span> = <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">const_get</span>(<span class="ruby-identifier">modname</span>) <span class="ruby-comment cmt"># raises NameError when module not found</span>
1381
+ <span class="ruby-keyword kw">end</span>
1382
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">mod</span>
1383
+ <span class="ruby-keyword kw">end</span>
1384
+ </pre>
1385
+ </div>
1386
+ </div>
1387
+ </div>
1388
+
1389
+ <div id="method-M000069" class="method-detail">
1390
+ <a name="M000069"></a>
1391
+
1392
+ <div class="method-heading">
1393
+ <a href="#M000069" class="method-signature">
1394
+ <span class="method-name">add_to_seq</span><span class="method-args">(rule, seq, val, linenum, column)</span>
1395
+ </a>
1396
+ </div>
1397
+
1398
+ <div class="method-description">
1399
+ <p><a class="source-toggle" href="#"
1400
+ onclick="toggleCode('M000069-source');return false;">[Source]</a></p>
1401
+ <div class="method-source-code" id="M000069-source">
1402
+ <pre>
1403
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 758</span>
1404
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_to_seq</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">seq</span>, <span class="ruby-identifier">val</span>, <span class="ruby-identifier">linenum</span>, <span class="ruby-identifier">column</span>)
1405
+ <span class="ruby-identifier">seq</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">val</span>
1406
+ <span class="ruby-ivar">@location_table</span>[<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">__id__</span>] <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">linenum</span>, <span class="ruby-identifier">column</span>]
1407
+ <span class="ruby-keyword kw">end</span>
1408
+ </pre>
1409
+ </div>
1410
+ </div>
1411
+ </div>
1412
+
1413
+ <div id="method-M000067" class="method-detail">
1414
+ <a name="M000067"></a>
1415
+
1416
+ <div class="method-heading">
1417
+ <a href="#M000067" class="method-signature">
1418
+ <span class="method-name">create_mapping</span><span class="method-args">(rule, linenum, column)</span>
1419
+ </a>
1420
+ </div>
1421
+
1422
+ <div class="method-description">
1423
+ <p><a class="source-toggle" href="#"
1424
+ onclick="toggleCode('M000067-source');return false;">[Source]</a></p>
1425
+ <div class="method-source-code" id="M000067-source">
1426
+ <pre>
1427
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 739</span>
1428
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_mapping</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">linenum</span>, <span class="ruby-identifier">column</span>)
1429
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">rule</span>.<span class="ruby-identifier">classobj</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@data_binding</span>
1430
+ <span class="ruby-identifier">classobj</span> = <span class="ruby-identifier">rule</span>.<span class="ruby-identifier">classobj</span>
1431
+ <span class="ruby-identifier">map</span> = <span class="ruby-identifier">classobj</span>.<span class="ruby-identifier">new</span>
1432
+ <span class="ruby-keyword kw">else</span>
1433
+ <span class="ruby-identifier">classobj</span> = <span class="ruby-keyword kw">nil</span>
1434
+ <span class="ruby-identifier">map</span> = <span class="ruby-ivar">@mapping_class</span>.<span class="ruby-identifier">new</span> <span class="ruby-comment cmt"># {}</span>
1435
+ <span class="ruby-keyword kw">end</span>
1436
+ <span class="ruby-ivar">@location_table</span>[<span class="ruby-identifier">map</span>.<span class="ruby-identifier">__id__</span>] = <span class="ruby-identifier">hash</span> = {}
1437
+ <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">:classobj</span>] = <span class="ruby-identifier">classobj</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">classobj</span>
1438
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">map</span>
1439
+ <span class="ruby-keyword kw">end</span>
1440
+ </pre>
1441
+ </div>
1442
+ </div>
1443
+ </div>
1444
+
1445
+ <div id="method-M000068" class="method-detail">
1446
+ <a name="M000068"></a>
1447
+
1448
+ <div class="method-heading">
1449
+ <a href="#M000068" class="method-signature">
1450
+ <span class="method-name">create_scalar</span><span class="method-args">(rule, value, linenum, column)</span>
1451
+ </a>
1452
+ </div>
1453
+
1454
+ <div class="method-description">
1455
+ <p><a class="source-toggle" href="#"
1456
+ onclick="toggleCode('M000068-source');return false;">[Source]</a></p>
1457
+ <div class="method-source-code" id="M000068-source">
1458
+ <pre>
1459
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 753</span>
1460
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_scalar</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">linenum</span>, <span class="ruby-identifier">column</span>)
1461
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">value</span>
1462
+ <span class="ruby-keyword kw">end</span>
1463
+ </pre>
1464
+ </div>
1465
+ </div>
1466
+ </div>
1467
+
1468
+ <div id="method-M000066" class="method-detail">
1469
+ <a name="M000066"></a>
1470
+
1471
+ <div class="method-heading">
1472
+ <a href="#M000066" class="method-signature">
1473
+ <span class="method-name">create_sequence</span><span class="method-args">(rule, linenum, column)</span>
1474
+ </a>
1475
+ </div>
1476
+
1477
+ <div class="method-description">
1478
+ <p><a class="source-toggle" href="#"
1479
+ onclick="toggleCode('M000066-source');return false;">[Source]</a></p>
1480
+ <div class="method-source-code" id="M000066-source">
1481
+ <pre>
1482
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 732</span>
1483
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_sequence</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">linenum</span>, <span class="ruby-identifier">column</span>)
1484
+ <span class="ruby-identifier">seq</span> = <span class="ruby-ivar">@sequence_class</span>.<span class="ruby-identifier">new</span>
1485
+ <span class="ruby-ivar">@location_table</span>[<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">__id__</span>] = []
1486
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">seq</span>
1487
+ <span class="ruby-keyword kw">end</span>
1488
+ </pre>
1489
+ </div>
1490
+ </div>
1491
+ </div>
1492
+
1493
+ <div id="method-M000070" class="method-detail">
1494
+ <a name="M000070"></a>
1495
+
1496
+ <div class="method-heading">
1497
+ <a href="#M000070" class="method-signature">
1498
+ <span class="method-name">put_to_map</span><span class="method-args">(rule, map, key, val, linenum, column)</span>
1499
+ </a>
1500
+ </div>
1501
+
1502
+ <div class="method-description">
1503
+ <p><a class="source-toggle" href="#"
1504
+ onclick="toggleCode('M000070-source');return false;">[Source]</a></p>
1505
+ <div class="method-source-code" id="M000070-source">
1506
+ <pre>
1507
+ <span class="ruby-comment cmt"># File kwalify/parser/yaml.rb, line 764</span>
1508
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">put_to_map</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">map</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-identifier">linenum</span>, <span class="ruby-identifier">column</span>)
1509
+ <span class="ruby-comment cmt">#if map.is_a?(Hash)</span>
1510
+ <span class="ruby-comment cmt"># map[key] = val</span>
1511
+ <span class="ruby-comment cmt">#elsif map.respond_to?(name=&quot;#{key}=&quot;)</span>
1512
+ <span class="ruby-comment cmt"># map.__send__(name, val)</span>
1513
+ <span class="ruby-comment cmt">#elsif map.respond_to?('[]=')</span>
1514
+ <span class="ruby-comment cmt"># map[key] = val</span>
1515
+ <span class="ruby-comment cmt">#else</span>
1516
+ <span class="ruby-comment cmt"># map.instance_variable_set(&quot;@#{key}&quot;, val)</span>
1517
+ <span class="ruby-comment cmt">#end</span>
1518
+ <span class="ruby-identifier">map</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">val</span>
1519
+ <span class="ruby-ivar">@location_table</span>[<span class="ruby-identifier">map</span>.<span class="ruby-identifier">__id__</span>][<span class="ruby-identifier">key</span>] = [<span class="ruby-identifier">linenum</span>, <span class="ruby-identifier">column</span>]
1520
+ <span class="ruby-keyword kw">end</span>
1521
+ </pre>
1522
+ </div>
1523
+ </div>
1524
+ </div>
1525
+
1526
+
1527
+ </div>
1528
+
1529
+
1530
+ </div>
1531
+
1532
+
1533
+ <div id="validator-badges">
1534
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1535
+ </div>
1536
+
1537
+ </body>
1538
+ </html>