martinandert/gql

View on GitHub
lib/gql/parser.rb

Summary

Maintainability
D
1 day
Test Coverage
#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.4.12
# from Racc grammer file "".
#

require 'racc/parser.rb'

require 'active_support/json'
require 'active_support/core_ext/object/blank'
require 'active_support/core_ext/object/try'
require 'active_support/core_ext/object/json'

require 'gql/tokenizer'

module GQL
  class Parser < Tokenizer

module_eval(<<'...end parser.racc/module_eval...', 'parser.racc', 136)

  class Query < Struct.new(:root, :variables)
    def as_json(*)
      {
        root:       root.as_json,
        variables:  variables
      }
    end
  end

  class Field < Struct.new(:id, :alias_id, :call, :fields)
    def as_json(*)
      {
        id:         id,
        alias_id:   alias_id,
        call:       call.as_json,
        fields:     fields.as_json
      }
    end
  end

  class Call < Struct.new(:id, :arguments, :call, :fields)
    def as_json(*)
      {
        id:         id,
        arguments:  arguments,
        call:       call.as_json,
        fields:     fields.as_json
      }
    end
  end

  def initialize(str)
    super()
    scan_setup str
  end

  def parse
    do_parse
  end

  def on_error(token, value, vstack)
    raise Errors::SyntaxError.new(lineno, value, token_to_str(token))
  end

  private
    def convert_number(str)
      str.count('.') > 0 ? str.to_f : str.to_i
    end
...end parser.racc/module_eval...
##### State transition tables begin ###

racc_action_table = [
    35,    31,    32,    33,    34,    35,     6,    28,    35,    31,
    32,    33,    34,    51,    39,    28,    45,    29,    55,    35,
    31,    32,    33,    34,     7,    29,    28,    37,    72,     6,
    46,    38,    14,     6,    71,    12,    29,    35,    31,    32,
    33,    34,    12,    10,    28,    35,    31,    32,    33,    34,
    16,     6,    28,    12,    29,    59,    35,    31,    32,    33,
    34,    68,    29,    28,    43,    69,    39,    73,    42,    66,
    67,    38,     6,    29,    12,    22,    36,    12,    43,    39,
    12,    12,    12,    70,    43,    35 ]

racc_action_check = [
    29,    29,    29,    29,    29,    28,     0,    29,    14,    14,
    14,    14,    14,    28,    21,    14,    21,    29,    29,    22,
    22,    22,    22,    22,     1,    14,    22,    18,    56,     3,
    22,    18,     5,    22,    56,     6,    22,    67,    67,    67,
    67,    67,     2,     2,    67,    70,    70,    70,    70,    70,
     7,    67,    70,    39,    67,    39,    72,    72,    72,    72,
    72,    52,    70,    72,    20,    52,    20,    60,    20,    47,
    47,    60,     8,    72,    10,    11,    15,    38,    40,    41,
    42,    43,    45,    54,    63,    69 ]

racc_action_pointer = [
   -10,    24,    34,    13,   nil,    17,    27,    50,    56,   nil,
    66,    63,   nil,   nil,     6,    59,   nil,   nil,    17,   nil,
    57,     5,    17,   nil,   nil,   nil,   nil,   nil,     3,    -2,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    69,    45,
    71,    70,    72,    73,   nil,    74,   nil,    56,   nil,   nil,
   nil,   nil,    51,   nil,    65,   nil,    14,   nil,   nil,   nil,
    57,   nil,   nil,    77,   nil,   nil,   nil,    35,   nil,    83,
    43,   nil,    54,   nil,   nil,   nil,   nil,   nil,   nil ]

racc_action_default = [
   -26,   -52,   -52,   -27,   -28,   -52,   -52,   -52,   -26,    -2,
   -52,    -7,   -51,   -29,   -52,   -52,    79,    -1,   -52,   -17,
   -24,    -6,   -52,   -30,   -32,   -33,   -34,   -35,   -52,   -52,
   -45,   -46,   -47,   -48,   -49,   -50,   -31,    -3,   -52,   -52,
   -22,   -21,   -52,   -52,    -4,   -52,    -8,   -52,   -11,   -12,
   -13,   -36,   -52,   -39,   -52,   -41,   -52,   -44,   -16,   -14,
   -52,   -18,   -19,   -23,   -25,    -5,    -9,   -52,   -37,   -52,
   -52,   -42,   -52,   -15,   -20,   -10,   -38,   -40,   -43 ]

