skylinecms 3.1.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (540) hide show
  1. data/.gitignore +5 -0
  2. data/CHANGELOG +51 -1
  3. data/Gemfile +8 -0
  4. data/Rakefile +0 -43
  5. data/app/controllers/skyline/application_controller.rb +30 -26
  6. data/app/controllers/skyline/articles_controller.rb +8 -28
  7. data/app/controllers/skyline/authentications_controller.rb +6 -8
  8. data/app/controllers/skyline/browser/links_controller.rb +12 -8
  9. data/app/controllers/skyline/browser/tabs/linkables_controller.rb +9 -0
  10. data/app/controllers/skyline/browser/tabs/media_library/media_files_controller.rb +0 -12
  11. data/app/controllers/skyline/content/editors/editable_list_controller.rb +0 -4
  12. data/app/controllers/skyline/content/editors/joinable_list_controller.rb +1 -19
  13. data/app/controllers/skyline/content_controller.rb +14 -30
  14. data/app/controllers/skyline/content_items_controller.rb +3 -9
  15. data/app/controllers/skyline/content_sections_controller.rb +3 -10
  16. data/app/controllers/skyline/link_section_links_controller.rb +2 -10
  17. data/app/controllers/skyline/media/data_controller.rb +24 -14
  18. data/app/controllers/skyline/media/dirs_controller.rb +12 -26
  19. data/app/controllers/skyline/media/files_controller.rb +12 -28
  20. data/app/controllers/skyline/publications_controller.rb +0 -12
  21. data/app/controllers/skyline/published_publications_controller.rb +0 -4
  22. data/app/controllers/skyline/sections_controller.rb +4 -18
  23. data/app/controllers/skyline/site/media_files_data_controller.rb +11 -13
  24. data/app/controllers/skyline/site/pages_controller.rb +4 -3
  25. data/app/controllers/skyline/skyline2_controller.rb +1 -1
  26. data/app/controllers/skyline/users_controller.rb +7 -31
  27. data/app/controllers/skyline/variant_current_editor_controller.rb +5 -5
  28. data/app/controllers/skyline/variants_controller.rb +3 -3
  29. data/app/helpers/skyline/application_helper.rb +16 -5
  30. data/app/helpers/skyline/button_helper.rb +12 -18
  31. data/app/helpers/skyline/content_helper.rb +11 -11
  32. data/app/helpers/skyline/dialog_helper.rb +3 -2
  33. data/app/helpers/skyline/editors/checkable_list.rb +4 -2
  34. data/app/helpers/skyline/editors/date_time.rb +1 -1
  35. data/app/helpers/skyline/editors/display.rb +1 -1
  36. data/app/helpers/skyline/editors/editable_list.rb +13 -8
  37. data/app/helpers/skyline/editors/editor.rb +10 -10
  38. data/app/helpers/skyline/editors/list.rb +2 -2
  39. data/app/helpers/skyline/editors/page_browser.rb +1 -0
  40. data/app/helpers/skyline/editors/wysiwyg.rb +2 -3
  41. data/app/helpers/skyline/form_helper.rb +36 -0
  42. data/app/helpers/skyline/media/files_helper.rb +1 -1
  43. data/app/helpers/skyline/message_generator.rb +13 -4
  44. data/app/helpers/skyline/pages_helper.rb +1 -1
  45. data/app/helpers/skyline/plugin_helper.rb +1 -1
  46. data/app/helpers/skyline/presenters/presenter.rb +12 -8
  47. data/app/helpers/skyline/ref_object_helper.rb +9 -7
  48. data/app/helpers/skyline/translation_helper.rb +1 -1
  49. data/app/helpers/skyline/tree_helper.rb +1 -3
  50. data/app/middleware/skyline/flash_session_cookie_middleware.rb +6 -1
  51. data/app/middleware/skyline/plugins_loader_middleware.rb +1 -1
  52. data/app/middleware/skyline/sprockets_middleware.rb +1 -1
  53. data/app/models/skyline/article.rb +94 -26
  54. data/app/models/skyline/article_version.rb +22 -9
  55. data/app/models/skyline/image_ref.rb +1 -1
  56. data/app/models/skyline/inline_ref.rb +78 -62
  57. data/app/models/skyline/link_ref.rb +1 -1
  58. data/app/models/skyline/media_cache.rb +4 -2
  59. data/app/models/skyline/media_file.rb +2 -5
  60. data/app/models/skyline/media_node.rb +2 -2
  61. data/app/models/skyline/object_ref.rb +2 -2
  62. data/app/models/skyline/page.rb +8 -6
  63. data/app/models/skyline/page_fragment.rb +4 -2
  64. data/app/models/skyline/publication.rb +1 -1
  65. data/app/models/skyline/sections/content_collection_section.rb +1 -1
  66. data/app/models/skyline/sections/link_section.rb +1 -1
  67. data/app/models/skyline/user.rb +17 -7
  68. data/app/models/skyline/user_preference.rb +1 -1
  69. data/app/models/skyline/variant.rb +11 -5
  70. data/app/templates/skyline/page/default/index.html.erb +1 -1
  71. data/app/templates/skyline/sections/raw_section/default/index.html.erb +1 -1
  72. data/app/templates/skyline/sections/wysiwyg_section/default/index.html.erb +1 -1
  73. data/app/views/skyline/articles/_currently_editing.html.erb +1 -1
  74. data/app/views/skyline/articles/_meta.html.erb +24 -11
  75. data/app/views/skyline/articles/_security.html.erb +2 -2
  76. data/app/views/skyline/articles/_takeover_action.html.erb +1 -1
  77. data/app/views/skyline/articles/edit.html.erb +29 -16
  78. data/app/views/skyline/articles/edit_preview_only.html.erb +2 -2
  79. data/app/views/skyline/articles/index.html.erb +2 -2
  80. data/app/views/skyline/articles/page/_header.html.erb +1 -1
  81. data/app/views/skyline/articles/page/_index.html.erb +9 -3
  82. data/app/views/skyline/articles/page_fragment/_index.html.erb +7 -2
  83. data/app/views/skyline/articles/update.js.erb +20 -0
  84. data/app/views/skyline/authentications/new.html.erb +1 -1
  85. data/app/views/skyline/browser/links/_index.html.erb +2 -0
  86. data/app/views/skyline/browser/tabs/linkables/_index.html.erb +29 -0
  87. data/app/views/skyline/browser/tabs/linkables/_show.html.erb +67 -0
  88. data/app/views/skyline/browser/tabs/linkables/show.js.erb +4 -0
  89. data/app/views/skyline/browser/tabs/media_library/_index.html.erb +2 -2
  90. data/app/views/skyline/browser/tabs/media_library/media_files/_index.html.erb +4 -35
  91. data/app/views/skyline/browser/tabs/media_library/media_files/_show.html.erb +1 -3
  92. data/app/views/skyline/browser/tabs/media_library/media_files/index.js.erb +1 -0
  93. data/app/views/skyline/browser/tabs/media_library/media_files/show.js.erb +1 -0
  94. data/app/views/skyline/browser/tabs/pages/_index.html.erb +1 -1
  95. data/app/views/skyline/content/_add.rhtml +6 -1
  96. data/app/views/skyline/content/_filter.rhtml +1 -1
  97. data/app/views/skyline/content/_import.html.erb +1 -1
  98. data/app/views/skyline/content/_index.html.erb +2 -2
  99. data/app/views/skyline/content/_meta.html.erb +2 -2
  100. data/app/views/skyline/content/create.rhtml +1 -1
  101. data/app/views/skyline/content/edit.rhtml +1 -1
  102. data/app/views/skyline/content/editors/editable_list/new.js.erb +2 -0
  103. data/app/views/skyline/content/editors/joinable_list/_add.html.erb +17 -10
  104. data/app/views/skyline/content/editors/joinable_list/_list.html.erb +24 -8
  105. data/app/views/skyline/content/editors/joinable_list/cancel.js.erb +1 -0
  106. data/app/views/skyline/content/editors/joinable_list/index.js.erb +1 -0
  107. data/app/views/skyline/content/editors/joinable_list/new.js.erb +5 -0
  108. data/app/views/skyline/content/field.js.erb +2 -0
  109. data/app/views/skyline/content/import.js.erb +4 -0
  110. data/app/views/skyline/content/order.js.erb +6 -0
  111. data/app/views/skyline/content/presenters/_table.html.erb +1 -1
  112. data/app/views/skyline/content_items/_content_item.html.erb +2 -2
  113. data/app/views/skyline/content_items/new.js.erb +6 -0
  114. data/app/views/skyline/content_sections/_tags.html.erb +2 -2
  115. data/app/views/skyline/content_sections/new.js.erb +6 -0
  116. data/app/views/skyline/link_section_links/_form.html.erb +1 -1
  117. data/app/views/skyline/link_section_links/new.js.erb +4 -0
  118. data/app/views/skyline/locales/show.js.erb +3 -3
  119. data/app/views/skyline/media/dirs/_edit.html.erb +9 -7
  120. data/app/views/skyline/media/dirs/edit.js.erb +1 -0
  121. data/app/views/skyline/media/dirs/index.html.erb +16 -6
  122. data/app/views/skyline/media/dirs/index.js.erb +6 -0
  123. data/app/views/skyline/media/dirs/show.js.erb +5 -0
  124. data/app/views/skyline/media/files/_edit.html.erb +13 -11
  125. data/app/views/skyline/media/files/_index.html.erb +2 -2
  126. data/app/views/skyline/media/files/_new.html.erb +2 -2
  127. data/app/views/skyline/media/files/edit.js.erb +4 -0
  128. data/app/views/skyline/media/files/index.js.erb +4 -0
  129. data/app/views/skyline/media/files/update.js.erb +8 -0
  130. data/app/views/skyline/publications/_index.html.erb +2 -2
  131. data/app/views/skyline/publications/index.js.erb +9 -0
  132. data/app/views/skyline/sections/_content_collection_section.html.erb +6 -6
  133. data/app/views/skyline/sections/_content_item_section.html.erb +1 -1
  134. data/app/views/skyline/sections/_form.html.erb +4 -4
  135. data/app/views/skyline/sections/_link_section.html.erb +6 -1
  136. data/app/views/skyline/sections/_splitter_section.html.erb +1 -1
  137. data/app/views/skyline/sections/_wysiwyg_section.html.erb +2 -2
  138. data/app/views/skyline/sections/new.js.erb +12 -0
  139. data/app/views/skyline/settings/edit.html.erb +1 -1
  140. data/app/views/skyline/shared/_head.html.erb +3 -0
  141. data/app/views/skyline/shared/_header_area.html.erb +5 -5
  142. data/app/views/skyline/users/_edit.html.erb +1 -1
  143. data/app/views/skyline/users/_form.html.erb +1 -1
  144. data/app/views/skyline/users/_new.html.erb +1 -1
  145. data/app/views/skyline/users/create.js.erb +2 -0
  146. data/app/views/skyline/users/edit.js.erb +1 -0
  147. data/app/views/skyline/users/index.html.erb +21 -6
  148. data/app/views/skyline/users/new.js.erb +1 -0
  149. data/app/views/skyline/users/update.js.erb +2 -0
  150. data/config/initializers/dependencies.rb +1 -17
  151. data/config/initializers/gem_dependencies.rb +10 -0
  152. data/config/initializers/locales.rb +8 -1
  153. data/config/initializers/middlewares.rb +7 -3
  154. data/config/initializers/observers.rb +6 -4
  155. data/config/locales/en-US.yml +44 -34
  156. data/config/locales/nl-NL.yml +45 -33
  157. data/config/routes.rb +65 -74
  158. data/db/migrate/20090508145820_create_skyline_pages.rb +2 -2
  159. data/db/migrate/20090508145852_create_skyline_page_versions.rb +2 -2
  160. data/db/migrate/20090508150149_create_skyline_sections.rb +1 -1
  161. data/db/migrate/20090610142139_add_skyline_tags_taggable_type.rb +2 -2
  162. data/db/migrate/20090624154251_create_skyline_link_section_links.rb +1 -1
  163. data/db/migrate/20100120113953_remove_unused_articles_index.rb +1 -1
  164. data/db/migrate/20110816080626_add_skyline_test_article_data.rb +13 -0
  165. data/db/migrate/20111101092405_rename_indexes.rb +24 -0
  166. data/doc/INSTALL.md +54 -27
  167. data/doc/MIGRATION.md +27 -2
  168. data/lib/skyline.rb +2 -1
  169. data/lib/skyline/authentication/user.rb +80 -0
  170. data/lib/skyline/belongs_to_referable.rb +1 -1
  171. data/lib/skyline/cli/init.rb +14 -26
  172. data/lib/skyline/cli/init/templates/config/initializers/skyline_configuration.rb +0 -1
  173. data/lib/skyline/configuration.rb +74 -32
  174. data/lib/skyline/content/content.rb +7 -6
  175. data/lib/skyline/content/field_meta_data.rb +2 -2
  176. data/lib/skyline/content/stack.rb +1 -1
  177. data/lib/skyline/content_item_section_selectable.rb +4 -4
  178. data/lib/skyline/deprecated/version3_0_8.rb +2 -2
  179. data/lib/skyline/engine.rb +37 -0
  180. data/lib/skyline/form_builder.rb +8 -8
  181. data/lib/skyline/linkable.rb +28 -0
  182. data/lib/skyline/plugins/manager.rb +77 -0
  183. data/lib/skyline/plugins/plugin.rb +89 -0
  184. data/lib/skyline/rendering/helpers/renderer_helper.rb +1 -1
  185. data/lib/skyline/rendering/renderer.rb +27 -13
  186. data/lib/skyline/route_constraint.rb +15 -0
  187. data/lib/skyline/settings.rb +9 -7
  188. data/lib/skyline/taggable.rb +2 -2
  189. data/lib/skyline/version.rb +4 -4
  190. data/lib/skylinecms.rb +5 -3
  191. data/lib/tasks/database.rake +2 -2
  192. data/public/skyline/javascripts/src/application.js +5 -4
  193. data/public/skyline/javascripts/src/rails.js +165 -0
  194. data/public/skyline/javascripts/src/sections.js +6 -9
  195. data/public/skyline/javascripts/src/skyline.editor/src/plugins/autoresize/editor_plugin.js +72 -27
  196. data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylineimage/dialog.js +13 -12
  197. data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylinelink/dialog.js +7 -7
  198. data/public/skyline/javascripts/src/skyline.editor/src/skyline.editor.js +4 -3
  199. data/public/skyline/javascripts/src/skyline.editor/src/theme.js +101 -536
  200. data/public/skyline/javascripts/src/skyline.editor/test/multiple_editors.html +1 -0
  201. data/public/skyline/javascripts/src/skyline.editor/test/single.html +56 -0
  202. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/changelog.txt +1410 -1091
  203. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/accessibility.html +101 -0
  204. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/custom_formats.html +1 -1
  205. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/full.html +12 -12
  206. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/lists/media_list.js +5 -1
  207. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/media/sample.flv +0 -0
  208. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/menu.html +2 -1
  209. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/skins.html +4 -4
  210. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/word.html +3 -2
  211. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/langs/en.js +1 -170
  212. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js +1 -5
  213. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm +30 -29
  214. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js +1 -1
  215. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js +1 -1
  216. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm +34 -31
  217. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js +32 -13
  218. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js +1 -43
  219. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js +21 -17
  220. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js +1 -52
  221. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm +35 -30
  222. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js +1 -1
  223. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js +31 -9
  224. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js +1 -0
  225. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js +172 -0
  226. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -1
  227. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js +23 -5
  228. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -1
  229. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js +14 -5
  230. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js +1 -1
  231. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +1 -1
  232. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -1
  233. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +34 -21
  234. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm +15 -14
  235. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
  236. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
  237. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
  238. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
  239. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
  240. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
  241. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js +1 -20
  242. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin.js +1 -0
  243. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin_src.js +50 -0
  244. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css +3 -42
  245. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js +1 -1
  246. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +315 -63
  247. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm +18 -330
  248. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js +199 -438
  249. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js +1 -85
  250. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -1
  251. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +12 -4
  252. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm +2 -1
  253. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -1
  254. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +80 -16
  255. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  256. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  257. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  258. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  259. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  260. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +1 -1
  261. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js +1 -1
  262. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js +2 -0
  263. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -1
  264. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +31 -28
  265. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js +1 -0
  266. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js +781 -0
  267. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/css/media.css +5 -4
  268. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js +1 -1
  269. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js +703 -295
  270. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/js/media.js +361 -602
  271. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js +1 -103
  272. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/media.htm +365 -285
  273. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf +0 -0
  274. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -1
  275. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +4 -3
  276. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js +1 -1
  277. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +7 -2
  278. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -1
  279. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +1 -4
  280. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js +1 -1
  281. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js +148 -239
  282. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js +1 -5
  283. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -1
  284. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +4 -0
  285. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +18 -6
  286. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js +1 -16
  287. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm +17 -16
  288. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -1
  289. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +55 -38
  290. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/js/props.js +3 -9
  291. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js +1 -63
  292. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/props.htm +515 -398
  293. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -1
  294. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js +122 -112
  295. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/cell.htm +16 -14
  296. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js +1 -1
  297. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js +1364 -1139
  298. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js +44 -11
  299. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/row.js +18 -18
  300. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/table.js +15 -14
  301. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js +1 -74
  302. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm +11 -11
  303. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/row.htm +12 -9
  304. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/table.htm +54 -53
  305. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/js/template.js +1 -1
  306. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/langs/en_dlg.js +1 -15
  307. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js +1 -1
  308. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +1 -1
  309. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js +1 -1
  310. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js +36 -20
  311. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +6 -5
  312. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +6 -5
  313. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +6 -5
  314. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm +5 -4
  315. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm +9 -8
  316. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -1
  317. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +6 -6
  318. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm +11 -10
  319. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +1 -16
  320. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js +2 -12
  321. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +3 -5
  322. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +4 -13
  323. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +1 -32
  324. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/about.htm +3 -5
  325. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm +5 -5
  326. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm +39 -40
  327. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm +10 -9
  328. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js +1 -1
  329. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js +195 -54
  330. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/image.htm +51 -51
  331. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  332. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif +0 -0
  333. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
  334. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif +0 -0
  335. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/{plugins/pagebreak → themes/advanced}/img/pagebreak.gif +0 -0
  336. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
  337. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/{plugins/media → themes/advanced}/img/realmedia.gif +0 -0
  338. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
  339. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/{plugins/media → themes/advanced}/img/trans.gif +0 -0
  340. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif +0 -0
  341. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/{plugins/media → themes/advanced}/img/windowsmedia.gif +0 -0
  342. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js +1 -0
  343. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js +5 -0
  344. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js +26 -6
  345. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js +108 -32
  346. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js +12 -6
  347. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js +4 -7
  348. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js +6 -12
  349. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js +1 -62
  350. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js +1 -51
  351. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/link.htm +27 -28
  352. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm +47 -0
  353. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css +14 -1
  354. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  355. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  356. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  357. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css +5 -4
  358. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css +24 -0
  359. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +105 -0
  360. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css +102 -0
  361. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css +12 -0
  362. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +1 -0
  363. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  364. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  365. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  366. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +8 -6
  367. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +1 -1
  368. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +1 -1
  369. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm +3 -3
  370. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js +1 -1
  371. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js +1 -2
  372. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif +0 -0
  373. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js +1 -11
  374. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce.js +1 -1
  375. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_popup.js +1 -1
  376. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_src.js +7838 -5579
  377. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/editable_selects.js +1 -1
  378. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/form_utils.js +14 -4
  379. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/mctabs.js +95 -10
  380. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/validate.js +35 -3
  381. data/public/skyline/javascripts/src/skyline/src/drag.js +10 -7
  382. data/public/skyline/javascripts/src/skyline/src/layout.js +13 -12
  383. data/public/skyline/javascripts/src/skyline/src/menubutton.js +1 -3
  384. data/public/skyline/javascripts/src/skyline/src/sortable.js +7 -5
  385. data/public/skyline/javascripts/src/skyline/src/tree.js +8 -4
  386. data/public/skyline/javascripts/src/skyline/test/sortable.html +73 -12
  387. data/public/skyline/javascripts/src/skyline/vendor/mootools/mootools-core.js +485 -2
  388. data/public/skyline/javascripts/src/skyline/vendor/mootools/mootools-more.js +130 -81
  389. data/public/skyline/stylesheets/general.css +23 -6
  390. data/skylinecms.gemspec +45 -0
  391. data/test/mocks/test_article.rb +11 -0
  392. data/test/mocks/test_section.rb +1 -1
  393. data/test/test_helper.rb +2 -1
  394. data/test/unit/article_test.rb +142 -0
  395. data/test/unit/inline_ref_test.rb +38 -16
  396. data/test/unit/test_content_object_test.rb +2 -1
  397. data/vendor/digitpaint/nested_attributes_positioning.rb +1 -1
  398. metadata +207 -487
  399. data/app/helpers/skyline/media_files_helper.rb +0 -7
  400. data/config/initializers/javascript_generator_methods.rb +0 -4
  401. data/config/initializers/rails_defaults.rb +0 -6
  402. data/doc/Bundler.md +0 -76
  403. data/lib/skyline/plugins_manager.rb +0 -150
  404. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/translate.html +0 -84
  405. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/css/content.css +0 -6
  406. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/flash.gif +0 -0
  407. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/flv_player.swf +0 -0
  408. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/quicktime.gif +0 -0
  409. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/shockwave.gif +0 -0
  410. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css +0 -1
  411. data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/trans.gif +0 -0
  412. data/rails/init.rb +0 -32
  413. data/vendor/digitpaint/personify/README.md +0 -86
  414. data/vendor/digitpaint/personify/lib/parser/personify.rb +0 -838
  415. data/vendor/digitpaint/personify/lib/parser/personify.treetop +0 -126
  416. data/vendor/digitpaint/personify/lib/parser/personify_node_classes.rb +0 -7
  417. data/vendor/digitpaint/personify/lib/template.rb +0 -16
  418. data/vendor/digitpaint/personify/personify.rb +0 -7
  419. data/vendor/digitpaint/personify/script/generate_parser.rb +0 -6
  420. data/vendor/digitpaint/personify/test/fixtures/multiple_tags.txt +0 -8
  421. data/vendor/digitpaint/personify/test/parse_runner.rb +0 -25
  422. data/vendor/digitpaint/personify/test/parser_test.rb +0 -109
  423. data/vendor/digitpaint/personify/test/test_helper.rb +0 -16
  424. data/vendor/digitpaint/personify/vendor/treetop/.gitignore +0 -5
  425. data/vendor/digitpaint/personify/vendor/treetop/History.txt +0 -9
  426. data/vendor/digitpaint/personify/vendor/treetop/README +0 -164
  427. data/vendor/digitpaint/personify/vendor/treetop/Rakefile +0 -20
  428. data/vendor/digitpaint/personify/vendor/treetop/Treetop.tmbundle/Snippets/grammar ___ end.tmSnippet +0 -20
  429. data/vendor/digitpaint/personify/vendor/treetop/Treetop.tmbundle/Snippets/rule ___ end.tmSnippet +0 -18
  430. data/vendor/digitpaint/personify/vendor/treetop/Treetop.tmbundle/Syntaxes/Treetop Grammar.tmLanguage +0 -251
  431. data/vendor/digitpaint/personify/vendor/treetop/Treetop.tmbundle/info.plist +0 -10
  432. data/vendor/digitpaint/personify/vendor/treetop/bin/tt +0 -28
  433. data/vendor/digitpaint/personify/vendor/treetop/doc/contributing_and_planned_features.markdown +0 -103
  434. data/vendor/digitpaint/personify/vendor/treetop/doc/grammar_composition.markdown +0 -65
  435. data/vendor/digitpaint/personify/vendor/treetop/doc/index.markdown +0 -90
  436. data/vendor/digitpaint/personify/vendor/treetop/doc/pitfalls_and_advanced_techniques.markdown +0 -51
  437. data/vendor/digitpaint/personify/vendor/treetop/doc/semantic_interpretation.markdown +0 -189
  438. data/vendor/digitpaint/personify/vendor/treetop/doc/site.rb +0 -110
  439. data/vendor/digitpaint/personify/vendor/treetop/doc/sitegen.rb +0 -60
  440. data/vendor/digitpaint/personify/vendor/treetop/doc/syntactic_recognition.markdown +0 -100
  441. data/vendor/digitpaint/personify/vendor/treetop/doc/using_in_ruby.markdown +0 -21
  442. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/arithmetic.rb +0 -551
  443. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/arithmetic.treetop +0 -97
  444. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/arithmetic_node_classes.rb +0 -7
  445. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/arithmetic_test.rb +0 -54
  446. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus +0 -0
  447. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus.rb +0 -718
  448. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus.treetop +0 -132
  449. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus_node_classes.rb +0 -5
  450. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus_test.rb +0 -89
  451. data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/test_helper.rb +0 -18
  452. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop.rb +0 -11
  453. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/bootstrap_gen_1_metagrammar.rb +0 -45
  454. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler.rb +0 -6
  455. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/grammar_compiler.rb +0 -40
  456. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/lexical_address_space.rb +0 -17
  457. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/metagrammar.rb +0 -2955
  458. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/metagrammar.treetop +0 -404
  459. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes.rb +0 -19
  460. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/anything_symbol.rb +0 -20
  461. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/atomic_expression.rb +0 -14
  462. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/character_class.rb +0 -22
  463. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/choice.rb +0 -31
  464. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/declaration_sequence.rb +0 -24
  465. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/grammar.rb +0 -28
  466. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/inline_module.rb +0 -27
  467. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/nonterminal.rb +0 -13
  468. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/optional.rb +0 -19
  469. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/parenthesized_expression.rb +0 -9
  470. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/parsing_expression.rb +0 -138
  471. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/parsing_rule.rb +0 -55
  472. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/predicate.rb +0 -45
  473. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/repetition.rb +0 -55
  474. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/sequence.rb +0 -68
  475. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/terminal.rb +0 -20
  476. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/transient_prefix.rb +0 -9
  477. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/treetop_file.rb +0 -9
  478. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/ruby_builder.rb +0 -113
  479. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/ruby_extensions.rb +0 -2
  480. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/ruby_extensions/string.rb +0 -42
  481. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime.rb +0 -5
  482. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/compiled_parser.rb +0 -95
  483. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/interval_skip_list.rb +0 -4
  484. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/interval_skip_list/head_node.rb +0 -15
  485. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/interval_skip_list/interval_skip_list.rb +0 -200
  486. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/interval_skip_list/node.rb +0 -164
  487. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/syntax_node.rb +0 -72
  488. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/terminal_parse_failure.rb +0 -16
  489. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/terminal_syntax_node.rb +0 -17
  490. data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/version.rb +0 -9
  491. data/vendor/digitpaint/personify/vendor/treetop/script/generate_metagrammar.rb +0 -14
  492. data/vendor/digitpaint/personify/vendor/treetop/script/svnadd +0 -11
  493. data/vendor/digitpaint/personify/vendor/treetop/script/svnrm +0 -11
  494. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/and_predicate_spec.rb +0 -36
  495. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/anything_symbol_spec.rb +0 -52
  496. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/character_class_spec.rb +0 -188
  497. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/choice_spec.rb +0 -80
  498. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/circular_compilation_spec.rb +0 -28
  499. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/failure_propagation_functional_spec.rb +0 -21
  500. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/grammar_compiler_spec.rb +0 -84
  501. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/grammar_spec.rb +0 -41
  502. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/nonterminal_symbol_spec.rb +0 -40
  503. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/not_predicate_spec.rb +0 -38
  504. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/one_or_more_spec.rb +0 -35
  505. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/optional_spec.rb +0 -37
  506. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/parenthesized_expression_spec.rb +0 -19
  507. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/parsing_rule_spec.rb +0 -32
  508. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/sequence_spec.rb +0 -115
  509. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/terminal_spec.rb +0 -81
  510. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/terminal_symbol_spec.rb +0 -37
  511. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/test_grammar.treetop +0 -7
  512. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/test_grammar.tt +0 -7
  513. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/test_grammar_do.treetop +0 -7
  514. data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/zero_or_more_spec.rb +0 -56
  515. data/vendor/digitpaint/personify/vendor/treetop/spec/composition/a.treetop +0 -11
  516. data/vendor/digitpaint/personify/vendor/treetop/spec/composition/b.treetop +0 -11
  517. data/vendor/digitpaint/personify/vendor/treetop/spec/composition/c.treetop +0 -10
  518. data/vendor/digitpaint/personify/vendor/treetop/spec/composition/d.treetop +0 -10
  519. data/vendor/digitpaint/personify/vendor/treetop/spec/composition/grammar_composition_spec.rb +0 -26
  520. data/vendor/digitpaint/personify/vendor/treetop/spec/ruby_extensions/string_spec.rb +0 -32
  521. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/compiled_parser_spec.rb +0 -101
  522. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/delete_spec.rb +0 -147
  523. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/expire_range_spec.rb +0 -349
  524. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/insert_and_delete_node.rb +0 -385
  525. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/insert_spec.rb +0 -660
  526. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/interval_skip_list_spec.graffle +0 -6175
  527. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/interval_skip_list_spec.rb +0 -58
  528. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/palindromic_fixture.rb +0 -23
  529. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/palindromic_fixture_spec.rb +0 -164
  530. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/spec_helper.rb +0 -84
  531. data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/syntax_node_spec.rb +0 -53
  532. data/vendor/digitpaint/personify/vendor/treetop/spec/spec_helper.rb +0 -106
  533. data/vendor/digitpaint/personify/vendor/treetop/spec/spec_suite.rb +0 -4
  534. data/vendor/digitpaint/personify/vendor/treetop/treetop.gemspec +0 -18
  535. data/vendor/mootools-on-rails/README +0 -54
  536. data/vendor/mootools-on-rails/Rakefile +0 -22
  537. data/vendor/mootools-on-rails/lib/mootools_on_rails.rb +0 -30
  538. data/vendor/mootools-on-rails/lib/mootools_on_rails/mootools_helper.rb +0 -510
  539. data/vendor/mootools-on-rails/test/mootools_helper_test.rb +0 -138
  540. data/vendor/mootools-on-rails/test/test_helper.rb +0 -5
