tripper 0.0.3d

Sign up to get free protection for your applications and to get access to all the features.
Files changed (210) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +29 -0
  6. data/Rakefile +1 -0
  7. data/TODO +26 -0
  8. data/lib/generators/USAGE +8 -0
  9. data/lib/generators/tripper.rb +51 -0
  10. data/lib/generators/tripper/commonalities/commonalities.rb +226 -0
  11. data/lib/generators/tripper/detect_changes/detect_changes_generator.rb +173 -0
  12. data/lib/generators/tripper/detect_changes/model.rb +226 -0
  13. data/lib/generators/tripper/detect_changes/templates/migration.rb +7 -0
  14. data/lib/generators/tripper/detect_changes/templates/model/belongs_to.rb +1 -0
  15. data/lib/generators/tripper/detect_changes/templates/model/has_one.rb +1 -0
  16. data/lib/generators/tripper/detect_changes/templates/model/validates.rb +2 -0
  17. data/lib/generators/tripper/from_community/from_community_generator.rb +95 -0
  18. data/lib/generators/tripper/from_community/templates/actions/create.rb +8 -0
  19. data/lib/generators/tripper/from_community/templates/actions/destroy.rb +5 -0
  20. data/lib/generators/tripper/from_community/templates/actions/edit.rb +3 -0
  21. data/lib/generators/tripper/from_community/templates/actions/index.rb +3 -0
  22. data/lib/generators/tripper/from_community/templates/actions/new.rb +3 -0
  23. data/lib/generators/tripper/from_community/templates/actions/show.rb +3 -0
  24. data/lib/generators/tripper/from_community/templates/actions/update.rb +8 -0
  25. data/lib/generators/tripper/from_community/templates/controller.rb +3 -0
  26. data/lib/generators/tripper/from_community/templates/fixtures.yml +9 -0
  27. data/lib/generators/tripper/from_community/templates/helper.rb +2 -0
  28. data/lib/generators/tripper/from_community/templates/migration.rb +30 -0
  29. data/lib/generators/tripper/from_community/templates/model.rb +54 -0
  30. data/lib/generators/tripper/from_community/templates/tests/rspec/actions/create.rb +11 -0
  31. data/lib/generators/tripper/from_community/templates/tests/rspec/actions/destroy.rb +6 -0
  32. data/lib/generators/tripper/from_community/templates/tests/rspec/actions/edit.rb +4 -0
  33. data/lib/generators/tripper/from_community/templates/tests/rspec/actions/index.rb +4 -0
  34. data/lib/generators/tripper/from_community/templates/tests/rspec/actions/new.rb +4 -0
  35. data/lib/generators/tripper/from_community/templates/tests/rspec/actions/show.rb +4 -0
  36. data/lib/generators/tripper/from_community/templates/tests/rspec/actions/update.rb +11 -0
  37. data/lib/generators/tripper/from_community/templates/tests/rspec/controller.rb +8 -0
  38. data/lib/generators/tripper/from_community/templates/tests/rspec/model.rb +7 -0
  39. data/lib/generators/tripper/from_community/templates/tests/shoulda/actions/create.rb +13 -0
  40. data/lib/generators/tripper/from_community/templates/tests/shoulda/actions/destroy.rb +8 -0
  41. data/lib/generators/tripper/from_community/templates/tests/shoulda/actions/edit.rb +6 -0
  42. data/lib/generators/tripper/from_community/templates/tests/shoulda/actions/index.rb +6 -0
  43. data/lib/generators/tripper/from_community/templates/tests/shoulda/actions/new.rb +6 -0
  44. data/lib/generators/tripper/from_community/templates/tests/shoulda/actions/show.rb +6 -0
  45. data/lib/generators/tripper/from_community/templates/tests/shoulda/actions/update.rb +13 -0
  46. data/lib/generators/tripper/from_community/templates/tests/shoulda/controller.rb +5 -0
  47. data/lib/generators/tripper/from_community/templates/tests/shoulda/model.rb +7 -0
  48. data/lib/generators/tripper/from_community/templates/tests/testunit/actions/create.rb +11 -0
  49. data/lib/generators/tripper/from_community/templates/tests/testunit/actions/destroy.rb +6 -0
  50. data/lib/generators/tripper/from_community/templates/tests/testunit/actions/edit.rb +4 -0
  51. data/lib/generators/tripper/from_community/templates/tests/testunit/actions/index.rb +4 -0
  52. data/lib/generators/tripper/from_community/templates/tests/testunit/actions/new.rb +4 -0
  53. data/lib/generators/tripper/from_community/templates/tests/testunit/actions/show.rb +4 -0
  54. data/lib/generators/tripper/from_community/templates/tests/testunit/actions/update.rb +11 -0
  55. data/lib/generators/tripper/from_community/templates/tests/testunit/controller.rb +5 -0
  56. data/lib/generators/tripper/from_community/templates/tests/testunit/model.rb +7 -0
  57. data/lib/generators/tripper/from_community/templates/views/erb/_form.html.erb +16 -0
  58. data/lib/generators/tripper/from_community/templates/views/erb/edit.html.erb +14 -0
  59. data/lib/generators/tripper/from_community/templates/views/erb/index.html.erb +29 -0
  60. data/lib/generators/tripper/from_community/templates/views/erb/new.html.erb +7 -0
  61. data/lib/generators/tripper/from_community/templates/views/erb/show.html.erb +25 -0
  62. data/lib/generators/tripper/from_community/templates/views/haml/_form.html.haml +9 -0
  63. data/lib/generators/tripper/from_community/templates/views/haml/edit.html.haml +14 -0
  64. data/lib/generators/tripper/from_community/templates/views/haml/index.html.haml +25 -0
  65. data/lib/generators/tripper/from_community/templates/views/haml/new.html.haml +7 -0
  66. data/lib/generators/tripper/from_community/templates/views/haml/show.html.haml +20 -0
  67. data/lib/generators/tripper/layout/USAGE +18 -0
  68. data/lib/generators/tripper/layout/layout_generator.rb +29 -0
  69. data/lib/generators/tripper/layout/templates/error_messages_helper.rb +23 -0
  70. data/lib/generators/tripper/layout/templates/layout.html.erb +19 -0
  71. data/lib/generators/tripper/layout/templates/layout.html.haml +21 -0
  72. data/lib/generators/tripper/layout/templates/layout_helper.rb +22 -0
  73. data/lib/generators/tripper/layout/templates/stylesheet.css +83 -0
  74. data/lib/generators/tripper/layout/templates/stylesheet.sass +73 -0
  75. data/lib/generators/tripper/obj_constraint.rb +23 -0
  76. data/lib/generators/tripper/predicate.rb +12 -0
  77. data/lib/generators/tripper/sync_with_community/model.rb +260 -0
  78. data/lib/generators/tripper/sync_with_community/sync_with_community_generator.rb +310 -0
  79. data/lib/generators/tripper/sync_with_community/templates/migration.rb +7 -0
  80. data/lib/generators/tripper/sync_with_community/templates/model/belongs_to.rb +1 -0
  81. data/lib/generators/tripper/sync_with_community/templates/model/has_one.rb +1 -0
  82. data/lib/generators/tripper/sync_with_community/templates/model/validates.rb +2 -0
  83. data/lib/generators/tripper/templates/actions/create.rb +8 -0
  84. data/lib/generators/tripper/templates/actions/destroy.rb +5 -0
  85. data/lib/generators/tripper/templates/actions/edit.rb +3 -0
  86. data/lib/generators/tripper/templates/actions/index.rb +3 -0
  87. data/lib/generators/tripper/templates/actions/new.rb +3 -0
  88. data/lib/generators/tripper/templates/actions/show.rb +3 -0
  89. data/lib/generators/tripper/templates/actions/update.rb +8 -0
  90. data/lib/generators/tripper/templates/controller.rb +3 -0
  91. data/lib/generators/tripper/templates/fixtures.yml +9 -0
  92. data/lib/generators/tripper/templates/helper.rb +2 -0
  93. data/lib/generators/tripper/templates/migration.rb +30 -0
  94. data/lib/generators/tripper/templates/model.rb +54 -0
  95. data/lib/generators/tripper/templates/tests/rspec/actions/create.rb +11 -0
  96. data/lib/generators/tripper/templates/tests/rspec/actions/destroy.rb +6 -0
  97. data/lib/generators/tripper/templates/tests/rspec/actions/edit.rb +4 -0
  98. data/lib/generators/tripper/templates/tests/rspec/actions/index.rb +4 -0
  99. data/lib/generators/tripper/templates/tests/rspec/actions/new.rb +4 -0
  100. data/lib/generators/tripper/templates/tests/rspec/actions/show.rb +4 -0
  101. data/lib/generators/tripper/templates/tests/rspec/actions/update.rb +11 -0
  102. data/lib/generators/tripper/templates/tests/rspec/controller.rb +8 -0
  103. data/lib/generators/tripper/templates/tests/rspec/model.rb +7 -0
  104. data/lib/generators/tripper/templates/tests/shoulda/actions/create.rb +13 -0
  105. data/lib/generators/tripper/templates/tests/shoulda/actions/destroy.rb +8 -0
  106. data/lib/generators/tripper/templates/tests/shoulda/actions/edit.rb +6 -0
  107. data/lib/generators/tripper/templates/tests/shoulda/actions/index.rb +6 -0
  108. data/lib/generators/tripper/templates/tests/shoulda/actions/new.rb +6 -0
  109. data/lib/generators/tripper/templates/tests/shoulda/actions/show.rb +6 -0
  110. data/lib/generators/tripper/templates/tests/shoulda/actions/update.rb +13 -0
  111. data/lib/generators/tripper/templates/tests/shoulda/controller.rb +5 -0
  112. data/lib/generators/tripper/templates/tests/shoulda/model.rb +7 -0
  113. data/lib/generators/tripper/templates/tests/testunit/actions/create.rb +11 -0
  114. data/lib/generators/tripper/templates/tests/testunit/actions/destroy.rb +6 -0
  115. data/lib/generators/tripper/templates/tests/testunit/actions/edit.rb +4 -0
  116. data/lib/generators/tripper/templates/tests/testunit/actions/index.rb +4 -0
  117. data/lib/generators/tripper/templates/tests/testunit/actions/new.rb +4 -0
  118. data/lib/generators/tripper/templates/tests/testunit/actions/show.rb +4 -0
  119. data/lib/generators/tripper/templates/tests/testunit/actions/update.rb +11 -0
  120. data/lib/generators/tripper/templates/tests/testunit/controller.rb +5 -0
  121. data/lib/generators/tripper/templates/tests/testunit/model.rb +7 -0
  122. data/lib/generators/tripper/templates/views/erb/_form.html.erb +16 -0
  123. data/lib/generators/tripper/templates/views/erb/edit.html.erb +14 -0
  124. data/lib/generators/tripper/templates/views/erb/index.html.erb +29 -0
  125. data/lib/generators/tripper/templates/views/erb/new.html.erb +7 -0
  126. data/lib/generators/tripper/templates/views/erb/show.html.erb +25 -0
  127. data/lib/generators/tripper/templates/views/haml/_form.html.haml +9 -0
  128. data/lib/generators/tripper/templates/views/haml/edit.html.haml +14 -0
  129. data/lib/generators/tripper/templates/views/haml/index.html.haml +25 -0
  130. data/lib/generators/tripper/templates/views/haml/new.html.haml +7 -0
  131. data/lib/generators/tripper/templates/views/haml/show.html.haml +20 -0
  132. data/lib/tripper.rb +1 -0
  133. data/lib/tripper/GOSPLDB/config/database.yml +6 -0
  134. data/lib/tripper/GOSPLDB/config_db.rb +9 -0
  135. data/lib/tripper/GOSPLDB/console +2 -0
  136. data/lib/tripper/GOSPLDB/gospl_db_classes.rb +343 -0
  137. data/lib/tripper/GOSPLDB/play_around.rb +4 -0
  138. data/lib/tripper/GOSPLDB/rakefile.rb +88 -0
  139. data/lib/tripper/GOSPLDBToORMDB/gospl_db_to_orm_db.rb +88 -0
  140. data/lib/tripper/ORMDB/config/database.yml +6 -0
  141. data/lib/tripper/ORMDB/config_db.rb +9 -0
  142. data/lib/tripper/ORMDB/console +2 -0
  143. data/lib/tripper/ORMDB/db/migrations/0_create_orm_object_table.rb +17 -0
  144. data/lib/tripper/ORMDB/db/migrations/10_create_no_lot_constraint_table.rb +17 -0
  145. data/lib/tripper/ORMDB/db/migrations/11_create_value_constraint_table.rb +14 -0
  146. data/lib/tripper/ORMDB/db/migrations/12_create_value_constraint_value_table.rb +16 -0
  147. data/lib/tripper/ORMDB/db/migrations/13_create_value_range_table.rb +15 -0
  148. data/lib/tripper/ORMDB/db/migrations/14_create_frequency_constraint_table.rb +16 -0
  149. data/lib/tripper/ORMDB/db/migrations/15_create_value_table.rb +15 -0
  150. data/lib/tripper/ORMDB/db/migrations/16_create_ring_constraint_table.rb +14 -0
  151. data/lib/tripper/ORMDB/db/migrations/17_create_orm_schema_table.rb +21 -0
  152. data/lib/tripper/ORMDB/db/migrations/18_create_uniqueness_constraint_table.rb +15 -0
  153. data/lib/tripper/ORMDB/db/migrations/1_create_no_lot_table.rb +18 -0
  154. data/lib/tripper/ORMDB/db/migrations/2_create_lot_table.rb +18 -0
  155. data/lib/tripper/ORMDB/db/migrations/3_create_object_role_table.rb +18 -0
  156. data/lib/tripper/ORMDB/db/migrations/4_create_reference_table.rb +17 -0
  157. data/lib/tripper/ORMDB/db/migrations/5_create_predicate_table.rb +18 -0
  158. data/lib/tripper/ORMDB/db/migrations/6_create_object_role_constraint_table.rb +18 -0
  159. data/lib/tripper/ORMDB/db/migrations/7_create_subtype_table.rb +17 -0
  160. data/lib/tripper/ORMDB/db/migrations/8_create_mandatory_constraint_table.rb +15 -0
  161. data/lib/tripper/ORMDB/db/migrations/9_create_constraint_table.rb +15 -0
  162. data/lib/tripper/ORMDB/db/orm_ml.sqlite3 +0 -0
  163. data/lib/tripper/ORMDB/db/orm_ml.sqlite3.backup +0 -0
  164. data/lib/tripper/ORMDB/db/orm_ml.sqlite3.juli28-2013 +0 -0
  165. data/lib/tripper/ORMDB/db/orm_ml.sqlite3.old +0 -0
  166. data/lib/tripper/ORMDB/db/schema.rb +58 -0
  167. data/lib/tripper/ORMDB/erd.pdf +0 -0
  168. data/lib/tripper/ORMDB/migrate_db.rb +21 -0
  169. data/lib/tripper/ORMDB/orm_db_classes.rb +423 -0
  170. data/lib/tripper/ORMDB/populate.rb +4 -0
  171. data/lib/tripper/ORMDB/rakefile.rb +88 -0
  172. data/lib/tripper/model_parsers/attribute_parser/AttributeParser.g +50 -0
  173. data/lib/tripper/model_parsers/attribute_parser/AttributeParser.tokens +13 -0
  174. data/lib/tripper/model_parsers/attribute_parser/AttributeParserLexer.rb +538 -0
  175. data/lib/tripper/model_parsers/attribute_parser/AttributeParserParser.rb +412 -0
  176. data/lib/tripper/model_parsers/attribute_parser/playing_around.rb +14 -0
  177. data/lib/tripper/model_parsers/belongs_to/BelongsToParser.g +63 -0
  178. data/lib/tripper/model_parsers/belongs_to/BelongsToParser.tokens +21 -0
  179. data/lib/tripper/model_parsers/belongs_to/BelongsToParserLexer.rb +667 -0
  180. data/lib/tripper/model_parsers/belongs_to/BelongsToParserParser.rb +552 -0
  181. data/lib/tripper/model_parsers/belongs_to/playing_around.rb +9 -0
  182. data/lib/tripper/model_parsers/database_fields_parser/DatabaseFieldsParser.g +47 -0
  183. data/lib/tripper/model_parsers/database_fields_parser/DatabaseFieldsParser.tokens +14 -0
  184. data/lib/tripper/model_parsers/database_fields_parser/DatabaseFieldsParserLexer.rb +513 -0
  185. data/lib/tripper/model_parsers/database_fields_parser/DatabaseFieldsParserParser.rb +279 -0
  186. data/lib/tripper/model_parsers/database_fields_parser/playing_around.rb +14 -0
  187. data/lib/tripper/model_parsers/has_and_belongs_to_many/HasAndBelongsToManyParser.g +92 -0
  188. data/lib/tripper/model_parsers/has_and_belongs_to_many/HasAndBelongsToManyParser.tokens +25 -0
  189. data/lib/tripper/model_parsers/has_and_belongs_to_many/HasAndBelongsToManyParserLexer.rb +787 -0
  190. data/lib/tripper/model_parsers/has_and_belongs_to_many/HasAndBelongsToManyParserParser.rb +1024 -0
  191. data/lib/tripper/model_parsers/has_and_belongs_to_many/playing_around.rb +9 -0
  192. data/lib/tripper/model_parsers/has_many/HasManyParser.g +77 -0
  193. data/lib/tripper/model_parsers/has_many/HasManyParser.tokens +23 -0
  194. data/lib/tripper/model_parsers/has_many/HasManyParserLexer.rb +710 -0
  195. data/lib/tripper/model_parsers/has_many/HasManyParserParser.rb +788 -0
  196. data/lib/tripper/model_parsers/has_many/playing_around.rb +9 -0
  197. data/lib/tripper/model_parsers/has_one/HasOneParser.g +63 -0
  198. data/lib/tripper/model_parsers/has_one/HasOneParser.tokens +21 -0
  199. data/lib/tripper/model_parsers/has_one/HasOneParserLexer.rb +664 -0
  200. data/lib/tripper/model_parsers/has_one/HasOneParserParser.rb +552 -0
  201. data/lib/tripper/model_parsers/has_one/playing_around.rb +9 -0
  202. data/lib/tripper/model_parsers/validates/ValidatesParser.g +68 -0
  203. data/lib/tripper/model_parsers/validates/ValidatesParser.tokens +35 -0
  204. data/lib/tripper/model_parsers/validates/ValidatesParserLexer.rb +899 -0
  205. data/lib/tripper/model_parsers/validates/ValidatesParserParser.rb +869 -0
  206. data/lib/tripper/model_parsers/validates/playing_around.rb +9 -0
  207. data/lib/tripper/rails.rb +8 -0
  208. data/lib/tripper/version.rb +3 -0
  209. data/tripper.gemspec +33 -0
  210. metadata +408 -0