racc_goto_table = [
    24,    48,    49,    53,    15,     9,    41,     1,    20,    54,
    18,    40,    44,     2,     8,    57,    21,    47,    58,    13,
    23,    17,    52,    56,   nil,   nil,    61,   nil,   nil,   nil,
   nil,   nil,    62,   nil,   nil,   nil,    20,    20,   nil,    60,
   nil,    64,   nil,   nil,    76,    63,    75,    49,    65,    74,
    54,   nil,   nil,   nil,   nil,   nil,    77,   nil,    78 ]

racc_goto_check = [
    12,    10,    11,    22,     6,     4,    14,     1,     6,    23,
     5,     8,     8,     2,     3,    12,     7,     9,    13,    16,
    17,     2,    21,    24,   nil,   nil,    14,   nil,   nil,   nil,
   nil,   nil,     8,   nil,   nil,   nil,     6,     6,   nil,     5,
   nil,     6,   nil,   nil,    22,     4,    10,    11,     4,    14,
    23,   nil,   nil,   nil,   nil,   nil,    12,   nil,    12 ]

racc_goto_pointer = [
   nil,     7,    13,    12,     3,     0,    -2,     5,    -9,    -5,
   -21,   -20,   -14,   -20,   -14,   nil,    16,     6,   nil,   nil,
   nil,    -6,   -25,   -19,    -6 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,   nil,   nil,    11,   nil,   nil,   nil,
   nil,     5,    50,    19,   nil,     3,     4,   nil,    25,    26,
    27,   nil,   nil,    30,   nil ]

racc_reduce_table = [
  0, 0, :racc_error,
  3, 22, :_reduce_1,
  1, 24, :_reduce_2,
  3, 24, :_reduce_3,
  3, 25, :_reduce_4,
  4, 25, :_reduce_5,
  2, 25, :_reduce_6,
  0, 28, :_reduce_7,
  2, 28, :_reduce_8,
  3, 28, :_reduce_9,
  3, 30, :_reduce_10,
  1, 30, :_reduce_11,
  1, 31, :_reduce_none,
  1, 31, :_reduce_none,
  2, 29, :_reduce_14,
  3, 29, :_reduce_15,
  3, 26, :_reduce_16,
  1, 26, :_reduce_17,
  3, 34, :_reduce_18,
  3, 34, :_reduce_19,
  4, 34, :_reduce_20,
  2, 34, :_reduce_21,
  2, 34, :_reduce_22,
  3, 34, :_reduce_23,
  1, 34, :_reduce_24,
  2, 35, :_reduce_25,
  0, 23, :_reduce_26,
  1, 23, :_reduce_none,
  1, 36, :_reduce_none,
  2, 36, :_reduce_29,
  3, 37, :_reduce_30,
  3, 32, :_reduce_31,
  1, 38, :_reduce_none,
  1, 33, :_reduce_none,
  1, 33, :_reduce_none,
  1, 33, :_reduce_none,
  2, 39, :_reduce_36,
  3, 39, :_reduce_37,
  3, 42, :_reduce_38,
  1, 42, :_reduce_none,
  3, 43, :_reduce_40,
  2, 40, :_reduce_41,
  3, 40, :_reduce_42,
  3, 45, :_reduce_43,
  1, 45, :_reduce_44,
  1, 41, :_reduce_none,
  1, 41, :_reduce_46,
  1, 41, :_reduce_47,
  1, 41, :_reduce_48,
  1, 41, :_reduce_49,
  1, 44, :_reduce_none,
  1, 27, :_reduce_51 ]

racc_reduce_n = 52

racc_shift_n = 79

racc_token_table = {
  false => 0,
  :error => 1,
  :STRING => 2,
  :NUMBER => 3,
  :TRUE => 4,
  :FALSE => 5,
  :NULL => 6,
  :AS => 7,
  :IDENT => 8,
  "{" => 9,
  "}" => 10,
  "." => 11,
  "(" => 12,
  ")" => 13,
  "," => 14,
  "=" => 15,
  "<" => 16,
  ">" => 17,
  ":" => 18,
  "[" => 19,
  "]" => 20 }

racc_nt_base = 21

racc_use_result_var = true

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",
  "STRING",
  "NUMBER",
  "TRUE",
  "FALSE",
  "NULL",
  "AS",
  "IDENT",
  "\"{\"",
  "\"}\"",
  "\".\"",
  "\"(\"",
  "\")\"",
  "\",\"",
  "\"=\"",
  "\"<\"",
  "\">\"",
  "\":\"",
  "\"[\"",
  "\"]\"",
  "$start",
  "query",
  "variables",
  "root",
  "call",
  "field_list",
  "identifier",
  "arguments",
  "fields",
  "argument_list",
  "argument",
  "variable_identifier",
  "json_value",
  "field",
  "alias_identifier",
  "variable_list",
  "variable",
  "variable_value",
  "object",
  "array",
  "scalar",
  "pairs",
  "pair",
  "string",
  "values" ]

