Class: ConstraintParser::Parser

Inherits:
Racc::Parser
  • Object
show all
Defined in:
lib/parser.rb

Constant Summary collapse

Racc_arg =
[
racc_action_table,
racc_action_check,
racc_action_default,
racc_action_pointer,
racc_goto_table,
racc_goto_check,
racc_goto_default,
racc_goto_pointer,
racc_nt_base,
racc_reduce_table,
racc_token_table,
racc_shift_n,
racc_reduce_n,
racc_use_result_var ]
Racc_token_to_s_table =
[
"$end",
"error",
"PLUS",
"MATCH_OP",
"GTEQ",
"LTEQ",
"NEQ",
"EQ",
"GT",
"LT",
"AND",
"CASCADE",
"CHECK",
"COMMA",
"DELETE",
"FOREIGN_KEY",
"IDENT",
"INT",
"LPAREN",
"NEWLINE",
"ON",
"PRIMARY_KEY",
"REFERENCES",
"RESTRICT",
"RPAREN",
"SPACE",
"STRLIT",
"TYPE",
"UNIQUE",
"$start",
"constraint",
"unique_column",
"check_statement",
"foreign_key",
"expr",
"type_signature",
"operator",
"column_spec",
"table_spec",
"action_spec" ]
Racc_debug_parser =
false

Instance Method Summary collapse

Constructor Details

#initialize(tokenizer, handler = nil) ⇒ Parser

Returns a new instance of Parser.



15
16
17
18
# File 'lib/parser.rb', line 15

def initialize tokenizer, handler = nil
  @tokenizer = tokenizer
  super()
end

Instance Method Details

#_reduce_1(val, _values, result) ⇒ Object

reduce 0 omitted



215
216
217
218
# File 'lib/parser.rb', line 215

def _reduce_1(val, _values, result)
 result = val[0] 
    result
end

#_reduce_10(val, _values, result) ⇒ Object



260
261
262
263
# File 'lib/parser.rb', line 260

def _reduce_10(val, _values, result)
 result = IdentNode.new(val[0]) 
    result
end

#_reduce_11(val, _values, result) ⇒ Object



265
266
267
268
# File 'lib/parser.rb', line 265

def _reduce_11(val, _values, result)
 result = StrLitNode.new(val[0]) 
    result
end

#_reduce_12(val, _values, result) ⇒ Object



270
271
272
273
# File 'lib/parser.rb', line 270

def _reduce_12(val, _values, result)
 result = IntNode.new(val[0]) 
    result
end

#_reduce_13(val, _values, result) ⇒ Object



275
276
277
278
# File 'lib/parser.rb', line 275

def _reduce_13(val, _values, result)
 result = :gteq  
    result
end

#_reduce_14(val, _values, result) ⇒ Object



280
281
282
283
# File 'lib/parser.rb', line 280

def _reduce_14(val, _values, result)
 result = :lteq  
    result
end

#_reduce_15(val, _values, result) ⇒ Object



285
286
287
288
# File 'lib/parser.rb', line 285

def _reduce_15(val, _values, result)
 result = :neq   
    result
end

#_reduce_16(val, _values, result) ⇒ Object



290
291
292
293
# File 'lib/parser.rb', line 290

def _reduce_16(val, _values, result)
 result = :eq    
    result
end

#_reduce_17(val, _values, result) ⇒ Object



295
296
297
298
# File 'lib/parser.rb', line 295

def _reduce_17(val, _values, result)
 result = :gt    
    result
end

#_reduce_18(val, _values, result) ⇒ Object



300
301
302
303
# File 'lib/parser.rb', line 300

def _reduce_18(val, _values, result)
 result = :lt    
    result
end

#_reduce_19(val, _values, result) ⇒ Object



305
306
307
308
# File 'lib/parser.rb', line 305

def _reduce_19(val, _values, result)
 result = :plus  
    result
end

#_reduce_2(val, _values, result) ⇒ Object



220
221
222
223
# File 'lib/parser.rb', line 220

def _reduce_2(val, _values, result)
 result = val[0] 
    result