@@ -0,0 +1,869 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g
4
+ # --
5
+ # Generated using ANTLR version: 3.2.1-SNAPSHOT Jul 31, 2010 19:34:52
6
+ # Ruby runtime library version: 1.8.11
7
+ # Input grammar file: /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g
8
+ # Generated at: 2013-05-05 11:33:11
9
+ #
10
+
11
+ # ~~~> start load path setup
12
+ this_directory = File.expand_path( File.dirname( __FILE__ ) )
13
+ $LOAD_PATH.unshift( this_directory ) unless $LOAD_PATH.include?( this_directory )
14
+
15
+ antlr_load_failed = proc do
16
+ load_path = $LOAD_PATH.map { |dir| ' - ' << dir }.join( $/ )
17
+ raise LoadError, <<-END.strip!
18
+
19
+ Failed to load the ANTLR3 runtime library (version 1.8.11):
20
+
21
+ Ensure the library has been installed on your system and is available
22
+ on the load path. If rubygems is available on your system, this can
23
+ be done with the command:
24
+
25
+ gem install antlr3
26
+
27
+ Current load path:
28
+ #{ load_path }
29
+
30
+ END
31
+ end
32
+
33
+ defined?( ANTLR3 ) or begin
34
+
35
+ # 1: try to load the ruby antlr3 runtime library from the system path
36
+ require 'antlr3'
37
+
38
+ rescue LoadError
39
+
40
+ # 2: try to load rubygems if it isn't already loaded
41
+ defined?( Gem ) or begin
42
+ require 'rubygems'
43
+ rescue LoadError
44
+ antlr_load_failed.call
45
+ end
46
+
47
+ # 3: try to activate the antlr3 gem
48
+ begin
49
+ Gem.activate( 'antlr3', '~> 1.8.11' )
50
+ rescue Gem::LoadError
51
+ antlr_load_failed.call
52
+ end
53
+
54
+ require 'antlr3'
55
+
56
+ end
57
+ # <~~~ end load path setup
58
+
59
+ # - - - - - - begin action @parser::header - - - - - -
60
+ # /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g
61
+
62
+
63
+ def strip_quotes str
64
+ return str[1,(str.length)-2]
65
+ end
66
+
67
+ # - - - - - - end action @parser::header - - - - - - -
68
+
69
+
70
+ module ValidatesParser
71
+ # TokenData defines all of the token type integer values
72
+ # as constants, which will be included in all
73
+ # ANTLR-generated recognizers.
74
+ const_defined?( :TokenData ) or TokenData = ANTLR3::TokenScheme.new
75
+
76
+ module TokenData
77
+
78
+ # define the token constants
79
+ define_tokens( :T__24 => 24, :T__23 => 23, :T__22 => 22, :T__21 => 21,
80
+ :T__20 => 20, :ATTRIBUTE => 5, :WHITESPACE => 9, :EOF => -1,
81
+ :ACTUALSTRING => 10, :T__19 => 19, :T__16 => 16, :HC => 6,
82
+ :T__15 => 15, :T__18 => 18, :T__17 => 17, :T__12 => 12,
83
+ :T__11 => 11, :T__14 => 14, :T__13 => 13, :LC => 7, :DIGIT => 8,
84
+ :COMMENT => 4 )
85
+
86
+ # register the proper human-readable name or literal value
87
+ # for each token type
88
+ #
89
+ # this is necessary because anonymous tokens, which are
90
+ # created from literal values in the grammar, do not
91
+ # have descriptive names
92
+ register_names( "COMMENT", "ATTRIBUTE", "HC", "LC", "DIGIT", "WHITESPACE",
93
+ "ACTUALSTRING", "'validates'", "','", "':'", "'uniqueness'",
94
+ "'presence'", "'=>'", "'true'", "'{'", "'}'", "'scope'",
95
+ "'['", "']'", "'\\''", "'\"'" )
96
+
97
+ end
98
+
99
+
100
+ class Parser < ANTLR3::Parser
101
+ @grammar_home = ValidatesParser
102
+
103
+ RULE_METHODS = [ :comment, :validates, :validation_helper, :validation_helper_old_syntax,
104
+ :validation_helper_new_syntax, :ruby_scope, :scope_old_syntax,
105
+ :scope_new_syntax, :list, :attribute, :list_attribute ].freeze
106
+
107
+
108
+ include TokenData
109
+
110
+ begin
111
+ generated_using( "/Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g", "3.2.1-SNAPSHOT Jul 31, 2010 19:34:52", "1.8.11" )
112
+ rescue NoMethodError => error
113
+ # ignore
114
+ end
115
+
116
+ def initialize( input, options = {} )
117
+ super( input, options )
118
+
119
+
120
+ end
121
+
122
+ attr_accessor :attribute, :list, :type
123
+
124
+ # - - - - - - - - - - - - Rules - - - - - - - - - - - - -
125
+
126
+ #
127
+ # parser rule comment
128
+ #
129
+ # (in /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g)
130
+ # 17:1: comment : COMMENT ;
131
+ #
132
+ def comment
133
+ # -> uncomment the next line to manually enable rule tracing
134
+ # trace_in( __method__, 1 )
135
+
136
+ begin
137
+ # at line 17:10: COMMENT
138
+ match( COMMENT, TOKENS_FOLLOWING_COMMENT_IN_comment_35 )
139
+
140
+ rescue ANTLR3::Error::RecognitionError => re
141
+ report_error(re)
142
+ recover(re)
143
+
144
+ ensure
145
+ # -> uncomment the next line to manually enable rule tracing
146
+ # trace_out( __method__, 1 )
147
+
148
+ end
149
+
150
+ return
151
+ end
152
+
153
+
154
+ #
155
+ # parser rule validates
156
+ #
157
+ # (in /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g)
158
+ # 19:1: validates returns [expr] : ( (c= COMMENT )* | 'validates' attribute validation_helper ( comment )? ) ;
159
+ #
160
+ def validates
161
+ # -> uncomment the next line to manually enable rule tracing
162
+ # trace_in( __method__, 2 )
163
+ expr = nil
164
+ c = nil
165
+
166
+ begin
167
+ # at line 19:27: ( (c= COMMENT )* | 'validates' attribute validation_helper ( comment )? )
168
+ # at line 19:27: ( (c= COMMENT )* | 'validates' attribute validation_helper ( comment )? )
169
+ alt_3 = 2
170
+ look_3_0 = @input.peek( 1 )
171
+
172
+ if ( look_3_0 == EOF || look_3_0 == COMMENT )
173
+ alt_3 = 1
174
+ elsif ( look_3_0 == T__11 )
175
+ alt_3 = 2
176
+ else
177
+ raise NoViableAlternative( "", 3, 0 )
178
+ end
179
+ case alt_3
180
+ when 1
181
+ # at line 19:28: (c= COMMENT )*
182
+ # at line 19:28: (c= COMMENT )*
183
+ while true # decision 1
184
+ alt_1 = 2
185
+ look_1_0 = @input.peek( 1 )
186
+
187
+ if ( look_1_0 == COMMENT )
188
+ alt_1 = 1
189
+
190
+ end
191
+ case alt_1
192
+ when 1
193
+ # at line 19:29: c= COMMENT
194
+ c = match( COMMENT, TOKENS_FOLLOWING_COMMENT_IN_validates_50 )
195
+
196
+ else
197
+ break # out of loop for decision 1
198
+ end
199
+ end # loop for decision 1
200
+
201
+ when 2
202
+ # at line 19:43: 'validates' attribute validation_helper ( comment )?
203
+ match( T__11, TOKENS_FOLLOWING_T__11_IN_validates_56 )
204
+ @state.following.push( TOKENS_FOLLOWING_attribute_IN_validates_58 )
205
+ attribute
206
+ @state.following.pop
207
+ @state.following.push( TOKENS_FOLLOWING_validation_helper_IN_validates_60 )
208
+ validation_helper
209
+ @state.following.pop
210
+ # at line 19:83: ( comment )?
211
+ alt_2 = 2
212
+ look_2_0 = @input.peek( 1 )
213
+
214
+ if ( look_2_0 == COMMENT )
215
+ alt_2 = 1
216
+ end
217
+ case alt_2
218
+ when 1
219
+ # at line 19:83: comment
220
+ @state.following.push( TOKENS_FOLLOWING_comment_IN_validates_62 )
221
+ comment
222
+ @state.following.pop
223
+
224
+ end
225
+
226
+ end
227
+ # --> action
228
+
229
+ @list = [] unless @list
230
+ expr = {type: @type, attribute: @attribute, on: @list} unless c
231
+
232
+ # <-- action
233
+
234
+ rescue ANTLR3::Error::RecognitionError => re
235
+ report_error(re)
236
+ recover(re)
237
+
238
+ ensure
239
+ # -> uncomment the next line to manually enable rule tracing
240
+ # trace_out( __method__, 2 )
241
+
242
+ end
243
+
244
+ return expr
245
+ end
246
+
247
+
248
+ #
249
+ # parser rule validation_helper
250
+ #
251
+ # (in /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g)
252
+ # 26:1: validation_helper : ',' ( validation_helper_old_syntax | validation_helper_new_syntax ) ;
253
+ #
254
+ def validation_helper
255
+ # -> uncomment the next line to manually enable rule tracing
256
+ # trace_in( __method__, 3 )
257
+
258
+ begin
259
+ # at line 26:20: ',' ( validation_helper_old_syntax | validation_helper_new_syntax )
260
+ match( T__12, TOKENS_FOLLOWING_T__12_IN_validation_helper_75 )
261
+ # at line 26:24: ( validation_helper_old_syntax | validation_helper_new_syntax )
262
+ alt_4 = 2
263
+ look_4_0 = @input.peek( 1 )
264
+
265
+ if ( look_4_0 == T__13 )
266
+ alt_4 = 1
267
+ elsif ( look_4_0.between?( T__14, T__15 ) )
268
+ alt_4 = 2
269
+ else
270
+ raise NoViableAlternative( "", 4, 0 )
271
+ end
272
+ case alt_4
273
+ when 1
274
+ # at line 26:25: validation_helper_old_syntax
275
+ @state.following.push( TOKENS_FOLLOWING_validation_helper_old_syntax_IN_validation_helper_78 )
276
+ validation_helper_old_syntax
277
+ @state.following.pop
278
+
279
+ when 2
280
+ # at line 26:56: validation_helper_new_syntax
281
+ @state.following.push( TOKENS_FOLLOWING_validation_helper_new_syntax_IN_validation_helper_82 )
282
+ validation_helper_new_syntax
283
+ @state.following.pop
284
+
285
+ end
286
+
287
+ rescue ANTLR3::Error::RecognitionError => re
288
+ report_error(re)
289
+ recover(re)
290
+
291
+ ensure
292
+ # -> uncomment the next line to manually enable rule tracing
293
+ # trace_out( __method__, 3 )
294
+
295
+ end
296
+
297
+ return
298
+ end
299
+
300
+
301
+ #
302
+ # parser rule validation_helper_old_syntax
303
+ #
304
+ # (in /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g)
305
+ # 28:1: validation_helper_old_syntax : ':' (a= 'uniqueness' | a= 'presence' ) '=>' ( 'true' | ruby_scope ) ;
306
+ #
307
+ def validation_helper_old_syntax
308
+ # -> uncomment the next line to manually enable rule tracing
309
+ # trace_in( __method__, 4 )
310
+ a = nil
311
+
312
+ begin
313
+ # at line 28:31: ':' (a= 'uniqueness' | a= 'presence' ) '=>' ( 'true' | ruby_scope )
314
+ match( T__13, TOKENS_FOLLOWING_T__13_IN_validation_helper_old_syntax_90 )
315
+ # at line 28:35: (a= 'uniqueness' | a= 'presence' )
316
+ alt_5 = 2
317
+ look_5_0 = @input.peek( 1 )
318
+
319
+ if ( look_5_0 == T__14 )
320
+ alt_5 = 1
321
+ elsif ( look_5_0 == T__15 )
322
+ alt_5 = 2
323
+ else
324
+ raise NoViableAlternative( "", 5, 0 )
325
+ end
326
+ case alt_5
327
+ when 1
328
+ # at line 28:36: a= 'uniqueness'
329
+ a = match( T__14, TOKENS_FOLLOWING_T__14_IN_validation_helper_old_syntax_95 )
330
+
331
+ when 2
332
+ # at line 28:53: a= 'presence'
333
+ a = match( T__15, TOKENS_FOLLOWING_T__15_IN_validation_helper_old_syntax_101 )
334
+
335
+ end
336
+ match( T__16, TOKENS_FOLLOWING_T__16_IN_validation_helper_old_syntax_104 )
337
+ # at line 28:72: ( 'true' | ruby_scope )
338
+ alt_6 = 2
339
+ look_6_0 = @input.peek( 1 )
340
+
341
+ if ( look_6_0 == T__17 )
342
+ alt_6 = 1
343
+ elsif ( look_6_0 == T__18 )
344
+ alt_6 = 2
345
+ else
346
+ raise NoViableAlternative( "", 6, 0 )
347
+ end
348
+ case alt_6
349
+ when 1
350
+ # at line 28:73: 'true'
351
+ match( T__17, TOKENS_FOLLOWING_T__17_IN_validation_helper_old_syntax_107 )
352
+
353
+ when 2
354
+ # at line 28:82: ruby_scope
355
+ @state.following.push( TOKENS_FOLLOWING_ruby_scope_IN_validation_helper_old_syntax_111 )
356
+ ruby_scope
357
+ @state.following.pop
358
+
359
+ end
360
+ # --> action
361
+ @type = a.text
362
+ # <-- action
363
+
364
+ rescue ANTLR3::Error::RecognitionError => re
365
+ report_error(re)
366
+ recover(re)
367
+
368
+ ensure
369
+ # -> uncomment the next line to manually enable rule tracing
370
+ # trace_out( __method__, 4 )
371
+
372
+ end
373
+
374
+ return
375
+ end
376
+
377
+
378
+ #
379
+ # parser rule validation_helper_new_syntax
380
+ #
381
+ # (in /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g)
382
+ # 30:1: validation_helper_new_syntax : (a= 'uniqueness' | a= 'presence' ) ':' ( 'true' | ruby_scope ) ;
383
+ #
384
+ def validation_helper_new_syntax
385
+ # -> uncomment the next line to manually enable rule tracing
386
+ # trace_in( __method__, 5 )
387
+ a = nil
388
+
389
+ begin
390
+ # at line 30:31: (a= 'uniqueness' | a= 'presence' ) ':' ( 'true' | ruby_scope )
391
+ # at line 30:31: (a= 'uniqueness' | a= 'presence' )
392
+ alt_7 = 2
393
+ look_7_0 = @input.peek( 1 )
394
+
395
+ if ( look_7_0 == T__14 )
396
+ alt_7 = 1
397
+ elsif ( look_7_0 == T__15 )
398
+ alt_7 = 2
399
+ else
400
+ raise NoViableAlternative( "", 7, 0 )
401
+ end
402
+ case alt_7
403
+ when 1
404
+ # at line 30:32: a= 'uniqueness'
405
+ a = match( T__14, TOKENS_FOLLOWING_T__14_IN_validation_helper_new_syntax_124 )
406
+
407
+ when 2
408
+ # at line 30:49: a= 'presence'
409
+ a = match( T__15, TOKENS_FOLLOWING_T__15_IN_validation_helper_new_syntax_130 )
410
+
411
+ end
412
+ match( T__13, TOKENS_FOLLOWING_T__13_IN_validation_helper_new_syntax_133 )
413
+ # at line 30:67: ( 'true' | ruby_scope )
414
+ alt_8 = 2
415
+ look_8_0 = @input.peek( 1 )
416
+
417
+ if ( look_8_0 == T__17 )
418
+ alt_8 = 1
419
+ elsif ( look_8_0 == T__18 )
420
+ alt_8 = 2
421
+ else
422
+ raise NoViableAlternative( "", 8, 0 )
423
+ end
424
+ case alt_8
425
+ when 1
426
+ # at line 30:68: 'true'
427
+ match( T__17, TOKENS_FOLLOWING_T__17_IN_validation_helper_new_syntax_136 )
428
+
429
+ when 2
430
+ # at line 30:77: ruby_scope
431
+ @state.following.push( TOKENS_FOLLOWING_ruby_scope_IN_validation_helper_new_syntax_140 )
432
+ ruby_scope
433
+ @state.following.pop
434
+
435
+ end
436
+ # --> action
437
+ @type = a.text
438
+ # <-- action
439
+
440
+ rescue ANTLR3::Error::RecognitionError => re
441
+ report_error(re)
442
+ recover(re)
443
+
444
+ ensure
445
+ # -> uncomment the next line to manually enable rule tracing
446
+ # trace_out( __method__, 5 )
447
+
448
+ end
449
+
450
+ return
451
+ end
452
+
453
+
454
+ #
455
+ # parser rule ruby_scope
456
+ #
457
+ # (in /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g)
458
+ # 32:1: ruby_scope : '{' ( scope_old_syntax | scope_new_syntax ) '}' ;
459
+ #
460
+ def ruby_scope
461
+ # -> uncomment the next line to manually enable rule tracing
462
+ # trace_in( __method__, 6 )
463
+
464
+ begin
465
+ # at line 32:13: '{' ( scope_old_syntax | scope_new_syntax ) '}'
466
+ match( T__18, TOKENS_FOLLOWING_T__18_IN_ruby_scope_150 )
467
+ # at line 32:17: ( scope_old_syntax | scope_new_syntax )
468
+ alt_9 = 2
469
+ look_9_0 = @input.peek( 1 )
470
+
471
+ if ( look_9_0 == T__13 )
472
+ alt_9 = 1
473
+ elsif ( look_9_0 == T__20 )
474
+ alt_9 = 2
475
+ else
476
+ raise NoViableAlternative( "", 9, 0 )
477
+ end
478
+ case alt_9
479
+ when 1
480
+ # at line 32:18: scope_old_syntax
481
+ @state.following.push( TOKENS_FOLLOWING_scope_old_syntax_IN_ruby_scope_153 )
482
+ scope_old_syntax
483
+ @state.following.pop
484
+
485
+ when 2
486
+ # at line 32:37: scope_new_syntax
487
+ @state.following.push( TOKENS_FOLLOWING_scope_new_syntax_IN_ruby_scope_157 )
488
+ scope_new_syntax
489
+ @state.following.pop
490
+
491
+ end
492
+ match( T__19, TOKENS_FOLLOWING_T__19_IN_ruby_scope_160 )
493
+
494
+ rescue ANTLR3::Error::RecognitionError => re
495
+ report_error(re)
496
+ recover(re)
497
+
498
+ ensure
499
+ # -> uncomment the next line to manually enable rule tracing
500
+ # trace_out( __method__, 6 )
501
+
502
+ end
503
+
504
+ return
505
+ end
506
+
507
+
508
+ #
509
+ # parser rule scope_old_syntax
510
+ #
511
+ # (in /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g)
512
+ # 34:1: scope_old_syntax : ':' 'scope' '=>' ( list | list_attribute ) ;
513
+ #
514
+ def scope_old_syntax
515
+ # -> uncomment the next line to manually enable rule tracing
516
+ # trace_in( __method__, 7 )
517
+
518
+ begin
519
+ # at line 34:19: ':' 'scope' '=>' ( list | list_attribute )
520
+ match( T__13, TOKENS_FOLLOWING_T__13_IN_scope_old_syntax_167 )
521
+ match( T__20, TOKENS_FOLLOWING_T__20_IN_scope_old_syntax_169 )
522
+ match( T__16, TOKENS_FOLLOWING_T__16_IN_scope_old_syntax_171 )
523
+ # at line 34:36: ( list | list_attribute )
524
+ alt_10 = 2
525
+ look_10_0 = @input.peek( 1 )
526
+
527
+ if ( look_10_0 == T__21 )
528
+ alt_10 = 1
529
+ elsif ( look_10_0 == T__13 || look_10_0.between?( T__23, T__24 ) )
530
+ alt_10 = 2
531
+ else
532
+ raise NoViableAlternative( "", 10, 0 )
533
+ end
534
+ case alt_10
535
+ when 1
536
+ # at line 34:37: list
537
+ @state.following.push( TOKENS_FOLLOWING_list_IN_scope_old_syntax_174 )
538
+ list
539
+ @state.following.pop
540
+
541
+ when 2
542
+ # at line 34:44: list_attribute
543
+ @state.following.push( TOKENS_FOLLOWING_list_attribute_IN_scope_old_syntax_178 )
544
+ list_attribute
545
+ @state.following.pop
546
+
547
+ end
548
+
549
+ rescue ANTLR3::Error::RecognitionError => re
550
+ report_error(re)
551
+ recover(re)
552
+
553
+ ensure
554
+ # -> uncomment the next line to manually enable rule tracing
555
+ # trace_out( __method__, 7 )
556
+
557
+ end
558
+
559
+ return
560
+ end
561
+
562
+
563
+ #
564
+ # parser rule scope_new_syntax
565
+ #
566
+ # (in /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g)
567
+ # 36:1: scope_new_syntax : 'scope' ':' ( list | list_attribute ) ;
568
+ #
569
+ def scope_new_syntax
570
+ # -> uncomment the next line to manually enable rule tracing
571
+ # trace_in( __method__, 8 )
572
+
573
+ begin
574
+ # at line 36:19: 'scope' ':' ( list | list_attribute )
575
+ match( T__20, TOKENS_FOLLOWING_T__20_IN_scope_new_syntax_186 )
576
+ match( T__13, TOKENS_FOLLOWING_T__13_IN_scope_new_syntax_188 )
577
+ # at line 36:31: ( list | list_attribute )
578
+ alt_11 = 2
579
+ look_11_0 = @input.peek( 1 )
580
+
581
+ if ( look_11_0 == T__21 )
582
+ alt_11 = 1
583
+ elsif ( look_11_0 == T__13 || look_11_0.between?( T__23, T__24 ) )
584
+ alt_11 = 2
585
+ else
586
+ raise NoViableAlternative( "", 11, 0 )
587
+ end
588
+ case alt_11
589
+ when 1
590
+ # at line 36:32: list
591
+ @state.following.push( TOKENS_FOLLOWING_list_IN_scope_new_syntax_191 )
592
+ list
593
+ @state.following.pop
594
+
595
+ when 2
596
+ # at line 36:39: list_attribute
597
+ @state.following.push( TOKENS_FOLLOWING_list_attribute_IN_scope_new_syntax_195 )
598
+ list_attribute
599
+ @state.following.pop
600
+
601
+ end
602
+
603
+ rescue ANTLR3::Error::RecognitionError => re
604
+ report_error(re)
605
+ recover(re)
606
+
607
+ ensure
608
+ # -> uncomment the next line to manually enable rule tracing
609
+ # trace_out( __method__, 8 )
610
+
611
+ end
612
+
613
+ return
614
+ end
615
+
616
+
617
+ #
618
+ # parser rule list
619
+ #
620
+ # (in /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g)
621
+ # 38:1: list : '[' list_attribute ',' ( list_attribute )* ']' ;
622
+ #
623
+ def list
624
+ # -> uncomment the next line to manually enable rule tracing
625
+ # trace_in( __method__, 9 )
626
+
627
+ begin
628
+ # at line 38:7: '[' list_attribute ',' ( list_attribute )* ']'
629
+ match( T__21, TOKENS_FOLLOWING_T__21_IN_list_203 )
630
+ @state.following.push( TOKENS_FOLLOWING_list_attribute_IN_list_205 )
631
+ list_attribute
632
+ @state.following.pop
633
+ match( T__12, TOKENS_FOLLOWING_T__12_IN_list_207 )
634
+ # at line 38:30: ( list_attribute )*
635
+ while true # decision 12
636
+ alt_12 = 2
637
+ look_12_0 = @input.peek( 1 )
638
+
639
+ if ( look_12_0 == T__13 || look_12_0.between?( T__23, T__24 ) )
640
+ alt_12 = 1
641
+
642
+ end
643
+ case alt_12
644
+ when 1
645
+ # at line 38:30: list_attribute
646
+ @state.following.push( TOKENS_FOLLOWING_list_attribute_IN_list_209 )
647
+ list_attribute
648
+ @state.following.pop
649
+
650
+ else
651
+ break # out of loop for decision 12
652
+ end
653
+ end # loop for decision 12
654
+ match( T__22, TOKENS_FOLLOWING_T__22_IN_list_212 )
655
+
656
+ rescue ANTLR3::Error::RecognitionError => re
657
+ report_error(re)
658
+ recover(re)
659
+
660
+ ensure
661
+ # -> uncomment the next line to manually enable rule tracing
662
+ # trace_out( __method__, 9 )
663
+
664
+ end
665
+
666
+ return
667
+ end
668
+
669
+
670
+ #
671
+ # parser rule attribute
672
+ #
673
+ # (in /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g)
674
+ # 40:1: attribute : ( ( '\\'' a= ATTRIBUTE '\\'' ) | ( '\"' a= ATTRIBUTE '\"' ) | ( ':' a= ATTRIBUTE ) );
675
+ #
676
+ def attribute
677
+ # -> uncomment the next line to manually enable rule tracing
678
+ # trace_in( __method__, 10 )
679
+ a = nil
680
+
681
+ begin
682
+ # at line 40:10: ( ( '\\'' a= ATTRIBUTE '\\'' ) | ( '\"' a= ATTRIBUTE '\"' ) | ( ':' a= ATTRIBUTE ) )
683
+ alt_13 = 3
684
+ case look_13 = @input.peek( 1 )
685
+ when T__23 then alt_13 = 1
686
+ when T__24 then alt_13 = 2
687
+ when T__13 then alt_13 = 3
688
+ else
689
+ raise NoViableAlternative( "", 13, 0 )
690
+ end
691
+ case alt_13
692
+ when 1
693
+ # at line 40:12: ( '\\'' a= ATTRIBUTE '\\'' )
694
+ # at line 40:12: ( '\\'' a= ATTRIBUTE '\\'' )
695
+ # at line 40:13: '\\'' a= ATTRIBUTE '\\''
696
+ match( T__23, TOKENS_FOLLOWING_T__23_IN_attribute_220 )
697
+ a = match( ATTRIBUTE, TOKENS_FOLLOWING_ATTRIBUTE_IN_attribute_224 )
698
+ match( T__23, TOKENS_FOLLOWING_T__23_IN_attribute_226 )
699
+
700
+
701
+ when 2
702
+ # at line 40:38: ( '\"' a= ATTRIBUTE '\"' )
703
+ # at line 40:38: ( '\"' a= ATTRIBUTE '\"' )
704
+ # at line 40:39: '\"' a= ATTRIBUTE '\"'
705
+ match( T__24, TOKENS_FOLLOWING_T__24_IN_attribute_232 )
706
+ a = match( ATTRIBUTE, TOKENS_FOLLOWING_ATTRIBUTE_IN_attribute_236 )
707
+ match( T__24, TOKENS_FOLLOWING_T__24_IN_attribute_238 )
708
+
709
+
710
+ when 3
711
+ # at line 40:62: ( ':' a= ATTRIBUTE )
712
+ # at line 40:62: ( ':' a= ATTRIBUTE )
713
+ # at line 40:63: ':' a= ATTRIBUTE
714
+ match( T__13, TOKENS_FOLLOWING_T__13_IN_attribute_244 )
715
+ a = match( ATTRIBUTE, TOKENS_FOLLOWING_ATTRIBUTE_IN_attribute_248 )
716
+
717
+ # --> action
718
+
719
+ @attribute = a.text
720
+
721
+ # <-- action
722
+
723
+ end
724
+ rescue ANTLR3::Error::RecognitionError => re
725
+ report_error(re)
726
+ recover(re)
727
+
728
+ ensure
729
+ # -> uncomment the next line to manually enable rule tracing
730
+ # trace_out( __method__, 10 )
731
+
732
+ end
733
+
734
+ return
735
+ end
736
+
737
+
738
+ #
739
+ # parser rule list_attribute
740
+ #
741
+ # (in /Users/rivmeche/Google Drive/vub/_Thesis/code/tripper/lib/tripper/model_parsers/validates/ValidatesParser.g)
742
+ # 46:1: list_attribute : ( ( '\\'' a= ATTRIBUTE '\\'' ) | ( '\"' a= ATTRIBUTE '\"' ) | ( ':' a= ATTRIBUTE ) ) ;
743
+ #
744
+ def list_attribute
745
+ # -> uncomment the next line to manually enable rule tracing
746
+ # trace_in( __method__, 11 )
747
+ a = nil
748
+
749
+ begin
750
+ # at line 46:17: ( ( '\\'' a= ATTRIBUTE '\\'' ) | ( '\"' a= ATTRIBUTE '\"' ) | ( ':' a= ATTRIBUTE ) )
751
+ # at line 46:17: ( ( '\\'' a= ATTRIBUTE '\\'' ) | ( '\"' a= ATTRIBUTE '\"' ) | ( ':' a= ATTRIBUTE ) )
752
+ alt_14 = 3
753
+ case look_14 = @input.peek( 1 )
754
+ when T__23 then alt_14 = 1
755
+ when T__24 then alt_14 = 2
756
+ when T__13 then alt_14 = 3
757
+ else
758
+ raise NoViableAlternative( "", 14, 0 )
759
+ end
760
+ case alt_14
761
+ when 1
762
+ # at line 46:18: ( '\\'' a= ATTRIBUTE '\\'' )
763
+ # at line 46:18: ( '\\'' a= ATTRIBUTE '\\'' )
764
+ # at line 46:19: '\\'' a= ATTRIBUTE '\\''
765
+ match( T__23, TOKENS_FOLLOWING_T__23_IN_list_attribute_262 )
766
+ a = match( ATTRIBUTE, TOKENS_FOLLOWING_ATTRIBUTE_IN_list_attribute_266 )
767
+ match( T__23, TOKENS_FOLLOWING_T__23_IN_list_attribute_268 )
768
+
769
+
770
+ when 2
771
+ # at line 46:44: ( '\"' a= ATTRIBUTE '\"' )
772
+ # at line 46:44: ( '\"' a= ATTRIBUTE '\"' )
773
+ # at line 46:45: '\"' a= ATTRIBUTE '\"'
774
+ match( T__24, TOKENS_FOLLOWING_T__24_IN_list_attribute_274 )
775
+ a = match( ATTRIBUTE, TOKENS_FOLLOWING_ATTRIBUTE_IN_list_attribute_278 )
776
+ match( T__24, TOKENS_FOLLOWING_T__24_IN_list_attribute_280 )
777
+
778
+
779
+ when 3
780
+ # at line 46:68: ( ':' a= ATTRIBUTE )
781
+ # at line 46:68: ( ':' a= ATTRIBUTE )
782
+ # at line 46:69: ':' a= ATTRIBUTE
783
+ match( T__13, TOKENS_FOLLOWING_T__13_IN_list_attribute_286 )
784
+ a = match( ATTRIBUTE, TOKENS_FOLLOWING_ATTRIBUTE_IN_list_attribute_290 )
785
+
786
+
787
+ end
788
+ # --> action
789
+
790
+ @list = [] unless @list
791
+ @list << a.text
792
+
793
+ # <-- action
794
+
795
+ rescue ANTLR3::Error::RecognitionError => re
796
+ report_error(re)
797
+ recover(re)
798
+
799
+ ensure
800
+ # -> uncomment the next line to manually enable rule tracing
801
+ # trace_out( __method__, 11 )
802
+
803
+ end
804
+
805
+ return
806
+ end
807
+
808
+
809
+
810
+ TOKENS_FOLLOWING_COMMENT_IN_comment_35 = Set[ 1 ]
811
+ TOKENS_FOLLOWING_COMMENT_IN_validates_50 = Set[ 1, 4 ]
812
+ TOKENS_FOLLOWING_T__11_IN_validates_56 = Set[ 13, 23, 24 ]
813
+ TOKENS_FOLLOWING_attribute_IN_validates_58 = Set[ 12 ]
814
+ TOKENS_FOLLOWING_validation_helper_IN_validates_60 = Set[ 1, 4 ]
815
+ TOKENS_FOLLOWING_comment_IN_validates_62 = Set[ 1 ]
816
+ TOKENS_FOLLOWING_T__12_IN_validation_helper_75 = Set[ 13, 14, 15 ]
817
+ TOKENS_FOLLOWING_validation_helper_old_syntax_IN_validation_helper_78 = Set[ 1 ]
818
+ TOKENS_FOLLOWING_validation_helper_new_syntax_IN_validation_helper_82 = Set[ 1 ]
819
+ TOKENS_FOLLOWING_T__13_IN_validation_helper_old_syntax_90 = Set[ 14, 15 ]
820
+ TOKENS_FOLLOWING_T__14_IN_validation_helper_old_syntax_95 = Set[ 16 ]
821
+ TOKENS_FOLLOWING_T__15_IN_validation_helper_old_syntax_101 = Set[ 16 ]
822
+ TOKENS_FOLLOWING_T__16_IN_validation_helper_old_syntax_104 = Set[ 17, 18 ]
823
+ TOKENS_FOLLOWING_T__17_IN_validation_helper_old_syntax_107 = Set[ 1 ]
824
+ TOKENS_FOLLOWING_ruby_scope_IN_validation_helper_old_syntax_111 = Set[ 1 ]
825
+ TOKENS_FOLLOWING_T__14_IN_validation_helper_new_syntax_124 = Set[ 13 ]
826
+ TOKENS_FOLLOWING_T__15_IN_validation_helper_new_syntax_130 = Set[ 13 ]
827
+ TOKENS_FOLLOWING_T__13_IN_validation_helper_new_syntax_133 = Set[ 17, 18 ]
828
+ TOKENS_FOLLOWING_T__17_IN_validation_helper_new_syntax_136 = Set[ 1 ]
829
+ TOKENS_FOLLOWING_ruby_scope_IN_validation_helper_new_syntax_140 = Set[ 1 ]
830
+ TOKENS_FOLLOWING_T__18_IN_ruby_scope_150 = Set[ 13, 20 ]
831
+ TOKENS_FOLLOWING_scope_old_syntax_IN_ruby_scope_153 = Set[ 19 ]
832
+ TOKENS_FOLLOWING_scope_new_syntax_IN_ruby_scope_157 = Set[ 19 ]
833
+ TOKENS_FOLLOWING_T__19_IN_ruby_scope_160 = Set[ 1 ]
834
+ TOKENS_FOLLOWING_T__13_IN_scope_old_syntax_167 = Set[ 20 ]
835
+ TOKENS_FOLLOWING_T__20_IN_scope_old_syntax_169 = Set[ 16 ]
836
+ TOKENS_FOLLOWING_T__16_IN_scope_old_syntax_171 = Set[ 13, 21, 23, 24 ]
837
+ TOKENS_FOLLOWING_list_IN_scope_old_syntax_174 = Set[ 1 ]
838
+ TOKENS_FOLLOWING_list_attribute_IN_scope_old_syntax_178 = Set[ 1 ]
839
+ TOKENS_FOLLOWING_T__20_IN_scope_new_syntax_186 = Set[ 13 ]
840
+ TOKENS_FOLLOWING_T__13_IN_scope_new_syntax_188 = Set[ 13, 21, 23, 24 ]
841
+ TOKENS_FOLLOWING_list_IN_scope_new_syntax_191 = Set[ 1 ]
842
+ TOKENS_FOLLOWING_list_attribute_IN_scope_new_syntax_195 = Set[ 1 ]
843
+ TOKENS_FOLLOWING_T__21_IN_list_203 = Set[ 13, 21, 23, 24 ]
844
+ TOKENS_FOLLOWING_list_attribute_IN_list_205 = Set[ 12 ]
845
+ TOKENS_FOLLOWING_T__12_IN_list_207 = Set[ 13, 21, 22, 23, 24 ]
846
+ TOKENS_FOLLOWING_list_attribute_IN_list_209 = Set[ 13, 21, 22, 23, 24 ]
847
+ TOKENS_FOLLOWING_T__22_IN_list_212 = Set[ 1 ]
848
+ TOKENS_FOLLOWING_T__23_IN_attribute_220 = Set[ 5 ]
849
+ TOKENS_FOLLOWING_ATTRIBUTE_IN_attribute_224 = Set[ 23 ]
850
+ TOKENS_FOLLOWING_T__23_IN_attribute_226 = Set[ 1 ]
851
+ TOKENS_FOLLOWING_T__24_IN_attribute_232 = Set[ 5 ]
852
+ TOKENS_FOLLOWING_ATTRIBUTE_IN_attribute_236 = Set[ 24 ]
853
+ TOKENS_FOLLOWING_T__24_IN_attribute_238 = Set[ 1 ]
854
+ TOKENS_FOLLOWING_T__13_IN_attribute_244 = Set[ 5 ]
855
+ TOKENS_FOLLOWING_ATTRIBUTE_IN_attribute_248 = Set[ 1 ]
856
+ TOKENS_FOLLOWING_T__23_IN_list_attribute_262 = Set[ 5 ]
857
+ TOKENS_FOLLOWING_ATTRIBUTE_IN_list_attribute_266 = Set[ 23 ]
858
+ TOKENS_FOLLOWING_T__23_IN_list_attribute_268 = Set[ 1 ]
859
+ TOKENS_FOLLOWING_T__24_IN_list_attribute_274 = Set[ 5 ]
860
+ TOKENS_FOLLOWING_ATTRIBUTE_IN_list_attribute_278 = Set[ 24 ]
861
+ TOKENS_FOLLOWING_T__24_IN_list_attribute_280 = Set[ 1 ]
862
+ TOKENS_FOLLOWING_T__13_IN_list_attribute_286 = Set[ 5 ]
863
+ TOKENS_FOLLOWING_ATTRIBUTE_IN_list_attribute_290 = Set[ 1 ]
864
+
865
+ end # class Parser < ANTLR3::Parser
866
+
867
+ at_exit { Parser.main( ARGV ) } if __FILE__ == $0
868
+ end
869
+