Racc_debug_parser = false

##### State transition tables end #####

# reduce 0 omitted

module_eval(<<'.,.,', 'parser.racc', 4)
  def _reduce_1(val, _values, result)
      result = Query.new(val[1], val[0].merge(val[2]))  
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 8)
  def _reduce_2(val, _values, result)
      result = Field.new('[root]', nil, val[0], nil   )  
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 9)
  def _reduce_3(val, _values, result)
      result = Field.new('[root]', nil, nil,    val[1])  
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 13)
  def _reduce_4(val, _values, result)
       result = Call.new(val[0], val[1], nil,    val[2].presence)   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 14)
  def _reduce_5(val, _values, result)
       result = Call.new(val[0], val[1], val[3], nil            )   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 15)
  def _reduce_6(val, _values, result)
       result = Call.new(val[0], val[1], nil,    nil            )   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 19)
  def _reduce_7(val, _values, result)
       result = []       
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 20)
  def _reduce_8(val, _values, result)
       result = []       
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 21)
  def _reduce_9(val, _values, result)
       result = val[1]   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 25)
  def _reduce_10(val, _values, result)
       result.push val[2]    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 26)
  def _reduce_11(val, _values, result)
       result = val          
    result
  end
.,.,

# reduce 12 omitted

# reduce 13 omitted

module_eval(<<'.,.,', 'parser.racc', 35)
  def _reduce_14(val, _values, result)
       result = []       
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 36)
  def _reduce_15(val, _values, result)
       result = val[1]   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 40)
  def _reduce_16(val, _values, result)
       result.push val[2]    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 41)
  def _reduce_17(val, _values, result)
       result = val          
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 45)
  def _reduce_18(val, _values, result)
       result = Field.new(val[0], val[2], nil,    val[1].presence)   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 46)
  def _reduce_19(val, _values, result)
       result = Field.new(val[0], val[1], nil,    val[2].presence)   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 47)
  def _reduce_20(val, _values, result)
       result = Field.new(val[0], val[3], val[2], nil            )   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 48)
  def _reduce_21(val, _values, result)
       result = Field.new(val[0], val[1], nil,    nil            )   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 49)
  def _reduce_22(val, _values, result)
       result = Field.new(val[0], nil,    nil,    val[1].presence)   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 50)
  def _reduce_23(val, _values, result)
       result = Field.new(val[0], nil,    val[2], nil            )   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 51)
  def _reduce_24(val, _values, result)
       result = Field.new(val[0], nil,    nil,    nil            )   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 55)
  def _reduce_25(val, _values, result)
       result = val[1]   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 59)
  def _reduce_26(val, _values, result)
       result = {}   
    result
  end
.,.,

# reduce 27 omitted

# reduce 28 omitted

module_eval(<<'.,.,', 'parser.racc', 65)
  def _reduce_29(val, _values, result)
       result.update val[1]    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 69)
  def _reduce_30(val, _values, result)
       result = { val[0] => val[2] }     
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 73)
  def _reduce_31(val, _values, result)
       result = val[1]   
    result
  end
.,.,

# reduce 32 omitted

# reduce 33 omitted

# reduce 34 omitted

# reduce 35 omitted

module_eval(<<'.,.,', 'parser.racc', 87)
  def _reduce_36(val, _values, result)
       result = {}       
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 88)
  def _reduce_37(val, _values, result)
       result = val[1]   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 92)
  def _reduce_38(val, _values, result)
       result.update val[2]    
    result
  end
.,.,

# reduce 39 omitted

module_eval(<<'.,.,', 'parser.racc', 97)
  def _reduce_40(val, _values, result)
       result = { val[0] => val[2] }    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 101)
  def _reduce_41(val, _values, result)
       result = []       
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 102)
  def _reduce_42(val, _values, result)
       result = val[1]   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 106)
  def _reduce_43(val, _values, result)
       result.push val[2]    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 107)
  def _reduce_44(val, _values, result)
       result = val          
    result
  end
.,.,

# reduce 45 omitted

module_eval(<<'.,.,', 'parser.racc', 112)
  def _reduce_46(val, _values, result)
       result = convert_number(val[0])   
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 113)
  def _reduce_47(val, _values, result)
       result = true                     
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 114)
  def _reduce_48(val, _values, result)
       result = false                    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 115)
  def _reduce_49(val, _values, result)
       result = nil                      
    result
  end
.,.,

# reduce 50 omitted

module_eval(<<'.,.,', 'parser.racc', 122)
  def _reduce_51(val, _values, result)
       result = val[0].to_sym    
    result
  end
.,.,

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

  end   # class Parser
end # GQL