end

#_reduce_20(val, _values, result) ⇒ Object



310
311
312
313
# File 'lib/parser.rb', line 310

def _reduce_20(val, _values, result)
 result = :match 
    result
end

#_reduce_21(val, _values, result) ⇒ Object



315
316
317
318
# File 'lib/parser.rb', line 315

def _reduce_21(val, _values, result)
 result = :and 
    result
end

#_reduce_22(val, _values, result) ⇒ Object



320
321
322
323
# File 'lib/parser.rb', line 320

def _reduce_22(val, _values, result)
 result = IdentNode.new(val[1]) 
    result
end

#_reduce_23(val, _values, result) ⇒ Object



325
326
327
328
# File 'lib/parser.rb', line 325

def _reduce_23(val, _values, result)
 result = ForeignKeyNode.new(val[1], val[3]) 
    result
end

#_reduce_24(val, _values, result) ⇒ Object



330
331
332
333
# File 'lib/parser.rb', line 330

def _reduce_24(val, _values, result)
 result = ForeignKeyNode.new(val[1], val[3], val[4]) 
    result
end

#_reduce_25(val, _values, result) ⇒ Object



335
336
337
338
# File 'lib/parser.rb', line 335

def _reduce_25(val, _values, result)
 result = IdentNode.new(val[1]) 
    result
end

#_reduce_26(val, _values, result) ⇒ Object



340
341
342
343
# File 'lib/parser.rb', line 340

def _reduce_26(val, _values, result)
 result = TableNode.new(IdentNode.new(val[0]), val[1]) 
    result
end

#_reduce_27(val, _values, result) ⇒ Object



345
346
347
348
# File 'lib/parser.rb', line 345

def _reduce_27(val, _values, result)
 result = ActionNode.new(:delete, :restrict) 
    result
end

#_reduce_28(val, _values, result) ⇒ Object



350
351
352
353
# File 'lib/parser.rb', line 350

def _reduce_28(val, _values, result)
 result = ActionNode.new(:delete, :cascade) 
    result
end

#_reduce_3(val, _values, result) ⇒ Object



225
226
227
228
# File 'lib/parser.rb', line 225

def _reduce_3(val, _values, result)
 result = val[0] 
    result
end

#_reduce_4(val, _values, result) ⇒ Object



230
231
232
233
# File 'lib/parser.rb', line 230

def _reduce_4(val, _values, result)
 result = UniqueNode.new(IdentNode.new(val[2])) 
    result
end

#_reduce_5(val, _values, result) ⇒ Object



235
236
237
238
# File 'lib/parser.rb', line 235

def _reduce_5(val, _values, result)
 result = CheckNode.new(val[1]) 
    result
end

#_reduce_6(val, _values, result) ⇒ Object



240
241
242
243
# File 'lib/parser.rb', line 240

def _reduce_6(val, _values, result)
 result = EmptyExprNode.new :empty 
    result
end

#_reduce_7(val, _values, result) ⇒ Object



245
246
247
248
# File 'lib/parser.rb', line 245

def _reduce_7(val, _values, result)
 result = ExprNode.new(val[1]) 
    result
end

#_reduce_8(val, _values, result) ⇒ Object



250
251
252
253
# File 'lib/parser.rb', line 250

def _reduce_8(val, _values, result)
 result = TypedExprNode.new(val[0], val[1]) 
    result
end

#_reduce_9(val, _values, result) ⇒ Object



255
256
257
258
# File 'lib/parser.rb', line 255

def _reduce_9(val, _values, result)
 result = OperatorNode.new(val[1], val[0], val[2]) 
    result
end

#_reduce_none(val, _values, result) ⇒ Object



355
356
357
# File 'lib/parser.rb', line 355

def _reduce_none(val, _values, result)
  val[0]
end

#next_tokenObject



20
21
22
# File 'lib/parser.rb', line 20

def next_token
  @tokenizer.next_token
end

#parseObject



24
25
26
# File 'lib/parser.rb', line 24

def parse
  do_parse
end