@@ -1,132 +0,0 @@
1
- grammar LambdaCalculus
2
- include Arithmetic
3
-
4
- rule program
5
- expression more_expressions:(';' space expression)* {
6
- def eval(env={})
7
- env = env.clone
8
- last_eval = nil
9
- expressions.each do |exp|
10
- last_eval = exp.eval(env)
11
- end
12
- last_eval
13
- end
14
-
15
- def expressions
16
- [expression] + more_expressions.elements.map {|elt| elt.expression}
17
- end
18
- }
19
- end
20
-
21
- rule expression
22
- definition / conditional / application / function / super
23
- end
24
-
25
- rule definition
26
- 'def' space variable space expression {
27
- def eval(env)
28
- env[variable.name] = expression.eval(env)
29
- end
30
- }
31
- end
32
-
33
- rule conditional
34
- 'if' space '(' space condition:expression space ')' space
35
- true_case:expression space 'else' space false_case:expression {
36
- def eval(env)
37
- if condition.eval(env)
38
- true_case.eval(env)
39
- else
40
- false_case.eval(env)
41
- end
42
- end
43
- }
44
- end
45
-
46
- rule primary
47
- application / super
48
- end
49
-
50
- rule application
51
- operator space expression <Application> {
52
- def eval(env={})
53
- left_associative_apply(operator.eval(env), env)
54
- end
55
-
56
- def left_associative_apply(operator, env)
57
- if expression.instance_of?(Application)
58
- expression.left_associative_apply(operator.apply(expression.operator.eval(env)), env)
59
- else
60
- operator.apply(expression.eval(env))
61
- end
62
- end
63
-
64
- def to_s(env={})
65
- operator.to_s(env) + ' ' + expression.to_s(env)
66
- end
67
- }
68
- end
69
-
70
- rule operator
71
- function / variable
72
- end
73
-
74
- rule non_application
75
- function / variable
76
- end
77
-
78
- rule function
79
- '\\' param:variable '(' body:expression ')' {
80
- class Closure
81
- attr_reader :env, :function
82
-
83
- def initialize(function, env)
84
- @function = function
85
- @env = env
86
- end
87
-
88
- def apply(arg)
89
- function.body.eval(function.param.bind(arg, env))
90
- end
91
-
92
- def to_s(other_env={})
93
- "\\#{function.param.to_s}(#{function.body.to_s(other_env.merge(env))})"
94
- end
95
- end
96
-
97
- def eval(env={})
98
- Closure.new(self, env)
99
- end
100
-
101
- def to_s(env={})
102
- eval(env).to_s
103
- end
104
- }
105
- end
106
-
107
- rule variable
108
- !keyword (
109
- super {
110
- def bind(value, env)
111
- env.merge(name => value)
112
- end
113
-
114
- def to_s(env={})
115
- env.has_key?(name) ? env[name].to_s : name
116
- end
117
- }
118
- )
119
- end
120
-
121
- rule keyword
122
- ('if' / 'else') !non_space_char
123
- end
124
-
125
- rule non_space_char
126
- ![ \n] .
127
- end
128
-
129
- rule space
130
- [ \n]*
131
- end
132
- end
@@ -1,5 +0,0 @@
1
- module LambdaCalculus
2
- class Application < Treetop::Runtime::SyntaxNode
3
-
4
- end
5
- end
@@ -1,89 +0,0 @@
1
- dir = File.dirname(__FILE__)
2
- require File.expand_path("#{dir}/test_helper")
3
- require File.expand_path("#{dir}/arithmetic_node_classes")
4
- require File.expand_path("#{dir}/lambda_calculus_node_classes")
5
- Treetop.load File.expand_path("#{dir}/arithmetic")
6
- Treetop.load File.expand_path("#{dir}/lambda_calculus")
7
-
8
- class Treetop::Runtime::SyntaxNode
9
- def method_missing(method, *args)
10
- raise "Node representing #{text_value} does not respond to #{method}"
11
- end
12
- end
13
-
14
- class LambdaCalculusParserTest < Test::Unit::TestCase
15
- include ParserTestHelper
16
-
17
- def setup
18
- @parser = LambdaCalculusParser.new
19
- end
20
-
21
- def test_free_variable
22
- assert_equal 'x', parse('x').eval.to_s
23
- end
24
-
25
- def test_variable_binding
26
- variable = parse('x').eval
27
- env = variable.bind(1, {})
28
- assert_equal 1, env['x']
29
- end
30
-
31
- def test_bound_variable_evaluation
32
- assert_equal 1, parse('x').eval({'x' => 1})
33
- end
34
-
35
- def test_identity_function
36
- assert_equal '\x(x)', parse('\x(x)').eval.to_s
37
- end
38
-
39
- def test_function_returning_constant_function
40
- assert_equal '\x(\y(x))', parse('\x(\y(x))').eval.to_s
41
- end
42
-
43
- def test_identity_function_application
44
- assert_equal 1, parse('\x(x) 1').eval
45
- assert_equal '\y(y)', parse('\x(x) \y(y)').eval.to_s
46
- end
47
-
48
- def test_constant_function_construction
49
- assert_equal '\y(1)', parse('\x(\y(x)) 1').eval.to_s
50
- end
51
-
52
- def test_multiple_argument_application_is_left_associative
53
- assert_equal '\b(b)', parse('\x(\y(x y)) \a(a) \b(b)').eval.to_s
54
- end
55
-
56
- def test_parentheses_override_application_order
57
- assert_equal '\y(\b(b) y)', parse('\x(\y(x y)) (\a(a) \b(b))').eval.to_s
58
- end
59
-
60
- def test_arithmetic_in_function_body
61
- assert_equal 10, parse('\x(x + 5) 5').eval
62
- end
63
-
64
- def test_addition_of_function_results
65
- assert_equal 20, parse('\x(x + 5) 5 + \x(15 - x) 5').eval
66
- end
67
-
68
- def test_conditional
69
- result = parse('if (x) 1 else 2')
70
- assert_equal 1, result.eval({'x' => true})
71
- assert_equal 2, result.eval({'x' => false})
72
- end
73
-
74
- def test_keyword
75
- assert @parser.parse('if').failure?
76
- assert @parser.parse('else').failure?
77
- assert parse('elsee').success?
78
- assert parse('iff').success?
79
- end
80
-
81
- def test_program
82
- result = parse('def fact \x(if (x == 0)
83
- 1
84
- else
85
- x * fact (x - 1));
86
- fact(5)').eval
87
- assert_equal 5 * 4 * 3 * 2, result
88
- end
89
- end
@@ -1,18 +0,0 @@
1
- require 'test/unit'
2
- require 'rubygems'
3
- require 'treetop'
4
-
5
- module ParserTestHelper
6
- def assert_evals_to_self(input)
7
- assert_evals_to(input, input)
8
- end
9
-
10
- def parse(input)
11
- result = @parser.parse(input)
12
- unless result
13
- puts @parser.terminal_failures.join("\n")
14
- end
15
- assert !result.nil?
16
- result
17
- end
18
- end
@@ -1,11 +0,0 @@
1
- require 'rubygems'
2
-
3
- dir = File.dirname(__FILE__)
4
-
5
- TREETOP_ROOT = File.join(dir, 'treetop')
6
- require File.join(TREETOP_ROOT, "ruby_extensions")
7
- require File.join(TREETOP_ROOT, "runtime")
8
- require File.join(TREETOP_ROOT, "compiler")
9
-
10
- require 'polyglot'
11
- Polyglot.register(["treetop", "tt"], Treetop)
@@ -1,45 +0,0 @@
1
- # This file's job is to load a Treetop::Compiler::Metagrammar and Treetop::Compiler::MetagrammarParser
2
- # into the environment by compiling the current metagrammar.treetop using a trusted version of Treetop.
3
-
4
- require 'rubygems'
5
- dir = File.dirname(__FILE__)
6
-
7
- TREETOP_VERSION_REQUIRED_TO_BOOTSTRAP = '>= 1.1.5'
8
-
9
- # Loading trusted version of Treetop to compile the compiler
10
- gem_spec = Gem.source_index.find_name('treetop', TREETOP_VERSION_REQUIRED_TO_BOOTSTRAP).last
11
- raise "Install a Treetop Gem version #{TREETOP_VERSION_REQUIRED_TO_BOOTSTRAP} to bootstrap." unless gem_spec
12
- trusted_treetop_path = gem_spec.full_gem_path
13
- require File.join(trusted_treetop_path, 'lib', 'treetop')
14
-
15
- # Relocating trusted version of Treetop to Trusted::Treetop
16
- Trusted = Module.new
17
- Trusted::Treetop = Treetop
18
- Object.send(:remove_const, :Treetop)
19
- Object.send(:remove_const, :TREETOP_ROOT)
20
-
21
- # Requiring version of Treetop that is under test
22
- $exclude_metagrammar = true
23
- require File.expand_path(File.join(dir, '..', 'treetop'))
24
-
25
- # Compile and evaluate freshly generated metagrammar source
26
- METAGRAMMAR_PATH = File.join(TREETOP_ROOT, 'compiler', 'metagrammar.treetop')
27
- compiled_metagrammar_source = Trusted::Treetop::Compiler::GrammarCompiler.new.ruby_source(METAGRAMMAR_PATH)
28
- Object.class_eval(compiled_metagrammar_source)
29
-
30
- # The compiler under test was compiled with the trusted grammar and therefore depends on its runtime
31
- # But the runtime in the global namespace is the new runtime. We therefore inject the trusted runtime
32
- # into the compiler so its parser functions correctly. It will still not work for custom classes that
33
- # explicitly subclass the wrong runtime. For now I am working around this by keeping 1 generation of
34
- # backward compatibility in these cases.
35
- # Treetop::Compiler::Metagrammar.module_eval do
36
- # include Trusted::Treetop::Runtime
37
- # end
38
- #
39
- # Treetop::Compiler.send(:remove_const, :MetagrammarParser)
40
- # class Treetop::Compiler::MetagrammarParser < Trusted::Treetop::Runtime::CompiledParser
41
- # include Treetop::Compiler::Metagrammar
42
- # include Trusted::Treetop::Runtime
43
- # end
44
-
45
- $bootstrapped_gen_1_metagrammar = true
@@ -1,6 +0,0 @@
1
- dir = File.dirname(__FILE__)
2
- require File.join(dir, *%w[compiler lexical_address_space])
3
- require File.join(dir, *%w[compiler ruby_builder])
4
- require File.join(dir, *%w[compiler node_classes])
5
- require File.join(dir, *%w[compiler metagrammar]) unless $exclude_metagrammar
6
- require File.join(dir, *%w[compiler grammar_compiler])
@@ -1,40 +0,0 @@
1
- module Treetop
2
- module Compiler
3
- class GrammarCompiler
4
- def compile(source_path, target_path = source_path.gsub(/\.(treetop|tt)\Z/, '.rb'))
5
- File.open(target_path, 'w') do |target_file|
6
- target_file.write(ruby_source(source_path))
7
- end
8
- end
9
-
10
- # compile a treetop file into ruby
11
- def ruby_source(source_path)
12
- ruby_source_from_string(File.read(source_path))
13
- end
14
-
15
- # compile a string containing treetop source into ruby
16
- def ruby_source_from_string(s)
17
- parser = MetagrammarParser.new
18
- result = parser.parse(s)
19
- unless result
20
- raise RuntimeError.new(parser.failure_reason)
21
- end
22
- result.compile
23
- end
24
- end
25
- end
26
-
27
- # compile a treetop source file and load it
28
- def self.load(path)
29
- adjusted_path = path =~ /\.(treetop|tt)\Z/ ? path : path + '.treetop'
30
- File.open(adjusted_path) do |source_file|
31
- load_from_string(source_file.read)
32
- end
33
- end
34
-
35
- # compile a treetop source string and load it
36
- def self.load_from_string(s)
37
- compiler = Treetop::Compiler::GrammarCompiler.new
38
- Object.class_eval(compiler.ruby_source_from_string(s))
39
- end
40
- end
@@ -1,17 +0,0 @@
1
- module Treetop
2
- module Compiler
3
- class LexicalAddressSpace
4
- def initialize
5
- reset_addresses
6
- end
7
-
8
- def next_address
9
- @next_address += 1
10
- end
11
-
12
- def reset_addresses
13
- @next_address = -1
14
- end
15
- end
16
- end
17
- end
@@ -1,2955 +0,0 @@
1
- module Treetop
2
- module Compiler
3
- module Metagrammar
4
- include Treetop::Runtime
5
-
6
- def root
7
- @root || :treetop_file
8
- end
9
-
10
- module TreetopFile0
11
- def prefix
12
- elements[0]
13
- end
14
-
15
- def module_or_grammar
16
- elements[1]
17
- end
18
-
19
- def suffix
20
- elements[2]
21
- end
22
- end
23
-
24
- module TreetopFile1
25
- def compile
26
- prefix.text_value + module_or_grammar.compile + suffix.text_value
27
- end
28
- end
29
-
30
- def _nt_treetop_file
31
- start_index = index
32
- if node_cache[:treetop_file].has_key?(index)
33
- cached = node_cache[:treetop_file][index]
34
- @index = cached.interval.end if cached
35
- return cached
36
- end
37
-
38
- i0, s0 = index, []
39
- r2 = _nt_space
40
- if r2
41
- r1 = r2
42
- else
43
- r1 = SyntaxNode.new(input, index...index)
44
- end
45
- s0 << r1
46
- if r1
47
- i3 = index
48
- r4 = _nt_module_declaration
49
- if r4
50
- r3 = r4
51
- else
52
- r5 = _nt_grammar
53
- if r5
54
- r3 = r5
55
- else
56
- self.index = i3
57
- r3 = nil
58
- end
59
- end
60
- s0 << r3
61
- if r3
62
- r7 = _nt_space
63
- if r7
64
- r6 = r7
65
- else
66
- r6 = SyntaxNode.new(input, index...index)
67
- end
68
- s0 << r6
69
- end
70
- end
71
- if s0.last
72
- r0 = (SyntaxNode).new(input, i0...index, s0)
73
- r0.extend(TreetopFile0)
74
- r0.extend(TreetopFile1)
75
- else
76
- self.index = i0
77
- r0 = nil
78
- end
79
-
80
- node_cache[:treetop_file][start_index] = r0
81
-
82
- return r0
83
- end
84
-
85
- module ModuleDeclaration0
86
- def space
87
- elements[1]
88
- end
89
-
90
- def space
91
- elements[4]
92
- end
93
- end
94
-
95
- module ModuleDeclaration1
96
- def space
97
- elements[0]
98
- end
99
-
100
- end
101
-
102
- module ModuleDeclaration2
103
- def prefix
104
- elements[0]
105
- end
106
-
107
- def module_contents
108
- elements[1]
109
- end
110
-
111
- def suffix
112
- elements[2]
113
- end
114
- end
115
-
116
- module ModuleDeclaration3
117
- def compile
118
- prefix.text_value + module_contents.compile + suffix.text_value
119
- end
120
- end
121
-
122
- def _nt_module_declaration
123
- start_index = index
124
- if node_cache[:module_declaration].has_key?(index)
125
- cached = node_cache[:module_declaration][index]
126
- @index = cached.interval.end if cached
127
- return cached
128
- end
129
-
130
- i0, s0 = index, []
131
- i1, s1 = index, []
132
- if input.index('module', index) == index
133
- r2 = (SyntaxNode).new(input, index...(index + 6))
134
- @index += 6
135
- else
136
- terminal_parse_failure('module')
137
- r2 = nil
138
- end
139
- s1 << r2
140
- if r2
141
- r3 = _nt_space
142
- s1 << r3
143
- if r3
144
- if input.index(Regexp.new('[A-Z]'), index) == index
145
- r4 = (SyntaxNode).new(input, index...(index + 1))
146
- @index += 1
147
- else
148
- r4 = nil
149
- end
150
- s1 << r4
151
- if r4
152
- s5, i5 = [], index
153
- loop do
154
- r6 = _nt_alphanumeric_char
155
- if r6
156
- s5 << r6
157
- else
158
- break
159
- end
160
- end
161
- r5 = SyntaxNode.new(input, i5...index, s5)
162
- s1 << r5
163
- if r5
164
- r7 = _nt_space
165
- s1 << r7
166
- end
167
- end
168
- end
169
- end
170
- if s1.last
171
- r1 = (SyntaxNode).new(input, i1...index, s1)
172
- r1.extend(ModuleDeclaration0)
173
- else
174
- self.index = i1
175
- r1 = nil
176
- end
177
- s0 << r1
178
- if r1
179
- i8 = index
180
- r9 = _nt_module_declaration
181
- if r9
182
- r8 = r9
183
- else
184
- r10 = _nt_grammar
185
- if r10
186
- r8 = r10
187
- else
188
- self.index = i8
189
- r8 = nil
190
- end
191
- end
192
- s0 << r8
193
- if r8
194
- i11, s11 = index, []
195
- r12 = _nt_space
196
- s11 << r12
197
- if r12
198
- if input.index('end', index) == index
199
- r13 = (SyntaxNode).new(input, index...(index + 3))
200
- @index += 3
201
- else
202
- terminal_parse_failure('end')
203
- r13 = nil
204
- end
205
- s11 << r13
206
- end
207
- if s11.last
208
- r11 = (SyntaxNode).new(input, i11...index, s11)
209
- r11.extend(ModuleDeclaration1)
210
- else
211
- self.index = i11
212
- r11 = nil
213
- end
214
- s0 << r11
215
- end
216
- end
217
- if s0.last
218
- r0 = (SyntaxNode).new(input, i0...index, s0)
219
- r0.extend(ModuleDeclaration2)
220
- r0.extend(ModuleDeclaration3)
221
- else
222
- self.index = i0
223
- r0 = nil
224
- end
225
-
226
- node_cache[:module_declaration][start_index] = r0
227
-
228
- return r0
229
- end
230
-
231
- module Grammar0
232
- def space
233
- elements[1]
234
- end
235
- end
236
-
237
- module Grammar1
238
- def space
239
- elements[1]
240
- end
241
-
242
- def grammar_name
243
- elements[2]
244
- end
245
-
246
- def space
247
- elements[3]
248
- end
249
-
250
- def declaration_sequence
251
- elements[5]
252
- end
253
-
254
- end
255
-
256
- def _nt_grammar
257
- start_index = index
258
- if node_cache[:grammar].has_key?(index)
259
- cached = node_cache[:grammar][index]
260
- @index = cached.interval.end if cached
261
- return cached
262
- end
263
-
264
- i0, s0 = index, []
265
- if input.index('grammar', index) == index
266
- r1 = (SyntaxNode).new(input, index...(index + 7))
267
- @index += 7
268
- else
269
- terminal_parse_failure('grammar')
270
- r1 = nil
271
- end
272
- s0 << r1
273
- if r1
274
- r2 = _nt_space
275
- s0 << r2
276
- if r2
277
- r3 = _nt_grammar_name
278
- s0 << r3
279
- if r3
280
- r4 = _nt_space
281
- s0 << r4
282
- if r4
283
- i6, s6 = index, []
284
- if input.index('do', index) == index
285
- r7 = (SyntaxNode).new(input, index...(index + 2))
286
- @index += 2
287
- else
288
- terminal_parse_failure('do')
289
- r7 = nil
290
- end
291
- s6 << r7
292
- if r7
293
- r8 = _nt_space
294
- s6 << r8
295
- end
296
- if s6.last
297
- r6 = (SyntaxNode).new(input, i6...index, s6)
298
- r6.extend(Grammar0)
299
- else
300
- self.index = i6
301
- r6 = nil
302
- end
303
- if r6
304
- r5 = r6
305
- else
306
- r5 = SyntaxNode.new(input, index...index)
307
- end
308
- s0 << r5
309
- if r5
310
- r9 = _nt_declaration_sequence
311
- s0 << r9
312
- if r9
313
- r11 = _nt_space
314
- if r11
315
- r10 = r11
316
- else
317
- r10 = SyntaxNode.new(input, index...index)
318
- end
319
- s0 << r10
320
- if r10
321
- if input.index('end', index) == index
322
- r12 = (SyntaxNode).new(input, index...(index + 3))
323
- @index += 3
324
- else
325
- terminal_parse_failure('end')
326
- r12 = nil
327
- end
328
- s0 << r12
329
- end
330
- end
331
- end
332
- end
333
- end
334
- end
335
- end
336
- if s0.last
337
- r0 = (Grammar).new(input, i0...index, s0)
338
- r0.extend(Grammar1)
339
- else
340
- self.index = i0
341
- r0 = nil
342
- end
343
-
344
- node_cache[:grammar][start_index] = r0
345
-
346
- return r0
347
- end
348
-
349
- module GrammarName0
350
- end
351
-
352
- def _nt_grammar_name
353
- start_index = index
354
- if node_cache[:grammar_name].has_key?(index)
355
- cached = node_cache[:grammar_name][index]
356
- @index = cached.interval.end if cached
357
- return cached
358
- end
359
-
360
- i0, s0 = index, []
361
- if input.index(Regexp.new('[A-Z]'), index) == index
362
- r1 = (SyntaxNode).new(input, index...(index + 1))
363
- @index += 1
364
- else
365
- r1 = nil
366
- end
367
- s0 << r1
368
- if r1
369
- s2, i2 = [], index
370
- loop do
371
- r3 = _nt_alphanumeric_char
372
- if r3
373
- s2 << r3
374
- else
375
- break
376
- end
377
- end
378
- r2 = SyntaxNode.new(input, i2...index, s2)
379
- s0 << r2
380
- end
381
- if s0.last
382
- r0 = (SyntaxNode).new(input, i0...index, s0)
383
- r0.extend(GrammarName0)
384
- else
385
- self.index = i0
386
- r0 = nil
387
- end
388
-
389
- node_cache[:grammar_name][start_index] = r0
390
-
391
- return r0
392
- end
393
-
394
- module DeclarationSequence0
395
- def space
396
- elements[0]
397
- end
398
-
399
- def declaration
400
- elements[1]
401
- end
402
- end
403
-
404
- module DeclarationSequence1
405
- def head
406
- elements[0]
407
- end
408
-
409
- def tail
410
- elements[1]
411
- end
412
- end
413
-
414
- module DeclarationSequence2
415
- def declarations
416
- [head] + tail
417
- end
418
-
419
- def tail
420
- super.elements.map { |elt| elt.declaration }
421
- end
422
- end
423
-
424
- module DeclarationSequence3
425
- def compile(builder)
426
- end
427
- end
428
-
429
- def _nt_declaration_sequence
430
- start_index = index
431
- if node_cache[:declaration_sequence].has_key?(index)
432
- cached = node_cache[:declaration_sequence][index]
433
- @index = cached.interval.end if cached
434
- return cached
435
- end
436
-
437
- i0 = index
438
- i1, s1 = index, []
439
- r2 = _nt_declaration
440
- s1 << r2
441
- if r2
442
- s3, i3 = [], index
443
- loop do
444
- i4, s4 = index, []
445
- r5 = _nt_space
446
- s4 << r5
447
- if r5
448
- r6 = _nt_declaration
449
- s4 << r6
450
- end
451
- if s4.last
452
- r4 = (SyntaxNode).new(input, i4...index, s4)
453
- r4.extend(DeclarationSequence0)
454
- else
455
- self.index = i4
456
- r4 = nil
457
- end
458
- if r4
459
- s3 << r4
460
- else
461
- break
462
- end
463
- end
464
- r3 = SyntaxNode.new(input, i3...index, s3)
465
- s1 << r3
466
- end
467
- if s1.last
468
- r1 = (DeclarationSequence).new(input, i1...index, s1)
469
- r1.extend(DeclarationSequence1)
470
- r1.extend(DeclarationSequence2)
471
- else
472
- self.index = i1
473
- r1 = nil
474
- end
475
- if r1
476
- r0 = r1
477
- else
478
- if input.index('', index) == index
479
- r7 = (SyntaxNode).new(input, index...(index + 0))
480
- r7.extend(DeclarationSequence3)
481
- @index += 0
482
- else
483
- terminal_parse_failure('')
484
- r7 = nil
485
- end
486
- if r7
487
- r0 = r7
488
- else
489
- self.index = i0
490
- r0 = nil
491
- end
492
- end
493
-
494
- node_cache[:declaration_sequence][start_index] = r0
495
-
496
- return r0
497
- end
498
-
499
- def _nt_declaration
500
- start_index = index
501
- if node_cache[:declaration].has_key?(index)
502
- cached = node_cache[:declaration][index]
503
- @index = cached.interval.end if cached
504
- return cached
505
- end
506
-
507
- i0 = index
508
- r1 = _nt_parsing_rule
509
- if r1
510
- r0 = r1
511
- else
512
- r2 = _nt_include_declaration
513
- if r2
514
- r0 = r2
515
- else
516
- self.index = i0
517
- r0 = nil
518
- end
519
- end
520
-
521
- node_cache[:declaration][start_index] = r0
522
-
523
- return r0
524
- end
525
-
526
- module IncludeDeclaration0
527
- def space
528
- elements[1]
529
- end
530
-
531
- end
532
-
533
- module IncludeDeclaration1
534
- def compile(builder)
535
- builder << text_value
536
- end
537
- end
538
-
539
- def _nt_include_declaration
540
- start_index = index
541
- if node_cache[:include_declaration].has_key?(index)
542
- cached = node_cache[:include_declaration][index]
543
- @index = cached.interval.end if cached
544
- return cached
545
- end
546
-
547
- i0, s0 = index, []
548
- if input.index('include', index) == index
549
- r1 = (SyntaxNode).new(input, index...(index + 7))
550
- @index += 7
551
- else
552
- terminal_parse_failure('include')
553
- r1 = nil
554
- end
555
- s0 << r1
556
- if r1
557
- r2 = _nt_space
558
- s0 << r2
559
- if r2
560
- if input.index(Regexp.new('[A-Z]'), index) == index
561
- r3 = (SyntaxNode).new(input, index...(index + 1))
562
- @index += 1
563
- else
564
- r3 = nil
565
- end
566
- s0 << r3
567
- if r3
568
- s4, i4 = [], index
569
- loop do
570
- i5 = index
571
- r6 = _nt_alphanumeric_char
572
- if r6
573
- r5 = r6
574
- else
575
- if input.index('::', index) == index
576
- r7 = (SyntaxNode).new(input, index...(index + 2))
577
- @index += 2
578
- else
579
- terminal_parse_failure('::')
580
- r7 = nil
581
- end
582
- if r7
583
- r5 = r7
584
- else
585
- self.index = i5
586
- r5 = nil
587
- end
588
- end
589
- if r5
590
- s4 << r5
591
- else
592
- break
593
- end
594
- end
595
- r4 = SyntaxNode.new(input, i4...index, s4)
596
- s0 << r4
597
- end
598
- end
599
- end
600
- if s0.last
601
- r0 = (SyntaxNode).new(input, i0...index, s0)
602
- r0.extend(IncludeDeclaration0)
603
- r0.extend(IncludeDeclaration1)
604
- else
605
- self.index = i0
606
- r0 = nil
607
- end
608
-
609
- node_cache[:include_declaration][start_index] = r0
610
-
611
- return r0
612
- end
613
-
614
- module ParsingRule0
615
- def space
616
- elements[1]
617
- end
618
- end
619
-
620
- module ParsingRule1
621
- def space
622
- elements[1]
623
- end
624
-
625
- def nonterminal
626
- elements[2]
627
- end
628
-
629
- def space
630
- elements[3]
631
- end
632
-
633
- def parsing_expression
634
- elements[5]
635
- end
636
-
637
- def space
638
- elements[6]
639
- end
640
-
641
- end
642
-
643
- def _nt_parsing_rule
644
- start_index = index
645
- if node_cache[:parsing_rule].has_key?(index)
646
- cached = node_cache[:parsing_rule][index]
647
- @index = cached.interval.end if cached
648
- return cached
649
- end
650
-
651
- i0, s0 = index, []
652
- if input.index('rule', index) == index
653
- r1 = (SyntaxNode).new(input, index...(index + 4))
654
- @index += 4
655
- else
656
- terminal_parse_failure('rule')
657
- r1 = nil
658
- end
659
- s0 << r1
660
- if r1
661
- r2 = _nt_space
662
- s0 << r2
663
- if r2
664
- r3 = _nt_nonterminal
665
- s0 << r3
666
- if r3
667
- r4 = _nt_space
668
- s0 << r4
669
- if r4
670
- i6, s6 = index, []
671
- if input.index('do', index) == index
672
- r7 = (SyntaxNode).new(input, index...(index + 2))
673
- @index += 2
674
- else
675
- terminal_parse_failure('do')
676
- r7 = nil
677
- end
678
- s6 << r7
679
- if r7
680
- r8 = _nt_space
681
- s6 << r8
682
- end
683
- if s6.last
684
- r6 = (SyntaxNode).new(input, i6...index, s6)
685
- r6.extend(ParsingRule0)
686
- else
687
- self.index = i6
688
- r6 = nil
689
- end
690
- if r6
691
- r5 = r6
692
- else
693
- r5 = SyntaxNode.new(input, index...index)
694
- end
695
- s0 << r5
696
- if r5
697
- r9 = _nt_parsing_expression
698
- s0 << r9
699
- if r9
700
- r10 = _nt_space
701
- s0 << r10
702
- if r10
703
- if input.index('end', index) == index
704
- r11 = (SyntaxNode).new(input, index...(index + 3))
705
- @index += 3
706
- else
707
- terminal_parse_failure('end')
708
- r11 = nil
709
- end
710
- s0 << r11
711
- end
712
- end
713
- end
714
- end
715
- end
716
- end
717
- end
718
- if s0.last
719
- r0 = (ParsingRule).new(input, i0...index, s0)
720
- r0.extend(ParsingRule1)
721
- else
722
- self.index = i0
723
- r0 = nil
724
- end
725
-
726
- node_cache[:parsing_rule][start_index] = r0
727
-
728
- return r0
729
- end
730
-
731
- def _nt_parsing_expression
732
- start_index = index
733
- if node_cache[:parsing_expression].has_key?(index)
734
- cached = node_cache[:parsing_expression][index]
735
- @index = cached.interval.end if cached
736
- return cached
737
- end
738
-
739
- i0 = index
740
- r1 = _nt_choice
741
- if r1
742
- r0 = r1
743
- else
744
- r2 = _nt_sequence
745
- if r2
746
- r0 = r2
747
- else
748
- r3 = _nt_primary
749
- if r3
750
- r0 = r3
751
- else
752
- self.index = i0
753
- r0 = nil
754
- end
755
- end
756
- end
757
-
758
- node_cache[:parsing_expression][start_index] = r0
759
-
760
- return r0
761
- end
762
-
763
- module Choice0
764
- def alternative
765
- elements[3]
766
- end
767
- end
768
-
769
- module Choice1
770
- def head
771
- elements[0]
772
- end
773
-
774
- def tail
775
- elements[1]
776
- end
777
- end
778
-
779
- module Choice2
780
- def alternatives
781
- [head] + tail
782
- end
783
-
784
- def tail
785
- super.elements.map {|elt| elt.alternative}
786
- end
787
-
788
- def inline_modules
789
- (alternatives.map {|alt| alt.inline_modules }).flatten
790
- end
791
- end
792
-
793
- def _nt_choice
794
- start_index = index
795
- if node_cache[:choice].has_key?(index)
796
- cached = node_cache[:choice][index]
797
- @index = cached.interval.end if cached
798
- return cached
799
- end
800
-
801
- i0, s0 = index, []
802
- r1 = _nt_alternative
803
- s0 << r1
804
- if r1
805
- s2, i2 = [], index
806
- loop do
807
- i3, s3 = index, []
808
- r5 = _nt_space
809
- if r5
810
- r4 = r5
811
- else
812
- r4 = SyntaxNode.new(input, index...index)
813
- end
814
- s3 << r4
815
- if r4
816
- if input.index('/', index) == index
817
- r6 = (SyntaxNode).new(input, index...(index + 1))
818
- @index += 1
819
- else
820
- terminal_parse_failure('/')
821
- r6 = nil
822
- end
823
- s3 << r6
824
- if r6
825
- r8 = _nt_space
826
- if r8
827
- r7 = r8
828
- else
829
- r7 = SyntaxNode.new(input, index...index)
830
- end
831
- s3 << r7
832
- if r7
833
- r9 = _nt_alternative
834
- s3 << r9
835
- end
836
- end
837
- end
838
- if s3.last
839
- r3 = (SyntaxNode).new(input, i3...index, s3)
840
- r3.extend(Choice0)
841
- else
842
- self.index = i3
843
- r3 = nil
844
- end
845
- if r3
846
- s2 << r3
847
- else
848
- break
849
- end
850
- end
851
- if s2.empty?
852
- self.index = i2
853
- r2 = nil
854
- else
855
- r2 = SyntaxNode.new(input, i2...index, s2)
856
- end
857
- s0 << r2
858
- end
859
- if s0.last
860
- r0 = (Choice).new(input, i0...index, s0)
861
- r0.extend(Choice1)
862
- r0.extend(Choice2)
863
- else
864
- self.index = i0
865
- r0 = nil
866
- end
867
-
868
- node_cache[:choice][start_index] = r0
869
-
870
- return r0
871
- end
872
-
873
- module Sequence0
874
- def space
875
- elements[0]
876
- end
877
-
878
- def labeled_sequence_primary
879
- elements[1]
880
- end
881
- end
882
-
883
- module Sequence1
884
- def head
885
- elements[0]
886
- end
887
-
888
- def tail
889
- elements[1]
890
- end
891
-
892
- def node_class_declarations
893
- elements[2]
894
- end
895
- end
896
-
897
- module Sequence2
898
- def sequence_elements
899
- [head] + tail
900
- end
901
-
902
- def tail
903
- super.elements.map {|elt| elt.labeled_sequence_primary }
904
- end
905
-
906
- def inline_modules
907
- (sequence_elements.map {|elt| elt.inline_modules}).flatten +
908
- [sequence_element_accessor_module] +
909
- node_class_declarations.inline_modules
910
- end
911
-
912
- def inline_module_name
913
- node_class_declarations.inline_module_name
914
- end
915
- end
916
-
917
- def _nt_sequence
918
- start_index = index
919
- if node_cache[:sequence].has_key?(index)
920
- cached = node_cache[:sequence][index]
921
- @index = cached.interval.end if cached
922
- return cached
923
- end
924
-
925
- i0, s0 = index, []
926
- r1 = _nt_labeled_sequence_primary
927
- s0 << r1
928
- if r1
929
- s2, i2 = [], index
930
- loop do
931
- i3, s3 = index, []
932
- r4 = _nt_space
933
- s3 << r4
934
- if r4
935
- r5 = _nt_labeled_sequence_primary
936
- s3 << r5
937
- end
938
- if s3.last
939
- r3 = (SyntaxNode).new(input, i3...index, s3)
940
- r3.extend(Sequence0)
941
- else
942
- self.index = i3
943
- r3 = nil
944
- end
945
- if r3
946
- s2 << r3
947
- else
948
- break
949
- end
950
- end
951
- if s2.empty?
952
- self.index = i2
953
- r2 = nil
954
- else
955
- r2 = SyntaxNode.new(input, i2...index, s2)
956
- end
957
- s0 << r2
958
- if r2
959
- r6 = _nt_node_class_declarations
960
- s0 << r6
961
- end
962
- end
963
- if s0.last
964
- r0 = (Sequence).new(input, i0...index, s0)
965
- r0.extend(Sequence1)
966
- r0.extend(Sequence2)
967
- else
968
- self.index = i0
969
- r0 = nil
970
- end
971
-
972
- node_cache[:sequence][start_index] = r0
973
-
974
- return r0
975
- end
976
-
977
- def _nt_alternative
978
- start_index = index
979
- if node_cache[:alternative].has_key?(index)
980
- cached = node_cache[:alternative][index]
981
- @index = cached.interval.end if cached
982
- return cached
983
- end
984
-
985
- i0 = index
986
- r1 = _nt_sequence
987
- if r1
988
- r0 = r1
989
- else
990
- r2 = _nt_primary
991
- if r2
992
- r0 = r2
993
- else
994
- self.index = i0
995
- r0 = nil
996
- end
997
- end
998
-
999
- node_cache[:alternative][start_index] = r0
1000
-
1001
- return r0
1002
- end
1003
-
1004
- module Primary0
1005
- def prefix
1006
- elements[0]
1007
- end
1008
-
1009
- def atomic
1010
- elements[1]
1011
- end
1012
- end
1013
-
1014
- module Primary1
1015
- def compile(address, builder, parent_expression=nil)
1016
- prefix.compile(address, builder, self)
1017
- end
1018
-
1019
- def prefixed_expression
1020
- atomic
1021
- end
1022
-
1023
- def inline_modules
1024
- atomic.inline_modules
1025
- end
1026
-
1027
- def inline_module_name
1028
- nil
1029
- end
1030
- end
1031
-
1032
- module Primary2
1033
- def atomic
1034
- elements[0]
1035
- end
1036
-
1037
- def suffix
1038
- elements[1]
1039
- end
1040
-
1041
- def node_class_declarations
1042
- elements[2]
1043
- end
1044
- end
1045
-
1046
- module Primary3
1047
- def compile(address, builder, parent_expression=nil)
1048
- suffix.compile(address, builder, self)
1049
- end
1050
-
1051
- def optional_expression
1052
- atomic
1053
- end
1054
-
1055
- def node_class_name
1056
- node_class_declarations.node_class_name
1057
- end
1058
-
1059
- def inline_modules
1060
- atomic.inline_modules + node_class_declarations.inline_modules
1061
- end
1062
-
1063
- def inline_module_name
1064
- node_class_declarations.inline_module_name
1065
- end
1066
- end
1067
-
1068
- module Primary4
1069
- def atomic
1070
- elements[0]
1071
- end
1072
-
1073
- def node_class_declarations
1074
- elements[1]
1075
- end
1076
- end
1077
-
1078
- module Primary5
1079
- def compile(address, builder, parent_expression=nil)
1080
- atomic.compile(address, builder, self)
1081
- end
1082
-
1083
- def node_class_name
1084
- node_class_declarations.node_class_name
1085
- end
1086
-
1087
- def inline_modules
1088
- atomic.inline_modules + node_class_declarations.inline_modules
1089
- end
1090
-
1091
- def inline_module_name
1092
- node_class_declarations.inline_module_name
1093
- end
1094
- end
1095
-
1096
- def _nt_primary
1097
- start_index = index
1098
- if node_cache[:primary].has_key?(index)
1099
- cached = node_cache[:primary][index]
1100
- @index = cached.interval.end if cached
1101
- return cached
1102
- end
1103
-
1104
- i0 = index
1105
- i1, s1 = index, []
1106
- r2 = _nt_prefix
1107
- s1 << r2
1108
- if r2
1109
- r3 = _nt_atomic
1110
- s1 << r3
1111
- end
1112
- if s1.last
1113
- r1 = (SyntaxNode).new(input, i1...index, s1)
1114
- r1.extend(Primary0)
1115
- r1.extend(Primary1)
1116
- else
1117
- self.index = i1
1118
- r1 = nil
1119
- end
1120
- if r1
1121
- r0 = r1
1122
- else
1123
- i4, s4 = index, []
1124
- r5 = _nt_atomic
1125
- s4 << r5
1126
- if r5
1127
- r6 = _nt_suffix
1128
- s4 << r6
1129
- if r6
1130
- r7 = _nt_node_class_declarations
1131
- s4 << r7
1132
- end
1133
- end
1134
- if s4.last
1135
- r4 = (SyntaxNode).new(input, i4...index, s4)
1136
- r4.extend(Primary2)
1137
- r4.extend(Primary3)
1138
- else
1139
- self.index = i4
1140
- r4 = nil
1141
- end
1142
- if r4
1143
- r0 = r4
1144
- else
1145
- i8, s8 = index, []
1146
- r9 = _nt_atomic
1147
- s8 << r9
1148
- if r9
1149
- r10 = _nt_node_class_declarations
1150
- s8 << r10
1151
- end
1152
- if s8.last
1153
- r8 = (SyntaxNode).new(input, i8...index, s8)
1154
- r8.extend(Primary4)
1155
- r8.extend(Primary5)
1156
- else
1157
- self.index = i8
1158
- r8 = nil
1159
- end
1160
- if r8
1161
- r0 = r8
1162
- else
1163
- self.index = i0
1164
- r0 = nil
1165
- end
1166
- end
1167
- end
1168
-
1169
- node_cache[:primary][start_index] = r0
1170
-
1171
- return r0
1172
- end
1173
-
1174
- module LabeledSequencePrimary0
1175
- def label
1176
- elements[0]
1177
- end
1178
-
1179
- def sequence_primary
1180
- elements[1]
1181
- end
1182
- end
1183
-
1184
- module LabeledSequencePrimary1
1185
- def compile(lexical_address, builder)
1186
- sequence_primary.compile(lexical_address, builder)
1187
- end
1188
-
1189
- def inline_modules
1190
- sequence_primary.inline_modules
1191
- end
1192
-
1193
- def label_name
1194
- if label.name
1195
- label.name
1196
- elsif sequence_primary.instance_of?(Nonterminal)
1197
- sequence_primary.text_value
1198
- else
1199
- nil
1200
- end
1201
- end
1202
- end
1203
-
1204
- def _nt_labeled_sequence_primary
1205
- start_index = index
1206
- if node_cache[:labeled_sequence_primary].has_key?(index)
1207
- cached = node_cache[:labeled_sequence_primary][index]
1208
- @index = cached.interval.end if cached
1209
- return cached
1210
- end
1211
-
1212
- i0, s0 = index, []
1213
- r1 = _nt_label
1214
- s0 << r1
1215
- if r1
1216
- r2 = _nt_sequence_primary
1217
- s0 << r2
1218
- end
1219
- if s0.last
1220
- r0 = (SyntaxNode).new(input, i0...index, s0)
1221
- r0.extend(LabeledSequencePrimary0)
1222
- r0.extend(LabeledSequencePrimary1)
1223
- else
1224
- self.index = i0
1225
- r0 = nil
1226
- end
1227
-
1228
- node_cache[:labeled_sequence_primary][start_index] = r0
1229
-
1230
- return r0
1231
- end
1232
-
1233
- module Label0
1234
- def alpha_char
1235
- elements[0]
1236
- end
1237
-
1238
- end
1239
-
1240
- module Label1
1241
- end
1242
-
1243
- module Label2
1244
- def name
1245
- elements[0].text_value
1246
- end
1247
- end
1248
-
1249
- module Label3
1250
- def name
1251
- nil
1252
- end
1253
- end
1254
-
1255
- def _nt_label
1256
- start_index = index
1257
- if node_cache[:label].has_key?(index)
1258
- cached = node_cache[:label][index]
1259
- @index = cached.interval.end if cached
1260
- return cached
1261
- end
1262
-
1263
- i0 = index
1264
- i1, s1 = index, []
1265
- i2, s2 = index, []
1266
- r3 = _nt_alpha_char
1267
- s2 << r3
1268
- if r3
1269
- s4, i4 = [], index
1270
- loop do
1271
- r5 = _nt_alphanumeric_char
1272
- if r5
1273
- s4 << r5
1274
- else
1275
- break
1276
- end
1277
- end
1278
- r4 = SyntaxNode.new(input, i4...index, s4)
1279
- s2 << r4
1280
- end
1281
- if s2.last
1282
- r2 = (SyntaxNode).new(input, i2...index, s2)
1283
- r2.extend(Label0)
1284
- else
1285
- self.index = i2
1286
- r2 = nil
1287
- end
1288
- s1 << r2
1289
- if r2
1290
- if input.index(':', index) == index
1291
- r6 = (SyntaxNode).new(input, index...(index + 1))
1292
- @index += 1
1293
- else
1294
- terminal_parse_failure(':')
1295
- r6 = nil
1296
- end
1297
- s1 << r6
1298
- end
1299
- if s1.last
1300
- r1 = (SyntaxNode).new(input, i1...index, s1)
1301
- r1.extend(Label1)
1302
- r1.extend(Label2)
1303
- else
1304
- self.index = i1
1305
- r1 = nil
1306
- end
1307
- if r1
1308
- r0 = r1
1309
- else
1310
- if input.index('', index) == index
1311
- r7 = (SyntaxNode).new(input, index...(index + 0))
1312
- r7.extend(Label3)
1313
- @index += 0
1314
- else
1315
- terminal_parse_failure('')
1316
- r7 = nil
1317
- end
1318
- if r7
1319
- r0 = r7
1320
- else
1321
- self.index = i0
1322
- r0 = nil
1323
- end
1324
- end
1325
-
1326
- node_cache[:label][start_index] = r0
1327
-
1328
- return r0
1329
- end
1330
-
1331
- module SequencePrimary0
1332
- def prefix
1333
- elements[0]
1334
- end
1335
-
1336
- def atomic
1337
- elements[1]
1338
- end
1339
- end
1340
-
1341
- module SequencePrimary1
1342
- def compile(lexical_address, builder)
1343
- prefix.compile(lexical_address, builder, self)
1344
- end
1345
-
1346
- def prefixed_expression
1347
- elements[1]
1348
- end
1349
-
1350
- def inline_modules
1351
- atomic.inline_modules
1352
- end
1353
-
1354
- def inline_module_name
1355
- nil
1356
- end
1357
- end
1358
-
1359
- module SequencePrimary2
1360
- def atomic
1361
- elements[0]
1362
- end
1363
-
1364
- def suffix
1365
- elements[1]
1366
- end
1367
- end
1368
-
1369
- module SequencePrimary3
1370
- def compile(lexical_address, builder)
1371
- suffix.compile(lexical_address, builder, self)
1372
- end
1373
-
1374
- def node_class_name
1375
- nil
1376
- end
1377
-
1378
- def inline_modules
1379
- atomic.inline_modules
1380
- end
1381
-
1382
- def inline_module_name
1383
- nil
1384
- end
1385
- end
1386
-
1387
- def _nt_sequence_primary
1388
- start_index = index
1389
- if node_cache[:sequence_primary].has_key?(index)
1390
- cached = node_cache[:sequence_primary][index]
1391
- @index = cached.interval.end if cached
1392
- return cached
1393
- end
1394
-
1395
- i0 = index
1396
- i1, s1 = index, []
1397
- r2 = _nt_prefix
1398
- s1 << r2
1399
- if r2
1400
- r3 = _nt_atomic
1401
- s1 << r3
1402
- end
1403
- if s1.last
1404
- r1 = (SyntaxNode).new(input, i1...index, s1)
1405
- r1.extend(SequencePrimary0)
1406
- r1.extend(SequencePrimary1)
1407
- else
1408
- self.index = i1
1409
- r1 = nil
1410
- end
1411
- if r1
1412
- r0 = r1
1413
- else
1414
- i4, s4 = index, []
1415
- r5 = _nt_atomic
1416
- s4 << r5
1417
- if r5
1418
- r6 = _nt_suffix
1419
- s4 << r6
1420
- end
1421
- if s4.last
1422
- r4 = (SyntaxNode).new(input, i4...index, s4)
1423
- r4.extend(SequencePrimary2)
1424
- r4.extend(SequencePrimary3)
1425
- else
1426
- self.index = i4
1427
- r4 = nil
1428
- end
1429
- if r4
1430
- r0 = r4
1431
- else
1432
- r7 = _nt_atomic
1433
- if r7
1434
- r0 = r7
1435
- else
1436
- self.index = i0
1437
- r0 = nil
1438
- end
1439
- end
1440
- end
1441
-
1442
- node_cache[:sequence_primary][start_index] = r0
1443
-
1444
- return r0
1445
- end
1446
-
1447
- def _nt_suffix
1448
- start_index = index
1449
- if node_cache[:suffix].has_key?(index)
1450
- cached = node_cache[:suffix][index]
1451
- @index = cached.interval.end if cached
1452
- return cached
1453
- end
1454
-
1455
- i0 = index
1456
- r1 = _nt_repetition_suffix
1457
- if r1
1458
- r0 = r1
1459
- else
1460
- r2 = _nt_optional_suffix
1461
- if r2
1462
- r0 = r2
1463
- else
1464
- self.index = i0
1465
- r0 = nil
1466
- end
1467
- end
1468
-
1469
- node_cache[:suffix][start_index] = r0
1470
-
1471
- return r0
1472
- end
1473
-
1474
- def _nt_optional_suffix
1475
- start_index = index
1476
- if node_cache[:optional_suffix].has_key?(index)
1477
- cached = node_cache[:optional_suffix][index]
1478
- @index = cached.interval.end if cached
1479
- return cached
1480
- end
1481
-
1482
- if input.index('?', index) == index
1483
- r0 = (Optional).new(input, index...(index + 1))
1484
- @index += 1
1485
- else
1486
- terminal_parse_failure('?')
1487
- r0 = nil
1488
- end
1489
-
1490
- node_cache[:optional_suffix][start_index] = r0
1491
-
1492
- return r0
1493
- end
1494
-
1495
- module NodeClassDeclarations0
1496
- def node_class_expression
1497
- elements[0]
1498
- end
1499
-
1500
- def trailing_inline_module
1501
- elements[1]
1502
- end
1503
- end
1504
-
1505
- module NodeClassDeclarations1
1506
- def node_class_name
1507
- node_class_expression.node_class_name
1508
- end
1509
-
1510
- def inline_modules
1511
- trailing_inline_module.inline_modules
1512
- end
1513
-
1514
- def inline_module
1515
- trailing_inline_module.inline_module
1516
- end
1517
-
1518
- def inline_module_name
1519
- inline_module.module_name if inline_module
1520
- end
1521
- end
1522
-
1523
- def _nt_node_class_declarations
1524
- start_index = index
1525
- if node_cache[:node_class_declarations].has_key?(index)
1526
- cached = node_cache[:node_class_declarations][index]
1527
- @index = cached.interval.end if cached
1528
- return cached
1529
- end
1530
-
1531
- i0, s0 = index, []
1532
- r1 = _nt_node_class_expression
1533
- s0 << r1
1534
- if r1
1535
- r2 = _nt_trailing_inline_module
1536
- s0 << r2
1537
- end
1538
- if s0.last
1539
- r0 = (SyntaxNode).new(input, i0...index, s0)
1540
- r0.extend(NodeClassDeclarations0)
1541
- r0.extend(NodeClassDeclarations1)
1542
- else
1543
- self.index = i0
1544
- r0 = nil
1545
- end
1546
-
1547
- node_cache[:node_class_declarations][start_index] = r0
1548
-
1549
- return r0
1550
- end
1551
-
1552
- def _nt_repetition_suffix
1553
- start_index = index
1554
- if node_cache[:repetition_suffix].has_key?(index)
1555
- cached = node_cache[:repetition_suffix][index]
1556
- @index = cached.interval.end if cached
1557
- return cached
1558
- end
1559
-
1560
- i0 = index
1561
- if input.index('+', index) == index
1562
- r1 = (OneOrMore).new(input, index...(index + 1))
1563
- @index += 1
1564
- else
1565
- terminal_parse_failure('+')
1566
- r1 = nil
1567
- end
1568
- if r1
1569
- r0 = r1
1570
- else
1571
- if input.index('*', index) == index
1572
- r2 = (ZeroOrMore).new(input, index...(index + 1))
1573
- @index += 1
1574
- else
1575
- terminal_parse_failure('*')
1576
- r2 = nil
1577
- end
1578
- if r2
1579
- r0 = r2
1580
- else
1581
- self.index = i0
1582
- r0 = nil
1583
- end
1584
- end
1585
-
1586
- node_cache[:repetition_suffix][start_index] = r0
1587
-
1588
- return r0
1589
- end
1590
-
1591
- def _nt_prefix
1592
- start_index = index
1593
- if node_cache[:prefix].has_key?(index)
1594
- cached = node_cache[:prefix][index]
1595
- @index = cached.interval.end if cached
1596
- return cached
1597
- end
1598
-
1599
- i0 = index
1600
- if input.index('&', index) == index
1601
- r1 = (AndPredicate).new(input, index...(index + 1))
1602
- @index += 1
1603
- else
1604
- terminal_parse_failure('&')
1605
- r1 = nil
1606
- end
1607
- if r1
1608
- r0 = r1
1609
- else
1610
- if input.index('!', index) == index
1611
- r2 = (NotPredicate).new(input, index...(index + 1))
1612
- @index += 1
1613
- else
1614
- terminal_parse_failure('!')
1615
- r2 = nil
1616
- end
1617
- if r2
1618
- r0 = r2
1619
- else
1620
- if input.index('~', index) == index
1621
- r3 = (TransientPrefix).new(input, index...(index + 1))
1622
- @index += 1
1623
- else
1624
- terminal_parse_failure('~')
1625
- r3 = nil
1626
- end
1627
- if r3
1628
- r0 = r3
1629
- else
1630
- self.index = i0
1631
- r0 = nil
1632
- end
1633
- end
1634
- end
1635
-
1636
- node_cache[:prefix][start_index] = r0
1637
-
1638
- return r0
1639
- end
1640
-
1641
- def _nt_atomic
1642
- start_index = index
1643
- if node_cache[:atomic].has_key?(index)
1644
- cached = node_cache[:atomic][index]
1645
- @index = cached.interval.end if cached
1646
- return cached
1647
- end
1648
-
1649
- i0 = index
1650
- r1 = _nt_terminal
1651
- if r1
1652
- r0 = r1
1653
- else
1654
- r2 = _nt_nonterminal
1655
- if r2
1656
- r0 = r2
1657
- else
1658
- r3 = _nt_parenthesized_expression
1659
- if r3
1660
- r0 = r3
1661
- else
1662
- self.index = i0
1663
- r0 = nil
1664
- end
1665
- end
1666
- end
1667
-
1668
- node_cache[:atomic][start_index] = r0
1669
-
1670
- return r0
1671
- end
1672
-
1673
- module ParenthesizedExpression0
1674
- def parsing_expression
1675
- elements[2]
1676
- end
1677
-
1678
- end
1679
-
1680
- module ParenthesizedExpression1
1681
- def inline_modules
1682
- parsing_expression.inline_modules
1683
- end
1684
- end
1685
-
1686
- def _nt_parenthesized_expression
1687
- start_index = index
1688
- if node_cache[:parenthesized_expression].has_key?(index)
1689
- cached = node_cache[:parenthesized_expression][index]
1690
- @index = cached.interval.end if cached
1691
- return cached
1692
- end
1693
-
1694
- i0, s0 = index, []
1695
- if input.index('(', index) == index
1696
- r1 = (SyntaxNode).new(input, index...(index + 1))
1697
- @index += 1
1698
- else
1699
- terminal_parse_failure('(')
1700
- r1 = nil
1701
- end
1702
- s0 << r1
1703
- if r1
1704
- r3 = _nt_space
1705
- if r3
1706
- r2 = r3
1707
- else
1708
- r2 = SyntaxNode.new(input, index...index)
1709
- end
1710
- s0 << r2
1711
- if r2
1712
- r4 = _nt_parsing_expression
1713
- s0 << r4
1714
- if r4
1715
- r6 = _nt_space
1716
- if r6
1717
- r5 = r6
1718
- else
1719
- r5 = SyntaxNode.new(input, index...index)
1720
- end
1721
- s0 << r5
1722
- if r5
1723
- if input.index(')', index) == index
1724
- r7 = (SyntaxNode).new(input, index...(index + 1))
1725
- @index += 1
1726
- else
1727
- terminal_parse_failure(')')
1728
- r7 = nil
1729
- end
1730
- s0 << r7
1731
- end
1732
- end
1733
- end
1734
- end
1735
- if s0.last
1736
- r0 = (ParenthesizedExpression).new(input, i0...index, s0)
1737
- r0.extend(ParenthesizedExpression0)
1738
- r0.extend(ParenthesizedExpression1)
1739
- else
1740
- self.index = i0
1741
- r0 = nil
1742
- end
1743
-
1744
- node_cache[:parenthesized_expression][start_index] = r0
1745
-
1746
- return r0
1747
- end
1748
-
1749
- module Nonterminal0
1750
- def alpha_char
1751
- elements[0]
1752
- end
1753
-
1754
- end
1755
-
1756
- module Nonterminal1
1757
- end
1758
-
1759
- def _nt_nonterminal
1760
- start_index = index
1761
- if node_cache[:nonterminal].has_key?(index)
1762
- cached = node_cache[:nonterminal][index]
1763
- @index = cached.interval.end if cached
1764
- return cached
1765
- end
1766
-
1767
- i0, s0 = index, []
1768
- i1 = index
1769
- r2 = _nt_keyword_inside_grammar
1770
- if r2
1771
- r1 = nil
1772
- else
1773
- self.index = i1
1774
- r1 = SyntaxNode.new(input, index...index)
1775
- end
1776
- s0 << r1
1777
- if r1
1778
- i3, s3 = index, []
1779
- r4 = _nt_alpha_char
1780
- s3 << r4
1781
- if r4
1782
- s5, i5 = [], index
1783
- loop do
1784
- r6 = _nt_alphanumeric_char
1785
- if r6
1786
- s5 << r6
1787
- else
1788
- break
1789
- end
1790
- end
1791
- r5 = SyntaxNode.new(input, i5...index, s5)
1792
- s3 << r5
1793
- end
1794
- if s3.last
1795
- r3 = (SyntaxNode).new(input, i3...index, s3)
1796
- r3.extend(Nonterminal0)
1797
- else
1798
- self.index = i3
1799
- r3 = nil
1800
- end
1801
- s0 << r3
1802
- end
1803
- if s0.last
1804
- r0 = (Nonterminal).new(input, i0...index, s0)
1805
- r0.extend(Nonterminal1)
1806
- else
1807
- self.index = i0
1808
- r0 = nil
1809
- end
1810
-
1811
- node_cache[:nonterminal][start_index] = r0
1812
-
1813
- return r0
1814
- end
1815
-
1816
- def _nt_terminal
1817
- start_index = index
1818
- if node_cache[:terminal].has_key?(index)
1819
- cached = node_cache[:terminal][index]
1820
- @index = cached.interval.end if cached
1821
- return cached
1822
- end
1823
-
1824
- i0 = index
1825
- r1 = _nt_quoted_string
1826
- if r1
1827
- r0 = r1
1828
- else
1829
- r2 = _nt_character_class
1830
- if r2
1831
- r0 = r2
1832
- else
1833
- r3 = _nt_anything_symbol
1834
- if r3
1835
- r0 = r3
1836
- else
1837
- self.index = i0
1838
- r0 = nil
1839
- end
1840
- end
1841
- end
1842
-
1843
- node_cache[:terminal][start_index] = r0
1844
-
1845
- return r0
1846
- end
1847
-
1848
- module QuotedString0
1849
- def string
1850
- super.text_value
1851
- end
1852
- end
1853
-
1854
- def _nt_quoted_string
1855
- start_index = index
1856
- if node_cache[:quoted_string].has_key?(index)
1857
- cached = node_cache[:quoted_string][index]
1858
- @index = cached.interval.end if cached
1859
- return cached
1860
- end
1861
-
1862
- i0 = index
1863
- r1 = _nt_single_quoted_string
1864
- if r1
1865
- r0 = r1
1866
- r0.extend(QuotedString0)
1867
- else
1868
- r2 = _nt_double_quoted_string
1869
- if r2
1870
- r0 = r2
1871
- r0.extend(QuotedString0)
1872
- else
1873
- self.index = i0
1874
- r0 = nil
1875
- end
1876
- end
1877
-
1878
- node_cache[:quoted_string][start_index] = r0
1879
-
1880
- return r0
1881
- end
1882
-
1883
- module DoubleQuotedString0
1884
- end
1885
-
1886
- module DoubleQuotedString1
1887
- def string
1888
- elements[1]
1889
- end
1890
-
1891
- end
1892
-
1893
- def _nt_double_quoted_string
1894
- start_index = index
1895
- if node_cache[:double_quoted_string].has_key?(index)
1896
- cached = node_cache[:double_quoted_string][index]
1897
- @index = cached.interval.end if cached
1898
- return cached
1899
- end
1900
-
1901
- i0, s0 = index, []
1902
- if input.index('"', index) == index
1903
- r1 = (SyntaxNode).new(input, index...(index + 1))
1904
- @index += 1
1905
- else
1906
- terminal_parse_failure('"')
1907
- r1 = nil
1908
- end
1909
- s0 << r1
1910
- if r1
1911
- s2, i2 = [], index
1912
- loop do
1913
- i3, s3 = index, []
1914
- i4 = index
1915
- if input.index('"', index) == index
1916
- r5 = (SyntaxNode).new(input, index...(index + 1))
1917
- @index += 1
1918
- else
1919
- terminal_parse_failure('"')
1920
- r5 = nil
1921
- end
1922
- if r5
1923
- r4 = nil
1924
- else
1925
- self.index = i4
1926
- r4 = SyntaxNode.new(input, index...index)
1927
- end
1928
- s3 << r4
1929
- if r4
1930
- i6 = index
1931
- if input.index("\\\\", index) == index
1932
- r7 = (SyntaxNode).new(input, index...(index + 2))
1933
- @index += 2
1934
- else
1935
- terminal_parse_failure("\\\\")
1936
- r7 = nil
1937
- end
1938
- if r7
1939
- r6 = r7
1940
- else
1941
- if input.index('\"', index) == index
1942
- r8 = (SyntaxNode).new(input, index...(index + 2))
1943
- @index += 2
1944
- else
1945
- terminal_parse_failure('\"')
1946
- r8 = nil
1947
- end
1948
- if r8
1949
- r6 = r8
1950
- else
1951
- if index < input_length
1952
- r9 = (SyntaxNode).new(input, index...(index + 1))
1953
- @index += 1
1954
- else
1955
- terminal_parse_failure("any character")
1956
- r9 = nil
1957
- end
1958
- if r9
1959
- r6 = r9
1960
- else
1961
- self.index = i6
1962
- r6 = nil
1963
- end
1964
- end
1965
- end
1966
- s3 << r6
1967
- end
1968
- if s3.last
1969
- r3 = (SyntaxNode).new(input, i3...index, s3)
1970
- r3.extend(DoubleQuotedString0)
1971
- else
1972
- self.index = i3
1973
- r3 = nil
1974
- end
1975
- if r3
1976
- s2 << r3
1977
- else
1978
- break
1979
- end
1980
- end
1981
- r2 = SyntaxNode.new(input, i2...index, s2)
1982
- s0 << r2
1983
- if r2
1984
- if input.index('"', index) == index
1985
- r10 = (SyntaxNode).new(input, index...(index + 1))
1986
- @index += 1
1987
- else
1988
- terminal_parse_failure('"')
1989
- r10 = nil
1990
- end
1991
- s0 << r10
1992
- end
1993
- end
1994
- if s0.last
1995
- r0 = (Terminal).new(input, i0...index, s0)
1996
- r0.extend(DoubleQuotedString1)
1997
- else
1998
- self.index = i0
1999
- r0 = nil
2000
- end
2001
-
2002
- node_cache[:double_quoted_string][start_index] = r0
2003
-
2004
- return r0
2005
- end
2006
-
2007
- module SingleQuotedString0
2008
- end
2009
-
2010
- module SingleQuotedString1
2011
- def string
2012
- elements[1]
2013
- end
2014
-
2015
- end
2016
-
2017
- def _nt_single_quoted_string
2018
- start_index = index
2019
- if node_cache[:single_quoted_string].has_key?(index)
2020
- cached = node_cache[:single_quoted_string][index]
2021
- @index = cached.interval.end if cached
2022
- return cached
2023
- end
2024
-
2025
- i0, s0 = index, []
2026
- if input.index("'", index) == index
2027
- r1 = (SyntaxNode).new(input, index...(index + 1))
2028
- @index += 1
2029
- else
2030
- terminal_parse_failure("'")
2031
- r1 = nil
2032
- end
2033
- s0 << r1
2034
- if r1
2035
- s2, i2 = [], index
2036
- loop do
2037
- i3, s3 = index, []
2038
- i4 = index
2039
- if input.index("'", index) == index
2040
- r5 = (SyntaxNode).new(input, index...(index + 1))
2041
- @index += 1
2042
- else
2043
- terminal_parse_failure("'")
2044
- r5 = nil
2045
- end
2046
- if r5
2047
- r4 = nil
2048
- else
2049
- self.index = i4
2050
- r4 = SyntaxNode.new(input, index...index)
2051
- end
2052
- s3 << r4
2053
- if r4
2054
- i6 = index
2055
- if input.index("\\\\", index) == index
2056
- r7 = (SyntaxNode).new(input, index...(index + 2))
2057
- @index += 2
2058
- else
2059
- terminal_parse_failure("\\\\")
2060
- r7 = nil
2061
- end
2062
- if r7
2063
- r6 = r7
2064
- else
2065
- if input.index("\\'", index) == index
2066
- r8 = (SyntaxNode).new(input, index...(index + 2))
2067
- @index += 2
2068
- else
2069
- terminal_parse_failure("\\'")
2070
- r8 = nil
2071
- end
2072
- if r8
2073
- r6 = r8
2074
- else
2075
- if index < input_length
2076
- r9 = (SyntaxNode).new(input, index...(index + 1))
2077
- @index += 1
2078
- else
2079
- terminal_parse_failure("any character")
2080
- r9 = nil
2081
- end
2082
- if r9
2083
- r6 = r9
2084
- else
2085
- self.index = i6
2086
- r6 = nil
2087
- end
2088
- end
2089
- end
2090
- s3 << r6
2091
- end
2092
- if s3.last
2093
- r3 = (SyntaxNode).new(input, i3...index, s3)
2094
- r3.extend(SingleQuotedString0)
2095
- else
2096
- self.index = i3
2097
- r3 = nil
2098
- end
2099
- if r3
2100
- s2 << r3
2101
- else
2102
- break
2103
- end
2104
- end
2105
- r2 = SyntaxNode.new(input, i2...index, s2)
2106
- s0 << r2
2107
- if r2
2108
- if input.index("'", index) == index
2109
- r10 = (SyntaxNode).new(input, index...(index + 1))
2110
- @index += 1
2111
- else
2112
- terminal_parse_failure("'")
2113
- r10 = nil
2114
- end
2115
- s0 << r10
2116
- end
2117
- end
2118
- if s0.last
2119
- r0 = (Terminal).new(input, i0...index, s0)
2120
- r0.extend(SingleQuotedString1)
2121
- else
2122
- self.index = i0
2123
- r0 = nil
2124
- end
2125
-
2126
- node_cache[:single_quoted_string][start_index] = r0
2127
-
2128
- return r0
2129
- end
2130
-
2131
- module CharacterClass0
2132
- end
2133
-
2134
- module CharacterClass1
2135
- end
2136
-
2137
- module CharacterClass2
2138
- end
2139
-
2140
- module CharacterClass3
2141
- def characters
2142
- elements[1]
2143
- end
2144
-
2145
- end
2146
-
2147
- module CharacterClass4
2148
- def characters
2149
- super.text_value
2150
- end
2151
- end
2152
-
2153
- def _nt_character_class
2154
- start_index = index
2155
- if node_cache[:character_class].has_key?(index)
2156
- cached = node_cache[:character_class][index]
2157
- @index = cached.interval.end if cached
2158
- return cached
2159
- end
2160
-
2161
- i0, s0 = index, []
2162
- if input.index('[', index) == index
2163
- r1 = (SyntaxNode).new(input, index...(index + 1))
2164
- @index += 1
2165
- else
2166
- terminal_parse_failure('[')
2167
- r1 = nil
2168
- end
2169
- s0 << r1
2170
- if r1
2171
- s2, i2 = [], index
2172
- loop do
2173
- i3, s3 = index, []
2174
- i4 = index
2175
- if input.index(']', index) == index
2176
- r5 = (SyntaxNode).new(input, index...(index + 1))
2177
- @index += 1
2178
- else
2179
- terminal_parse_failure(']')
2180
- r5 = nil
2181
- end
2182
- if r5
2183
- r4 = nil
2184
- else
2185
- self.index = i4
2186
- r4 = SyntaxNode.new(input, index...index)
2187
- end
2188
- s3 << r4
2189
- if r4
2190
- i6 = index
2191
- i7, s7 = index, []
2192
- if input.index('\\', index) == index
2193
- r8 = (SyntaxNode).new(input, index...(index + 1))
2194
- @index += 1
2195
- else
2196
- terminal_parse_failure('\\')
2197
- r8 = nil
2198
- end
2199
- s7 << r8
2200
- if r8
2201
- if index < input_length
2202
- r9 = (SyntaxNode).new(input, index...(index + 1))
2203
- @index += 1
2204
- else
2205
- terminal_parse_failure("any character")
2206
- r9 = nil
2207
- end
2208
- s7 << r9
2209
- end
2210
- if s7.last
2211
- r7 = (SyntaxNode).new(input, i7...index, s7)
2212
- r7.extend(CharacterClass0)
2213
- else
2214
- self.index = i7
2215
- r7 = nil
2216
- end
2217
- if r7
2218
- r6 = r7
2219
- else
2220
- i10, s10 = index, []
2221
- i11 = index
2222
- if input.index('\\', index) == index
2223
- r12 = (SyntaxNode).new(input, index...(index + 1))
2224
- @index += 1
2225
- else
2226
- terminal_parse_failure('\\')
2227
- r12 = nil
2228
- end
2229
- if r12
2230
- r11 = nil
2231
- else
2232
- self.index = i11
2233
- r11 = SyntaxNode.new(input, index...index)
2234
- end
2235
- s10 << r11
2236
- if r11
2237
- if index < input_length
2238
- r13 = (SyntaxNode).new(input, index...(index + 1))
2239
- @index += 1
2240
- else
2241
- terminal_parse_failure("any character")
2242
- r13 = nil
2243
- end
2244
- s10 << r13
2245
- end
2246
- if s10.last
2247
- r10 = (SyntaxNode).new(input, i10...index, s10)
2248
- r10.extend(CharacterClass1)
2249
- else
2250
- self.index = i10
2251
- r10 = nil
2252
- end
2253
- if r10
2254
- r6 = r10
2255
- else
2256
- self.index = i6
2257
- r6 = nil
2258
- end
2259
- end
2260
- s3 << r6
2261
- end
2262
- if s3.last
2263
- r3 = (SyntaxNode).new(input, i3...index, s3)
2264
- r3.extend(CharacterClass2)
2265
- else
2266
- self.index = i3
2267
- r3 = nil
2268
- end
2269
- if r3
2270
- s2 << r3
2271
- else
2272
- break
2273
- end
2274
- end
2275
- if s2.empty?
2276
- self.index = i2
2277
- r2 = nil
2278
- else
2279
- r2 = SyntaxNode.new(input, i2...index, s2)
2280
- end
2281
- s0 << r2
2282
- if r2
2283
- if input.index(']', index) == index
2284
- r14 = (SyntaxNode).new(input, index...(index + 1))
2285
- @index += 1
2286
- else
2287
- terminal_parse_failure(']')
2288
- r14 = nil
2289
- end
2290
- s0 << r14
2291
- end
2292
- end
2293
- if s0.last
2294
- r0 = (CharacterClass).new(input, i0...index, s0)
2295
- r0.extend(CharacterClass3)
2296
- r0.extend(CharacterClass4)
2297
- else
2298
- self.index = i0
2299
- r0 = nil
2300
- end
2301
-
2302
- node_cache[:character_class][start_index] = r0
2303
-
2304
- return r0
2305
- end
2306
-
2307
- def _nt_anything_symbol
2308
- start_index = index
2309
- if node_cache[:anything_symbol].has_key?(index)
2310
- cached = node_cache[:anything_symbol][index]
2311
- @index = cached.interval.end if cached
2312
- return cached
2313
- end
2314
-
2315
- if input.index('.', index) == index
2316
- r0 = (AnythingSymbol).new(input, index...(index + 1))
2317
- @index += 1
2318
- else
2319
- terminal_parse_failure('.')
2320
- r0 = nil
2321
- end
2322
-
2323
- node_cache[:anything_symbol][start_index] = r0
2324
-
2325
- return r0
2326
- end
2327
-
2328
- module NodeClassExpression0
2329
- end
2330
-
2331
- module NodeClassExpression1
2332
- def space
2333
- elements[0]
2334
- end
2335
-
2336
- end
2337
-
2338
- module NodeClassExpression2
2339
- def node_class_name
2340
- elements[2].text_value
2341
- end
2342
- end
2343
-
2344
- module NodeClassExpression3
2345
- def node_class_name
2346
- nil
2347
- end
2348
- end
2349
-
2350
- def _nt_node_class_expression
2351
- start_index = index
2352
- if node_cache[:node_class_expression].has_key?(index)
2353
- cached = node_cache[:node_class_expression][index]
2354
- @index = cached.interval.end if cached
2355
- return cached
2356
- end
2357
-
2358
- i0 = index
2359
- i1, s1 = index, []
2360
- r2 = _nt_space
2361
- s1 << r2
2362
- if r2
2363
- if input.index('<', index) == index
2364
- r3 = (SyntaxNode).new(input, index...(index + 1))
2365
- @index += 1
2366
- else
2367
- terminal_parse_failure('<')
2368
- r3 = nil
2369
- end
2370
- s1 << r3
2371
- if r3
2372
- s4, i4 = [], index
2373
- loop do
2374
- i5, s5 = index, []
2375
- i6 = index
2376
- if input.index('>', index) == index
2377
- r7 = (SyntaxNode).new(input, index...(index + 1))
2378
- @index += 1
2379
- else
2380
- terminal_parse_failure('>')
2381
- r7 = nil
2382
- end
2383
- if r7
2384
- r6 = nil
2385
- else
2386
- self.index = i6
2387
- r6 = SyntaxNode.new(input, index...index)
2388
- end
2389
- s5 << r6
2390
- if r6
2391
- if index < input_length
2392
- r8 = (SyntaxNode).new(input, index...(index + 1))
2393
- @index += 1
2394
- else
2395
- terminal_parse_failure("any character")
2396
- r8 = nil
2397
- end
2398
- s5 << r8
2399
- end
2400
- if s5.last
2401
- r5 = (SyntaxNode).new(input, i5...index, s5)
2402
- r5.extend(NodeClassExpression0)
2403
- else
2404
- self.index = i5
2405
- r5 = nil
2406
- end
2407
- if r5
2408
- s4 << r5
2409
- else
2410
- break
2411
- end
2412
- end
2413
- if s4.empty?
2414
- self.index = i4
2415
- r4 = nil
2416
- else
2417
- r4 = SyntaxNode.new(input, i4...index, s4)
2418
- end
2419
- s1 << r4
2420
- if r4
2421
- if input.index('>', index) == index
2422
- r9 = (SyntaxNode).new(input, index...(index + 1))
2423
- @index += 1
2424
- else
2425
- terminal_parse_failure('>')
2426
- r9 = nil
2427
- end
2428
- s1 << r9
2429
- end
2430
- end
2431
- end
2432
- if s1.last
2433
- r1 = (SyntaxNode).new(input, i1...index, s1)
2434
- r1.extend(NodeClassExpression1)
2435
- r1.extend(NodeClassExpression2)
2436
- else
2437
- self.index = i1
2438
- r1 = nil
2439
- end
2440
- if r1
2441
- r0 = r1
2442
- else
2443
- if input.index('', index) == index
2444
- r10 = (SyntaxNode).new(input, index...(index + 0))
2445
- r10.extend(NodeClassExpression3)
2446
- @index += 0
2447
- else
2448
- terminal_parse_failure('')
2449
- r10 = nil
2450
- end
2451
- if r10
2452
- r0 = r10
2453
- else
2454
- self.index = i0
2455
- r0 = nil
2456
- end
2457
- end
2458
-
2459
- node_cache[:node_class_expression][start_index] = r0
2460
-
2461
- return r0
2462
- end
2463
-
2464
- module TrailingInlineModule0
2465
- def space
2466
- elements[0]
2467
- end
2468
-
2469
- def inline_module
2470
- elements[1]
2471
- end
2472
- end
2473
-
2474
- module TrailingInlineModule1
2475
- def inline_modules
2476
- [inline_module]
2477
- end
2478
-
2479
- def inline_module_name
2480
- inline_module.module_name
2481
- end
2482
- end
2483
-
2484
- module TrailingInlineModule2
2485
- def inline_modules
2486
- []
2487
- end
2488
-
2489
- def inline_module
2490
- nil
2491
- end
2492
-
2493
- def inline_module_name
2494
- nil
2495
- end
2496
- end
2497
-
2498
- def _nt_trailing_inline_module
2499
- start_index = index
2500
- if node_cache[:trailing_inline_module].has_key?(index)
2501
- cached = node_cache[:trailing_inline_module][index]
2502
- @index = cached.interval.end if cached
2503
- return cached
2504
- end
2505
-
2506
- i0 = index
2507
- i1, s1 = index, []
2508
- r2 = _nt_space
2509
- s1 << r2
2510
- if r2
2511
- r3 = _nt_inline_module
2512
- s1 << r3
2513
- end
2514
- if s1.last
2515
- r1 = (SyntaxNode).new(input, i1...index, s1)
2516
- r1.extend(TrailingInlineModule0)
2517
- r1.extend(TrailingInlineModule1)
2518
- else
2519
- self.index = i1
2520
- r1 = nil
2521
- end
2522
- if r1
2523
- r0 = r1
2524
- else
2525
- if input.index('', index) == index
2526
- r4 = (SyntaxNode).new(input, index...(index + 0))
2527
- r4.extend(TrailingInlineModule2)
2528
- @index += 0
2529
- else
2530
- terminal_parse_failure('')
2531
- r4 = nil
2532
- end
2533
- if r4
2534
- r0 = r4
2535
- else
2536
- self.index = i0
2537
- r0 = nil
2538
- end
2539
- end
2540
-
2541
- node_cache[:trailing_inline_module][start_index] = r0
2542
-
2543
- return r0
2544
- end
2545
-
2546
- module InlineModule0
2547
- end
2548
-
2549
- module InlineModule1
2550
- end
2551
-
2552
- def _nt_inline_module
2553
- start_index = index
2554
- if node_cache[:inline_module].has_key?(index)
2555
- cached = node_cache[:inline_module][index]
2556
- @index = cached.interval.end if cached
2557
- return cached
2558
- end
2559
-
2560
- i0, s0 = index, []
2561
- if input.index('{', index) == index
2562
- r1 = (SyntaxNode).new(input, index...(index + 1))
2563
- @index += 1
2564
- else
2565
- terminal_parse_failure('{')
2566
- r1 = nil
2567
- end
2568
- s0 << r1
2569
- if r1
2570
- s2, i2 = [], index
2571
- loop do
2572
- i3 = index
2573
- r4 = _nt_inline_module
2574
- if r4
2575
- r3 = r4
2576
- else
2577
- i5, s5 = index, []
2578
- i6 = index
2579
- if input.index(Regexp.new('[{}]'), index) == index
2580
- r7 = (SyntaxNode).new(input, index...(index + 1))
2581
- @index += 1
2582
- else
2583
- r7 = nil
2584
- end
2585
- if r7
2586
- r6 = nil
2587
- else
2588
- self.index = i6
2589
- r6 = SyntaxNode.new(input, index...index)
2590
- end
2591
- s5 << r6
2592
- if r6
2593
- if index < input_length
2594
- r8 = (SyntaxNode).new(input, index...(index + 1))
2595
- @index += 1
2596
- else
2597
- terminal_parse_failure("any character")
2598
- r8 = nil
2599
- end
2600
- s5 << r8
2601
- end
2602
- if s5.last
2603
- r5 = (SyntaxNode).new(input, i5...index, s5)
2604
- r5.extend(InlineModule0)
2605
- else
2606
- self.index = i5
2607
- r5 = nil
2608
- end
2609
- if r5
2610
- r3 = r5
2611
- else
2612
- self.index = i3
2613
- r3 = nil
2614
- end
2615
- end
2616
- if r3
2617
- s2 << r3
2618
- else
2619
- break
2620
- end
2621
- end
2622
- r2 = SyntaxNode.new(input, i2...index, s2)
2623
- s0 << r2
2624
- if r2
2625
- if input.index('}', index) == index
2626
- r9 = (SyntaxNode).new(input, index...(index + 1))
2627
- @index += 1
2628
- else
2629
- terminal_parse_failure('}')
2630
- r9 = nil
2631
- end
2632
- s0 << r9
2633
- end
2634
- end
2635
- if s0.last
2636
- r0 = (InlineModule).new(input, i0...index, s0)
2637
- r0.extend(InlineModule1)
2638
- else
2639
- self.index = i0
2640
- r0 = nil
2641
- end
2642
-
2643
- node_cache[:inline_module][start_index] = r0
2644
-
2645
- return r0
2646
- end
2647
-
2648
- module KeywordInsideGrammar0
2649
- end
2650
-
2651
- def _nt_keyword_inside_grammar
2652
- start_index = index
2653
- if node_cache[:keyword_inside_grammar].has_key?(index)
2654
- cached = node_cache[:keyword_inside_grammar][index]
2655
- @index = cached.interval.end if cached
2656
- return cached
2657
- end
2658
-
2659
- i0, s0 = index, []
2660
- i1 = index
2661
- if input.index('rule', index) == index
2662
- r2 = (SyntaxNode).new(input, index...(index + 4))
2663
- @index += 4
2664
- else
2665
- terminal_parse_failure('rule')
2666
- r2 = nil
2667
- end
2668
- if r2
2669
- r1 = r2
2670
- else
2671
- if input.index('end', index) == index
2672
- r3 = (SyntaxNode).new(input, index...(index + 3))
2673
- @index += 3
2674
- else
2675
- terminal_parse_failure('end')
2676
- r3 = nil
2677
- end
2678
- if r3
2679
- r1 = r3
2680
- else
2681
- self.index = i1
2682
- r1 = nil
2683
- end
2684
- end
2685
- s0 << r1
2686
- if r1
2687
- i4 = index
2688
- r5 = _nt_non_space_char
2689
- if r5
2690
- r4 = nil
2691
- else
2692
- self.index = i4
2693
- r4 = SyntaxNode.new(input, index...index)
2694
- end
2695
- s0 << r4
2696
- end
2697
- if s0.last
2698
- r0 = (SyntaxNode).new(input, i0...index, s0)
2699
- r0.extend(KeywordInsideGrammar0)
2700
- else
2701
- self.index = i0
2702
- r0 = nil
2703
- end
2704
-
2705
- node_cache[:keyword_inside_grammar][start_index] = r0
2706
-
2707
- return r0
2708
- end
2709
-
2710
- module NonSpaceChar0
2711
- end
2712
-
2713
- def _nt_non_space_char
2714
- start_index = index
2715
- if node_cache[:non_space_char].has_key?(index)
2716
- cached = node_cache[:non_space_char][index]
2717
- @index = cached.interval.end if cached
2718
- return cached
2719
- end
2720
-
2721
- i0, s0 = index, []
2722
- i1 = index
2723
- r2 = _nt_space
2724
- if r2
2725
- r1 = nil
2726
- else
2727
- self.index = i1
2728
- r1 = SyntaxNode.new(input, index...index)
2729
- end
2730
- s0 << r1
2731
- if r1
2732
- if index < input_length
2733
- r3 = (SyntaxNode).new(input, index...(index + 1))
2734
- @index += 1
2735
- else
2736
- terminal_parse_failure("any character")
2737
- r3 = nil
2738
- end
2739
- s0 << r3
2740
- end
2741
- if s0.last
2742
- r0 = (SyntaxNode).new(input, i0...index, s0)
2743
- r0.extend(NonSpaceChar0)
2744
- else
2745
- self.index = i0
2746
- r0 = nil
2747
- end
2748
-
2749
- node_cache[:non_space_char][start_index] = r0
2750
-
2751
- return r0
2752
- end
2753
-
2754
- def _nt_alpha_char
2755
- start_index = index
2756
- if node_cache[:alpha_char].has_key?(index)
2757
- cached = node_cache[:alpha_char][index]
2758
- @index = cached.interval.end if cached
2759
- return cached
2760
- end
2761
-
2762
- if input.index(Regexp.new('[A-Za-z_]'), index) == index
2763
- r0 = (SyntaxNode).new(input, index...(index + 1))
2764
- @index += 1
2765
- else
2766
- r0 = nil
2767
- end
2768
-
2769
- node_cache[:alpha_char][start_index] = r0
2770
-
2771
- return r0
2772
- end
2773
-
2774
- def _nt_alphanumeric_char
2775
- start_index = index
2776
- if node_cache[:alphanumeric_char].has_key?(index)
2777
- cached = node_cache[:alphanumeric_char][index]
2778
- @index = cached.interval.end if cached
2779
- return cached
2780
- end
2781
-
2782
- i0 = index
2783
- r1 = _nt_alpha_char
2784
- if r1
2785
- r0 = r1
2786
- else
2787
- if input.index(Regexp.new('[0-9]'), index) == index
2788
- r2 = (SyntaxNode).new(input, index...(index + 1))
2789
- @index += 1
2790
- else
2791
- r2 = nil
2792
- end
2793
- if r2
2794
- r0 = r2
2795
- else
2796
- self.index = i0
2797
- r0 = nil
2798
- end
2799
- end
2800
-
2801
- node_cache[:alphanumeric_char][start_index] = r0
2802
-
2803
- return r0
2804
- end
2805
-
2806
- def _nt_space
2807
- start_index = index
2808
- if node_cache[:space].has_key?(index)
2809
- cached = node_cache[:space][index]
2810
- @index = cached.interval.end if cached
2811
- return cached
2812
- end
2813
-
2814
- s0, i0 = [], index
2815
- loop do
2816
- i1 = index
2817
- r2 = _nt_white
2818
- if r2
2819
- r1 = r2
2820
- else
2821
- r3 = _nt_comment_to_eol
2822
- if r3
2823
- r1 = r3
2824
- else
2825
- self.index = i1
2826
- r1 = nil
2827
- end
2828
- end
2829
- if r1
2830
- s0 << r1
2831
- else
2832
- break
2833
- end
2834
- end
2835
- if s0.empty?
2836
- self.index = i0
2837
- r0 = nil
2838
- else
2839
- r0 = SyntaxNode.new(input, i0...index, s0)
2840
- end
2841
-
2842
- node_cache[:space][start_index] = r0
2843
-
2844
- return r0
2845
- end
2846
-
2847
- module CommentToEol0
2848
- end
2849
-
2850
- module CommentToEol1
2851
- end
2852
-
2853
- def _nt_comment_to_eol
2854
- start_index = index
2855
- if node_cache[:comment_to_eol].has_key?(index)
2856
- cached = node_cache[:comment_to_eol][index]
2857
- @index = cached.interval.end if cached
2858
- return cached
2859
- end
2860
-
2861
- i0, s0 = index, []
2862
- if input.index('#', index) == index
2863
- r1 = (SyntaxNode).new(input, index...(index + 1))
2864
- @index += 1
2865
- else
2866
- terminal_parse_failure('#')
2867
- r1 = nil
2868
- end
2869
- s0 << r1
2870
- if r1
2871
- s2, i2 = [], index
2872
- loop do
2873
- i3, s3 = index, []
2874
- i4 = index
2875
- if input.index("\n", index) == index
2876
- r5 = (SyntaxNode).new(input, index...(index + 1))
2877
- @index += 1
2878
- else
2879
- terminal_parse_failure("\n")
2880
- r5 = nil
2881
- end
2882
- if r5
2883
- r4 = nil
2884
- else
2885
- self.index = i4
2886
- r4 = SyntaxNode.new(input, index...index)
2887
- end
2888
- s3 << r4
2889
- if r4
2890
- if index < input_length
2891
- r6 = (SyntaxNode).new(input, index...(index + 1))
2892
- @index += 1
2893
- else
2894
- terminal_parse_failure("any character")
2895
- r6 = nil
2896
- end
2897
- s3 << r6
2898
- end
2899
- if s3.last
2900
- r3 = (SyntaxNode).new(input, i3...index, s3)
2901
- r3.extend(CommentToEol0)
2902
- else
2903
- self.index = i3
2904
- r3 = nil
2905
- end
2906
- if r3
2907
- s2 << r3
2908
- else
2909
- break
2910
- end
2911
- end
2912
- r2 = SyntaxNode.new(input, i2...index, s2)
2913
- s0 << r2
2914
- end
2915
- if s0.last
2916
- r0 = (SyntaxNode).new(input, i0...index, s0)
2917
- r0.extend(CommentToEol1)
2918
- else
2919
- self.index = i0
2920
- r0 = nil
2921
- end
2922
-
2923
- node_cache[:comment_to_eol][start_index] = r0
2924
-
2925
- return r0
2926
- end
2927
-
2928
- def _nt_white
2929
- start_index = index
2930
- if node_cache[:white].has_key?(index)
2931
- cached = node_cache[:white][index]
2932
- @index = cached.interval.end if cached
2933
- return cached
2934
- end
2935
-
2936
- if input.index(Regexp.new('[ \\t\\n\\r]'), index) == index
2937
- r0 = (SyntaxNode).new(input, index...(index + 1))
2938
- @index += 1
2939
- else
2940
- r0 = nil
2941
- end
2942
-
2943
- node_cache[:white][start_index] = r0
2944
-
2945
- return r0
2946
- end
2947
-
2948
- end
2949
-
2950
- class MetagrammarParser < Treetop::Runtime::CompiledParser
2951
- include Metagrammar
2952
- end
2953
-
2954
- end
2955
- end