#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.4.12
# from Racc grammer file "".
#

require 'racc/parser.rb'
module CSSPool
  module CSS
    class Parser < Racc::Parser

module_eval(<<'...end parser.y/module_eval...', 'parser.y', 670)

def numeric thing
  thing = thing.gsub(/[^\d.]/, '')
  Integer(thing) rescue Float(thing)
end

def interpret_identifier s
  interpret_escapes s
end

def interpret_uri s
  interpret_escapes s.match(/^url\((.*)\)$/mui)[1].strip.match(/^(['"]?)((?:\\.|.)*)\1$/mu)[2]
end

def interpret_string_no_quote s
  interpret_escapes s.match(/^(.*)\)$/mu)[1].strip.match(/^(['"]?)((?:\\.|.)*)\1$/mu)[2]
end

def interpret_string s
  interpret_escapes s.match(/^(['"])((?:\\.|.)*)\1$/mu)[2]
end

def interpret_escapes s
  token_exp = /\\(?:([0-9a-fA-F]{1,6}(?:\r\n|\s)?)|(.))/mu
  return s.gsub(token_exp) do |escape_sequence|
    if !$1.nil?
      code = $1.chomp.to_i 16
      code = 0xFFFD if code > 0x10FFFF
      next [code].pack('U')
    end
    next '' if $2 == "\n"
    next $2
  end
end

# override racc's on_error so we can have context in our error messages
def on_error(t, val, vstack)
  errcontext = (@ss.pre_match[-10..-1] || @ss.pre_match) +
                @ss.matched + @ss.post_match[0..9]
  line_number = @ss.pre_match.lines.count
  raise ParseError, sprintf("parse error on value %s (%s) " +
                            "on line %s around \"%s\"",
                            val.inspect, token_to_str(t) || '?',
                            line_number, errcontext)
end

def before_pos(val)
  # don't include leading whitespace
  return current_pos - val.last.length + val.last[/\A\s*/].size
end

def after_pos(val)
  # don't include trailing whitespace
  return current_pos - val.last[/\s*\z/].size
end

# charpos will work with multibyte strings but is not available until ruby 2
def current_pos
  @ss.respond_to?('charpos') ? @ss.charpos : @ss.pos
end
...end parser.y/module_eval...
##### State transition tables begin ###

racc_action_table = [
     9,    10,   137,   129,    37,    31,    55,   139,   130,    39,
    45,    47,    45,    47,   123,     9,    10,   103,     3,    37,
    31,    98,   229,   103,    39,    45,    47,   230,   124,   125,
   224,    20,   113,    56,    37,    31,    23,   114,   104,    39,
    45,    47,   245,    27,   104,    11,    20,   126,    48,    25,
    48,    23,   242,    29,   138,   244,    38,    46,    27,    46,
    11,   108,   113,    48,    25,     9,    10,   114,    29,    37,
    31,    38,    46,   223,    39,    45,    47,    49,    48,   115,
     9,    10,   108,   113,    37,    31,    38,    46,   114,    39,
    45,    47,    55,   339,   243,   155,    20,   108,   113,    37,
    31,    23,   107,   114,    39,    45,    47,   231,    27,   115,
    11,    20,   232,    48,    25,    55,    23,    59,    29,    56,
   344,    38,    46,    27,   340,    11,    20,    53,    48,    25,
   115,    23,   345,    29,    37,    31,    38,    46,    27,    39,
    45,    47,    56,    48,    25,   115,   -28,   105,    29,    37,
    31,    38,    46,   116,    39,    45,    47,   250,    75,   120,
   251,    20,   108,   113,    37,    31,    23,   118,   114,    39,
    45,    47,   121,    27,    74,    73,    20,   313,    48,    25,
   314,    23,   128,    29,   108,   113,    38,    46,    27,   215,
   114,    20,   131,    48,    25,    75,    23,   136,    29,    37,
    64,    38,    46,    27,    39,    45,    47,    92,    48,    25,
   115,    74,    73,    29,    37,    31,    38,    46,    77,    39,
    45,    47,   148,    94,   103,   156,    20,   -89,    83,    37,
    31,    23,   115,    87,    39,    45,    47,   160,    27,    85,
   153,    20,   151,    48,    25,   104,    23,    84,    29,   157,
   158,    38,    46,    27,   163,   252,    20,   151,    48,    25,
   201,    23,   164,    29,    37,    31,    38,    46,    27,    39,
    45,    47,   203,    48,    25,   188,   202,    59,    29,    37,
   165,    38,    46,   187,    39,    45,    47,   201,   204,   166,
   184,    83,   288,   198,   287,   190,   197,   192,   191,   193,
   194,   195,    85,   202,    37,    45,    47,    37,    48,    39,
    45,    47,    39,    45,    47,   167,    38,    46,   168,    83,
   170,   113,   210,    48,   181,   186,   114,   185,   196,    37,
    85,    38,    46,    92,    39,    45,    47,   203,    84,   150,
   152,   151,   289,    48,   290,   292,   163,   291,    48,    94,
   -33,    48,    46,   204,   169,   199,    38,    46,    37,    38,
    46,   200,   -33,    39,    45,    47,    92,   188,   115,    59,
   294,   258,   293,    48,   296,   187,   295,   298,   260,   297,
   212,    38,    46,    83,   216,   198,   259,   190,   197,   192,
   191,   193,   194,   195,    85,    45,    47,    45,    47,    45,
    47,   217,    48,   218,   219,   188,   108,    59,   285,   108,
    38,    46,   170,   187,   225,   226,   181,   186,   233,   185,
   196,    83,   129,   198,   234,   190,   197,   192,   191,   193,
   194,   195,    85,    48,   163,    48,   255,    48,   256,   155,
   263,   169,    46,   188,    46,    59,    46,   264,   168,   265,
   170,   187,   266,    92,   181,   186,    92,   185,   196,    83,
    92,   198,    92,   190,   197,   192,   191,   193,   194,   195,
    85,   198,   278,   190,   197,   192,   191,   193,   194,   195,
   279,   188,   281,    59,   241,   235,   236,   237,   170,   187,
   286,   229,   181,   186,   231,   185,   196,    83,   163,   198,
   300,   190,   197,   192,   191,   193,   194,   195,    85,   301,
   302,   238,   239,   240,   303,   306,   307,   255,   141,   188,
    75,    59,   322,   163,   185,   168,   170,   187,   312,   317,
   181,   186,   143,   185,   196,    83,   319,   198,   323,   190,
   197,   192,   191,   193,   194,   195,    85,   324,   325,   145,
   326,   327,   328,   329,   330,   331,   144,   188,   146,    59,
   147,   332,   142,   333,   170,   187,   334,   306,   181,   186,
   163,   185,   196,    83,   338,   198,   163,   190,   197,   192,
   191,   193,   194,   195,    85,   346,   319,   319,   163,   351,
   306,   163,   319,   357,   359,   188,   nil,    59,   nil,   nil,
   nil,   nil,   170,   187,   nil,   nil,   181,   186,   nil,   185,
   196,    83,   nil,   198,   nil,   190,   197,   192,   191,   193,
   194,   195,    85,   272,   nil,    83,   nil,   198,   nil,   190,
   197,   192,   191,   193,   194,   195,   nil,   nil,   nil,   nil,
   170,   nil,   nil,   nil,   181,   186,   nil,   185,   196,   272,
   nil,    83,   nil,   198,   nil,   190,   197,   192,   191,   193,
   194,   195,   272,   nil,    83,   nil,   198,   nil,   190,   197,
   192,   191,   193,   194,   195,   272,   nil,    83,   nil,   198,
   nil,   190,   197,   192,   191,   193,   194,   195,   272,   nil,
    83,   nil,   198,   nil,   190,   197,   192,   191,   193,   194,
   195,   272,   nil,    83,   nil,   198,   nil,   190,   197,   192,
   191,   193,   194,   195 ]

racc_action_check = [
     2,     2,    47,    38,     2,     2,    10,    47,    38,     2,
     2,     2,    35,    35,    34,     5,     5,    26,     1,     5,
     5,    26,   128,   217,     5,     5,     5,   128,    34,    34,
   112,     2,   210,    10,    31,    31,     2,   210,    26,    31,
    31,    31,   143,     2,   217,     2,     5,    34,     2,     2,
    35,     5,   142,     2,    47,   143,     2,     2,     5,    35,
     5,   110,   110,     5,     5,     6,     6,   110,     5,     6,
     6,     5,     5,   112,     6,     6,     6,     3,    31,   210,
     7,     7,   221,   221,     7,     7,    31,    31,   221,     7,
     7,     7,    58,   309,   142,    58,     6,    28,    28,    12,
    12,     6,    28,    28,    12,    12,    12,   131,     6,   110,
     6,     7,   131,     6,     6,    11,     7,    11,     6,    58,
   315,     6,     6,     7,   309,     7,    12,     9,     7,     7,
   221,    12,   315,     7,    13,    13,     7,     7,    12,    13,
    13,    13,    11,    12,    12,    28,    20,    27,    12,    14,
    14,    12,    12,    29,    14,    14,    14,   149,    20,    32,
   149,    13,    30,    30,    15,    15,    13,    30,    30,    15,
    15,    15,    33,    13,    20,    20,    14,   269,    13,    13,
   269,    14,    37,    13,   100,   100,    13,    13,    14,   100,
   100,    15,    39,    14,    14,   157,    15,    46,    14,    19,
    19,    14,    14,    15,    19,    19,    19,    25,    15,    15,
    30,   157,   157,    15,    21,    21,    15,    15,    21,    21,
    21,    21,    53,    25,    99,    67,    19,    99,    22,    24,
    24,    19,   100,    24,    24,    24,    24,    71,    19,    22,
    57,    21,    57,    19,    19,    99,    21,    22,    19,    70,
    70,    19,    19,    21,    75,   154,    24,   154,    21,    21,
    90,    24,    76,    21,    64,    64,    21,    21,    24,    64,
    64,    64,    91,    24,    24,    83,    90,    83,    24,   121,
    78,    24,    24,    83,   121,   121,   121,   206,    91,    79,
    83,    83,   235,    83,   235,    83,    83,    83,    83,    83,
    83,    83,    83,   206,   122,    41,    41,   144,    64,   122,
   122,   122,   144,   144,   144,    80,    64,    64,    81,   166,
    83,    92,    92,   121,    83,    83,    92,    83,    83,   146,
   166,   121,   121,    92,   146,   146,   146,   207,   166,    54,
    54,    54,   236,    41,   236,   237,   270,   237,   122,    92,
   270,   144,    41,   207,    82,    86,   122,   122,   302,   144,
   144,    88,   270,   302,   302,   302,    94,   171,    92,   171,
   238,   171,   238,   146,   239,   171,   239,   240,   171,   240,
    97,   146,   146,   171,   101,   171,   171,   171,   171,   171,
   171,   171,   171,   171,   171,    42,    42,    43,    43,    44,
    44,   102,   302,   105,   106,   223,   108,   223,   223,   109,
   302,   302,   171,   223,   114,   117,   171,   171,   137,   171,
   171,   223,   138,   223,   139,   223,   223,   223,   223,   223,
   223,   223,   223,    42,   147,    43,   161,    44,   162,   172,
   175,   176,    42,   261,    43,   261,    44,   177,   179,   183,
   223,   261,   185,   201,   223,   223,   202,   223,   223,   261,
   203,   261,   204,   261,   261,   261,   261,   261,   261,   261,
   261,   189,   208,   189,   189,   189,   189,   189,   189,   189,
   209,   285,   214,   285,   140,   140,   140,   140,   261,   285,
   224,   233,   261,   261,   234,   261,   261,   285,   243,   285,
   245,   285,   285,   285,   285,   285,   285,   285,   285,   246,
   247,   140,   140,   140,   248,   249,   251,   254,    48,   286,
   255,   286,   286,   256,   266,   267,   285,   286,   268,   280,
   285,   285,    48,   285,   285,   286,   284,   286,   287,   286,
   286,   286,   286,   286,   286,   286,   286,   288,   289,    48,
   290,   291,   292,   293,   294,   295,    48,   322,    48,   322,
    48,   296,    48,   297,   286,   322,   298,   299,   286,   286,
   304,   286,   286,   322,   306,   322,   312,   322,   322,   322,
   322,   322,   322,   322,   322,   316,   320,   321,   335,   337,
   338,   340,   349,   350,   358,   353,   nil,   353,   nil,   nil,
   nil,   nil,   322,   353,   nil,   nil,   322,   322,   nil,   322,
   322,   353,   nil,   353,   nil,   353,   353,   353,   353,   353,
   353,   353,   353,   186,   nil,   186,   nil,   186,   nil,   186,
   186,   186,   186,   186,   186,   186,   nil,   nil,   nil,   nil,
   353,   nil,   nil,   nil,   353,   353,   nil,   353,   353,   272,
   nil,   272,   nil,   272,   nil,   272,   272,   272,   272,   272,
   272,   272,   313,   nil,   313,   nil,   313,   nil,   313,   313,
   313,   313,   313,   313,   313,   314,   nil,   314,   nil,   314,
   nil,   314,   314,   314,   314,   314,   314,   314,   344,   nil,
   344,   nil,   344,   nil,   344,   344,   344,   344,   344,   344,
   344,   345,   nil,   345,   nil,   345,   nil,   345,   345,   345,
   345,   345,   345,   345 ]

racc_action_pointer = [
   nil,    18,    -2,    77,   nil,    13,    63,    78,   nil,   123,
     2,   111,    93,   128,   143,   158,   nil,   nil,   nil,   193,
   140,   208,   208,   nil,   223,   189,    11,   141,    92,   144,
   157,    28,   150,   164,     7,     0,   nil,   124,    -3,   134,
   nil,   293,   383,   385,   387,   nil,   191,    -4,   512,   nil,
   nil,   nil,   nil,   217,   334,   nil,   nil,   235,    88,   nil,
   nil,   nil,   nil,   nil,   258,   nil,   nil,   215,   nil,   nil,
   241,   231,   nil,   nil,   nil,   247,   252,   nil,   271,   281,
   308,   311,   347,   271,   nil,   nil,   345,   nil,   352,   nil,
   224,   236,   315,   nil,   348,   nil,   nil,   370,   nil,   218,
   179,   375,   393,   nil,   nil,   394,   394,   nil,   401,   404,
    56,   nil,    23,   nil,   408,   nil,   nil,   405,   nil,   nil,
   nil,   273,   298,   nil,   nil,   nil,   nil,   nil,    16,   nil,
   nil,   101,   nil,   nil,   nil,   nil,   nil,   360,   416,   366,
   470,   nil,    46,    36,   301,   nil,   323,   427,   nil,   152,
   nil,   nil,   nil,   nil,   250,   nil,   nil,   177,   nil,   nil,
   nil,   400,   432,   nil,   nil,   nil,   299,   nil,   nil,   nil,
   nil,   363,   432,   nil,   nil,   433,   434,   440,   nil,   441,
   nil,   nil,   nil,   430,   nil,   444,   605,   nil,   nil,   449,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   435,   438,   442,   444,   nil,   251,   301,   453,   461,
    26,   nil,   nil,   nil,   472,   nil,   nil,    17,   nil,   nil,
   nil,    77,   nil,   401,   440,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   485,   488,   288,   338,   341,   366,   370,
   373,   nil,   nil,   491,   nil,   481,   490,   502,   495,   509,
   nil,   510,   nil,   nil,   481,   502,   516,   nil,   nil,   nil,
   nil,   439,   nil,   nil,   nil,   nil,   468,   518,   509,   155,
   339,   nil,   631,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   510,   nil,   nil,   nil,   504,   477,   515,   524,   533,   534,
   536,   537,   538,   539,   540,   541,   547,   549,   552,   561,
   nil,   nil,   352,   nil,   563,   nil,   566,   nil,   nil,    74,
   nil,   nil,   569,   644,   657,   109,   566,   nil,   nil,   nil,
   554,   555,   553,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   581,   nil,   570,   584,   nil,
   584,   nil,   nil,   nil,   670,   683,   nil,   nil,   nil,   560,
   574,   nil,   nil,   591,   nil,   nil,   nil,   nil,   575,   nil ]

racc_action_default = [
    -1,  -229,   -10,  -229,    -2,    -6,    -7,    -8,    -9,  -229,
  -229,  -229,   -41,   -42,   -43,   -44,   -45,   -46,   -47,   -33,
   -23,  -229,  -229,   -55,  -229,  -229,   -89,  -229,  -229,  -229,
  -229,  -229,  -229,  -103,  -105,  -111,  -112,  -115,  -229,  -120,
  -119,  -124,  -125,  -126,  -127,  -132,  -229,  -229,  -229,   360,
    -3,    -4,    -5,  -229,  -229,   -15,   -16,  -229,  -229,  -228,
   -37,   -38,   -39,   -40,   -32,   -48,   -49,  -229,   -99,   -21,
  -229,  -229,   -35,   -26,   -27,   -33,  -229,   -53,  -229,   -57,
   -58,   -59,   -60,  -229,  -198,  -214,  -229,   -62,  -229,   -64,
   -65,   -66,  -229,   -71,  -229,   -73,   -74,  -229,   -82,   -85,
  -229,  -229,   -91,   -92,   -93,  -229,  -229,   -95,  -160,  -165,
  -166,  -167,  -229,  -174,  -229,  -176,   -96,  -229,   -98,  -100,
  -101,  -229,  -229,  -106,  -107,  -108,  -109,  -110,  -229,  -117,
  -121,  -229,  -128,  -129,  -130,  -131,  -133,  -115,  -229,  -229,
  -229,  -147,  -229,  -229,  -229,  -152,  -229,   -33,   -11,  -229,
   -13,   -14,   -20,   -18,  -229,  -227,   -50,   -28,   -51,   -35,
   -29,   -25,  -229,   -32,   -52,   -54,  -229,  -197,  -194,  -213,
   -36,  -182,  -183,  -184,  -185,  -186,  -187,  -188,  -189,  -190,
  -191,  -192,  -193,  -229,  -196,  -200,  -229,  -212,  -216,  -229,
  -218,  -219,  -220,  -221,  -222,  -223,  -224,  -225,  -226,   -61,
   -63,  -229,  -229,  -229,  -229,   -67,   -68,   -69,  -229,  -229,
  -229,   -72,   -81,   -84,  -229,   -87,   -88,   -89,   -83,   -94,
  -161,  -164,  -163,  -229,  -229,  -175,   -97,  -102,  -104,  -116,
  -123,  -118,  -122,  -229,  -229,  -229,  -229,  -229,  -229,  -229,
  -229,  -146,  -148,   -33,  -149,  -229,  -229,  -114,  -229,  -156,
   -12,  -229,   -17,   -22,   -24,  -229,   -33,   -56,  -177,  -178,
  -179,  -229,  -181,  -215,  -211,  -195,  -229,  -209,  -229,  -202,
  -205,  -208,  -229,  -217,   -76,   -78,   -75,   -77,   -70,   -79,
  -229,   -86,   -90,  -162,  -173,  -229,  -229,  -229,  -229,  -229,
  -229,  -229,  -229,  -229,  -229,  -229,  -229,  -229,  -229,  -156,
  -150,  -151,  -229,  -153,   -33,  -157,  -158,   -19,   -34,  -229,
  -180,  -199,   -33,  -229,  -229,  -229,  -229,   -80,  -168,  -172,
  -173,  -173,  -229,  -134,  -135,  -136,  -137,  -138,  -139,  -140,
  -141,  -142,  -143,  -144,  -145,   -33,  -113,  -229,  -229,   -30,
   -33,  -201,  -203,  -204,  -229,  -229,  -210,  -169,  -170,  -173,
  -229,  -154,  -159,  -229,  -206,  -207,  -171,  -155,  -229,   -31 ]

racc_goto_table = [
    81,   248,   183,    68,   106,    91,   117,   271,    78,   246,
   273,   247,    82,    69,   209,   161,    97,    89,   268,   304,
    90,   119,    54,    57,   220,   221,   318,    60,    61,    62,
    63,   354,   355,     1,    65,   127,    76,     2,   149,    86,
    58,   132,   133,   134,   135,     4,    70,   159,    50,    51,
    52,   308,    67,    66,   119,    88,   208,   282,   227,   162,
   228,   122,   347,   348,   140,   352,   261,   311,   nil,   335,
   154,   nil,   207,   nil,   211,   nil,   214,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   205,   nil,   222,   206,   nil,   213,
   262,   356,   nil,   271,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   254,   nil,   316,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   249,   280,   nil,   271,   271,   nil,   nil,   nil,   nil,
   nil,   nil,   284,   nil,    81,   342,   343,   nil,   nil,   nil,
   253,   nil,   257,   nil,   nil,   nil,    82,   336,   nil,   nil,
   nil,   nil,   nil,   nil,   267,   271,   271,   247,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   310,   274,   275,   276,   277,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   283,   nil,   nil,
   nil,   nil,   nil,   nil,   320,   321,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   299,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   309,   349,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   267,   nil,   nil,   nil,   315,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   358,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   337,   nil,
   nil,   267,   267,   nil,   nil,   nil,   341,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   350,
   nil,   nil,   267,   267,   353 ]

racc_goto_check = [
    35,    62,    18,    17,    51,    41,    51,    77,    32,    58,
    77,    58,    36,    12,    46,    15,    48,    39,    82,    68,
    40,    55,     8,     8,    70,    70,    73,     7,     7,     7,
     7,    84,    84,     1,     7,    61,     7,     3,     9,     7,
    10,    61,    61,    61,    61,     2,    11,    14,     2,     2,
     2,    16,    27,    28,    55,    38,    42,    52,    56,    17,
    57,    59,    73,    73,    63,    69,    74,    81,   nil,    68,
     8,   nil,    41,   nil,    41,   nil,    51,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,    39,   nil,    51,    40,   nil,    48,
    18,    73,   nil,    77,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,    15,   nil,    82,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,    17,    46,   nil,    77,    77,   nil,   nil,   nil,   nil,
   nil,   nil,    18,   nil,    35,    82,    82,   nil,   nil,   nil,
    12,   nil,    32,   nil,   nil,   nil,    36,    62,   nil,   nil,
   nil,   nil,   nil,   nil,    35,    77,    77,    58,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    18,    41,    41,    41,    41,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,    51,   nil,   nil,
   nil,   nil,   nil,   nil,    18,    18,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,    17,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    17,    18,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    35,   nil,   nil,   nil,    17,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,    18,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    17,   nil,
   nil,    35,    35,   nil,   nil,   nil,    17,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    17,
   nil,   nil,    35,    35,    17 ]

racc_goto_pointer = [
   nil,    33,    43,    37,   nil,   nil,   nil,    15,    12,   -16,
    29,    26,    -7,   nil,   -24,   -57,  -204,   -16,   -81,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,    33,    34,   nil,
   nil,   nil,   -14,   nil,   nil,   -22,   -10,   nil,    30,    -8,
    -5,   -20,   -36,   nil,   nil,   nil,   -78,   nil,   -10,   nil,
   nil,   -24,  -160,   nil,   nil,   -10,   -63,   -62,  -135,    27,
   nil,     0,  -145,    17,   nil,   nil,   nil,   nil,  -230,  -273,
   -84,   nil,   nil,  -258,  -105,   nil,   nil,  -179,   nil,   nil,
   nil,  -199,  -168,   nil,  -313,   nil ]

racc_goto_default = [
   nil,   nil,   nil,   nil,     5,     6,     7,     8,   nil,   nil,
   172,   nil,   nil,    71,   nil,   nil,    72,   nil,   nil,   180,
    12,    13,    14,    15,    16,    17,    18,   nil,   nil,    19,
    21,    22,   nil,    79,    80,   179,   176,    24,   nil,   nil,
   nil,   nil,   nil,    93,    95,    96,   111,    26,   nil,    99,
   100,   nil,   101,   102,    28,    30,    32,    33,    34,   nil,
    35,    36,   nil,    40,    41,    42,    43,    44,   nil,   305,
   110,   109,   112,   nil,   nil,   171,   173,   174,   175,   177,
   178,   182,   nil,   269,   270,   189 ]

racc_reduce_table = [
  0, 0, :racc_error,
  0, 63, :_reduce_1,
  2, 61, :_reduce_2,
  2, 62, :_reduce_none,
  2, 62, :_reduce_none,
  2, 62, :_reduce_none,
  1, 62, :_reduce_none,
  1, 62, :_reduce_none,
  1, 62, :_reduce_none,
  1, 62, :_reduce_none,
  0, 62, :_reduce_none,
  3, 64, :_reduce_11,
  4, 65, :_reduce_12,
  3, 65, :_reduce_13,
  2, 68, :_reduce_none,
  1, 68, :_reduce_15,
  1, 68, :_reduce_16,
  4, 66, :_reduce_17,
  3, 66, :_reduce_18,
  3, 69, :_reduce_19,
  1, 69, :_reduce_20,
  1, 71, :_reduce_21,
  3, 71, :_reduce_22,
  0, 71, :_reduce_23,
  3, 72, :_reduce_24,
  2, 72, :_reduce_25,
  1, 73, :_reduce_26,
  1, 73, :_reduce_27,
  0, 73, :_reduce_28,
  1, 74, :_reduce_29,
  5, 76, :_reduce_30,
  8, 76, :_reduce_31,
  1, 77, :_reduce_32,
  0, 77, :_reduce_33,
  3, 75, :_reduce_34,
  0, 75, :_reduce_35,
  1, 79, :_reduce_36,
  2, 67, :_reduce_none,
  2, 67, :_reduce_none,
  2, 67, :_reduce_none,
  2, 67, :_reduce_none,
  1, 67, :_reduce_none,
  1, 67, :_reduce_none,
  1, 67, :_reduce_none,
  1, 67, :_reduce_none,
  1, 81, :_reduce_none,
  1, 81, :_reduce_none,
  1, 81, :_reduce_none,
  1, 87, :_reduce_none,
  1, 87, :_reduce_none,
  3, 84, :_reduce_50,
  3, 89, :_reduce_51,
  3, 85, :_reduce_52,
  2, 85, :_reduce_53,
  3, 90, :_reduce_54,
  1, 91, :_reduce_55,
  3, 92, :_reduce_56,
  1, 92, :_reduce_57,
  1, 93, :_reduce_none,
  1, 93, :_reduce_none,
  1, 93, :_reduce_none,
  3, 86, :_reduce_61,
  2, 86, :_reduce_62,
  3, 97, :_reduce_63,
  1, 98, :_reduce_64,
  1, 98, :_reduce_65,
  1, 98, :_reduce_66,
  1, 102, :_reduce_67,
  1, 102, :_reduce_68,
  1, 102, :_reduce_69,
  3, 101, :_reduce_70,
  1, 101, :_reduce_71,
  2, 99, :_reduce_72,
  1, 100, :_reduce_none,
  1, 100, :_reduce_none,
  3, 104, :_reduce_75,
  3, 104, :_reduce_76,
  3, 105, :_reduce_77,
  3, 105, :_reduce_78,
  3, 103, :_reduce_79,
  4, 103, :_reduce_80,
  3, 82, :_reduce_none,
  2, 82, :_reduce_none,
  3, 107, :_reduce_83,
  2, 108, :_reduce_none,
  1, 108, :_reduce_none,
  3, 109, :_reduce_86,
  2, 109, :_reduce_87,
  2, 110, :_reduce_88,
  0, 112, :_reduce_none,
  3, 112, :_reduce_90,
  1, 112, :_reduce_none,
  1, 113, :_reduce_none,
  1, 113, :_reduce_93,
  3, 83, :_reduce_94,
  2, 83, :_reduce_95,
  2, 114, :_reduce_96,
  3, 80, :_reduce_97,
  2, 80, :_reduce_98,
  1, 88, :_reduce_99,
  2, 115, :_reduce_100,
  2, 115, :_reduce_101,
  3, 116, :_reduce_102,
  1, 116, :_reduce_103,
  3, 117, :_reduce_104,
  1, 117, :_reduce_none,
  1, 119, :_reduce_106,
  1, 119, :_reduce_107,
  1, 119, :_reduce_108,
  1, 119, :_reduce_109,
  2, 118, :_reduce_110,
  1, 118, :_reduce_111,
  1, 118, :_reduce_112,
  3, 122, :_reduce_113,
  1, 122, :_reduce_none,
  1, 123, :_reduce_115,
  3, 123, :_reduce_116,
  2, 123, :_reduce_117,
  3, 123, :_reduce_118,
  1, 120, :_reduce_119,
  1, 120, :_reduce_120,
  2, 120, :_reduce_121,
  3, 120, :_reduce_122,
  3, 120, :_reduce_123,
  1, 121, :_reduce_124,
  1, 121, :_reduce_125,
  1, 121, :_reduce_126,
  1, 121, :_reduce_127,
  2, 121, :_reduce_128,
  2, 121, :_reduce_129,
  2, 121, :_reduce_130,
  2, 121, :_reduce_131,
  1, 124, :_reduce_132,
  2, 125, :_reduce_133,
  5, 126, :_reduce_134,
  5, 126, :_reduce_135,
  5, 126, :_reduce_136,
  5, 126, :_reduce_137,
  5, 126, :_reduce_138,
  5, 126, :_reduce_139,
  5, 126, :_reduce_140,
  5, 126, :_reduce_141,
  5, 126, :_reduce_142,
  5, 126, :_reduce_143,
  5, 126, :_reduce_144,
  5, 126, :_reduce_145,
  3, 126, :_reduce_146,
  2, 127, :_reduce_147,
  3, 127, :_reduce_148,
  3, 127, :_reduce_149,
  4, 127, :_reduce_150,
  4, 127, :_reduce_151,
  2, 127, :_reduce_152,
  4, 127, :_reduce_153,
  6, 127, :_reduce_154,
  7, 127, :_reduce_155,
  0, 128, :_reduce_none,
  1, 128, :_reduce_none,
  1, 129, :_reduce_none,
  3, 129, :_reduce_none,
  1, 130, :_reduce_none,
  2, 130, :_reduce_none,
  3, 111, :_reduce_none,
  2, 111, :_reduce_none,
  2, 111, :_reduce_none,
  1, 111, :_reduce_none,
  1, 111, :_reduce_none,
  1, 131, :_reduce_167,
  4, 106, :_reduce_168,
  5, 106, :_reduce_169,
  5, 106, :_reduce_170,
  6, 106, :_reduce_171,
  1, 133, :_reduce_172,
  0, 133, :_reduce_173,
  1, 132, :_reduce_174,
  2, 132, :_reduce_175,
  1, 132, :_reduce_176,
  1, 134, :_reduce_none,
  1, 134, :_reduce_none,
  1, 134, :_reduce_none,
  3, 78, :_reduce_180,
  2, 78, :_reduce_181,
  1, 78, :_reduce_182,
  1, 135, :_reduce_none,
  1, 135, :_reduce_none,
  1, 135, :_reduce_none,
  1, 135, :_reduce_none,
  1, 135, :_reduce_none,
  1, 135, :_reduce_none,
  1, 135, :_reduce_none,
  1, 135, :_reduce_none,
  1, 135, :_reduce_none,
  1, 135, :_reduce_none,
  1, 135, :_reduce_none,
  2, 95, :_reduce_194,
  3, 95, :_reduce_195,
  2, 95, :_reduce_196,
  2, 94, :_reduce_197,
  1, 94, :_reduce_198,
  3, 141, :_reduce_none,
  1, 141, :_reduce_none,
  4, 140, :_reduce_201,
  1, 142, :_reduce_none,
  3, 142, :_reduce_203,
  3, 142, :_reduce_204,
  1, 143, :_reduce_none,
  4, 143, :_reduce_206,
  4, 143, :_reduce_207,
  1, 144, :_reduce_208,
  1, 144, :_reduce_209,
  3, 144, :_reduce_210,
  2, 139, :_reduce_211,
  1, 139, :_reduce_212,
  2, 96, :_reduce_213,
  1, 96, :_reduce_214,
  2, 138, :_reduce_215,
  1, 138, :_reduce_216,
  2, 137, :_reduce_217,
  1, 137, :_reduce_218,
  1, 137, :_reduce_219,
  1, 137, :_reduce_220,
  1, 137, :_reduce_221,
  1, 137, :_reduce_222,
  1, 137, :_reduce_223,
  1, 136, :_reduce_224,
  1, 145, :_reduce_225,
  1, 145, :_reduce_226,
  2, 70, :_reduce_227,
  1, 70, :_reduce_228 ]

racc_reduce_n = 229

racc_shift_n = 360

racc_token_table = {
  false => 0,
  :error => 1,
  :CHARSET_SYM => 2,
  :IMPORT_SYM => 3,
  :STRING => 4,
  :SEMI => 5,
  :IDENT => 6,
  :S => 7,
  :COMMA => 8,
  :LBRACE => 9,
  :RBRACE => 10,
  :STAR => 11,
  :HASH => 12,
  :LSQUARE => 13,
  :RSQUARE => 14,
  :EQUAL => 15,
  :INCLUDES => 16,
  :DASHMATCH => 17,
  :LPAREN => 18,
  :RPAREN => 19,
  :FUNCTION => 20,
  :GREATER => 21,
  :PLUS => 22,
  :SLASH => 23,
  :NUMBER => 24,
  :MINUS => 25,
  :LENGTH => 26,
  :PERCENTAGE => 27,
  :ANGLE => 28,
  :TIME => 29,
  :FREQ => 30,
  :URI => 31,
  :IMPORTANT_SYM => 32,
  :MEDIA_SYM => 33,
  :NOT => 34,
  :ONLY => 35,
  :AND => 36,
  :NTH_PSEUDO_CLASS => 37,
  :DOCUMENT_QUERY_SYM => 38,
  :FUNCTION_NO_QUOTE => 39,
  :TILDE => 40,
  :PREFIXMATCH => 41,
  :SUFFIXMATCH => 42,
  :SUBSTRINGMATCH => 43,
  :NOT_PSEUDO_CLASS => 44,
  :KEYFRAMES_SYM => 45,
  :MATCHES_PSEUDO_CLASS => 46,
  :NAMESPACE_SYM => 47,
  :MOZ_PSEUDO_ELEMENT => 48,
  :RESOLUTION => 49,
  :COLON => 50,
  :SUPPORTS_SYM => 51,
  :OR => 52,
  :VARIABLE_NAME => 53,
  :CALC_SYM => 54,
  :FONTFACE_SYM => 55,
  :UNICODE_RANGE => 56,
  :RATIO => 57,
  "|" => 58,
  "." => 59 }

racc_nt_base = 60

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",
  "CHARSET_SYM",
  "IMPORT_SYM",
  "STRING",
  "SEMI",
  "IDENT",
  "S",
  "COMMA",
  "LBRACE",
  "RBRACE",
  "STAR",
  "HASH",
  "LSQUARE",
  "RSQUARE",
  "EQUAL",
  "INCLUDES",
  "DASHMATCH",
  "LPAREN",
  "RPAREN",
  "FUNCTION",
  "GREATER",
  "PLUS",
  "SLASH",
  "NUMBER",
  "MINUS",
  "LENGTH",
  "PERCENTAGE",
  "ANGLE",
  "TIME",
  "FREQ",
  "URI",
  "IMPORTANT_SYM",
  "MEDIA_SYM",
  "NOT",
  "ONLY",
  "AND",
  "NTH_PSEUDO_CLASS",
  "DOCUMENT_QUERY_SYM",
  "FUNCTION_NO_QUOTE",
  "TILDE",
  "PREFIXMATCH",
  "SUFFIXMATCH",
  "SUBSTRINGMATCH",
  "NOT_PSEUDO_CLASS",
  "KEYFRAMES_SYM",
  "MATCHES_PSEUDO_CLASS",
  "NAMESPACE_SYM",
  "MOZ_PSEUDO_ELEMENT",
  "RESOLUTION",
  "COLON",
  "SUPPORTS_SYM",
  "OR",
  "VARIABLE_NAME",
  "CALC_SYM",
  "FONTFACE_SYM",
  "UNICODE_RANGE",
  "RATIO",
  "\"|\"",
  "\".\"",
  "$start",
  "document",
  "stylesheet",
  "@1",
  "charset",
  "import",
  "namespace",
  "body",
  "import_location",
  "medium",
  "ident",
  "media_query_list",
  "media_query",
  "optional_only_or_not",
  "media_type",
  "optional_and_exprs",
  "media_expr",
  "optional_space",
  "expr",
  "resolution",
  "ruleset",
  "conditional_rule",
  "keyframes_rule",
  "fontface_rule",
  "media",
  "document_query",
  "supports",
  "body_in_media",
  "empty_ruleset",
  "start_media",
  "start_document_query",
  "start_document_query_pos",
  "url_match_fns",
  "url_match_fn",
  "function_no_quote",
  "function",
  "uri",
  "start_supports",
  "supports_condition_root",
  "supports_negation",
  "supports_conjunction_or_disjunction",
  "supports_condition_in_parens",
  "supports_condition",
  "supports_declaration_condition",
  "supports_conjunction",
  "supports_disjunction",
  "declaration_internal",
  "start_keyframes_rule",
  "keyframes_blocks",
  "keyframes_block",
  "start_keyframes_block",
  "declarations",
  "keyframes_selectors",
  "keyframes_selector",
  "start_fontface_rule",
  "start_selector",
  "selectors",
  "selector",
  "simple_selector",
  "combinator",
  "element_name",
  "hcap",
  "simple_selectors",
  "ident_with_namespace",
  "hash",
  "class",
  "attrib",
  "pseudo",
  "any_number_of_idents",
  "multiple_idents",
  "one_or_more_semis",
  "declaration",
  "property",
  "prio",
  "operator",
  "term",
  "ratio",
  "numeric",
  "string",
  "hexcolor",
  "calc",
  "uranges",
  "calc_sum",
  "calc_product",
  "calc_value",
  "unary_operator" ]

Racc_debug_parser = false

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

# reduce 0 omitted

module_eval(<<'.,.,', 'parser.y', 26)
  def _reduce_1(val, _values, result)
     @handler.start_document 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 28)
  def _reduce_2(val, _values, result)
     @handler.end_document 
    result
  end
.,.,

# reduce 3 omitted

# reduce 4 omitted

# reduce 5 omitted

# reduce 6 omitted

# reduce 7 omitted

# reduce 8 omitted

# reduce 9 omitted

# reduce 10 omitted

module_eval(<<'.,.,', 'parser.y', 41)
  def _reduce_11(val, _values, result)
     @handler.charset interpret_string(val[1]), {} 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 45)
  def _reduce_12(val, _values, result)
            @handler.import_style val[2], val[1]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 48)
  def _reduce_13(val, _values, result)
            @handler.import_style [], val[1]
      
    result
  end
.,.,

# reduce 14 omitted

module_eval(<<'.,.,', 'parser.y', 53)
  def _reduce_15(val, _values, result)
     result = Terms::String.new interpret_string val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 54)
  def _reduce_16(val, _values, result)
     result = Terms::URI.new interpret_uri val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 58)
  def _reduce_17(val, _values, result)
            @handler.namespace val[1], val[2]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 61)
  def _reduce_18(val, _values, result)
            @handler.namespace nil, val[1]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 66)
  def _reduce_19(val, _values, result)
            result = val[0] << MediaType.new(val[2])
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 69)
  def _reduce_20(val, _values, result)
            result = [MediaType.new(val[0])]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 73)
  def _reduce_21(val, _values, result)
     result = MediaQueryList.new([ val[0] ]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 74)
  def _reduce_22(val, _values, result)
     result = val[0] << val[2] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 75)
  def _reduce_23(val, _values, result)
     result = MediaQueryList.new 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 78)
  def _reduce_24(val, _values, result)
     result = MediaQuery.new(val[0], val[1], val[2]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 79)
  def _reduce_25(val, _values, result)
     result = MediaQuery.new(nil, val[0], val[1]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 82)
  def _reduce_26(val, _values, result)
     result = :only 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 83)
  def _reduce_27(val, _values, result)
     result = :not 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 84)
  def _reduce_28(val, _values, result)
     result = nil 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 87)
  def _reduce_29(val, _values, result)
     result = MediaType.new(val[0]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 90)
  def _reduce_30(val, _values, result)
     result = MediaType.new(val[2]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 91)
  def _reduce_31(val, _values, result)
     result = MediaFeature.new(val[2], val[6][0]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 94)
  def _reduce_32(val, _values, result)
     result = val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 95)
  def _reduce_33(val, _values, result)
     result = nil 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 98)
  def _reduce_34(val, _values, result)
     result = val[0] << val[2] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 99)
  def _reduce_35(val, _values, result)
     result = [] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 103)
  def _reduce_36(val, _values, result)
            unit = val.first.gsub(/[\s\d.]/, '')
        number = numeric(val.first)
        result = Terms::Resolution.new(number, unit)
      
    result
  end
.,.,

# reduce 37 omitted

# reduce 38 omitted

# reduce 39 omitted

# reduce 40 omitted

# reduce 41 omitted

# reduce 42 omitted

# reduce 43 omitted

# reduce 44 omitted

# reduce 45 omitted

# reduce 46 omitted

# reduce 47 omitted

# reduce 48 omitted

# reduce 49 omitted

module_eval(<<'.,.,', 'parser.y', 128)
  def _reduce_50(val, _values, result)
     @handler.end_media val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 132)
  def _reduce_51(val, _values, result)
            result = val[1]
        @handler.start_media result
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 137)
  def _reduce_52(val, _values, result)
     @handler.end_document_query(before_pos(val), after_pos(val)) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 138)
  def _reduce_53(val, _values, result)
     @handler.end_document_query(before_pos(val), after_pos(val)) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 142)
  def _reduce_54(val, _values, result)
            @handler.start_document_query(val[1], after_pos(val))
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 147)
  def _reduce_55(val, _values, result)
            @handler.node_start_pos = before_pos(val)
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 152)
  def _reduce_56(val, _values, result)
            result = [val[0], val[2]].flatten
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 155)
  def _reduce_57(val, _values, result)
            result = val
      
    result
  end
.,.,

# reduce 58 omitted

# reduce 59 omitted

# reduce 60 omitted

module_eval(<<'.,.,', 'parser.y', 164)
  def _reduce_61(val, _values, result)
     @handler.end_supports 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 165)
  def _reduce_62(val, _values, result)
     @handler.end_supports 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 169)
  def _reduce_63(val, _values, result)
            @handler.start_supports val[1]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 173)
  def _reduce_64(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 174)
  def _reduce_65(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 175)
  def _reduce_66(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 178)
  def _reduce_67(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 179)
  def _reduce_68(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 180)
  def _reduce_69(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 183)
  def _reduce_70(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 184)
  def _reduce_71(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 187)
  def _reduce_72(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

# reduce 73 omitted

# reduce 74 omitted

module_eval(<<'.,.,', 'parser.y', 194)
  def _reduce_75(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 195)
  def _reduce_76(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 198)
  def _reduce_77(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 199)
  def _reduce_78(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 202)
  def _reduce_79(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 203)
  def _reduce_80(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

# reduce 81 omitted

# reduce 82 omitted

module_eval(<<'.,.,', 'parser.y', 211)
  def _reduce_83(val, _values, result)
            @handler.start_keyframes_rule val[1]
      
    result
  end
.,.,

# reduce 84 omitted

# reduce 85 omitted

module_eval(<<'.,.,', 'parser.y', 219)
  def _reduce_86(val, _values, result)
     @handler.end_keyframes_block 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 220)
  def _reduce_87(val, _values, result)
     @handler.end_keyframes_block 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 224)
  def _reduce_88(val, _values, result)
            @handler.start_keyframes_block val[0]
      
    result
  end
.,.,

# reduce 89 omitted

module_eval(<<'.,.,', 'parser.y', 229)
  def _reduce_90(val, _values, result)
             result = val[0] + ', ' + val[2]
      
    result
  end
.,.,

# reduce 91 omitted

# reduce 92 omitted

module_eval(<<'.,.,', 'parser.y', 235)
  def _reduce_93(val, _values, result)
     result = val[0].strip 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 238)
  def _reduce_94(val, _values, result)
     @handler.end_fontface_rule 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 239)
  def _reduce_95(val, _values, result)
     @handler.end_fontface_rule 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 243)
  def _reduce_96(val, _values, result)
            @handler.start_fontface_rule
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 248)
  def _reduce_97(val, _values, result)
            @handler.end_selector val.first
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 251)
  def _reduce_98(val, _values, result)
            @handler.end_selector val.first
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 256)
  def _reduce_99(val, _values, result)
            start = @handler.start_selector([])
        @handler.end_selector(start)
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 261)
  def _reduce_100(val, _values, result)
     result = val.last 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 263)
  def _reduce_101(val, _values, result)
            @handler.start_selector val.first
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 269)
  def _reduce_102(val, _values, result)
            sel = Selector.new(val.first, {})
        result = [sel].concat(val[2])
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 274)
  def _reduce_103(val, _values, result)
            result = [Selector.new(val.first, {})]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 280)
  def _reduce_104(val, _values, result)
            val.flatten!
        val[2].combinator = val.delete_at 1
        result = val
      
    result
  end
.,.,

# reduce 105 omitted

module_eval(<<'.,.,', 'parser.y', 287)
  def _reduce_106(val, _values, result)
     result = :s 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 288)
  def _reduce_107(val, _values, result)
     result = :> 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 289)
  def _reduce_108(val, _values, result)
     result = :+ 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 290)
  def _reduce_109(val, _values, result)
     result = :~ 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 294)
  def _reduce_110(val, _values, result)
            selector = val.first
        selector.additional_selectors = val.last
        result = [selector]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 298)
  def _reduce_111(val, _values, result)
     result = val 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 301)
  def _reduce_112(val, _values, result)
            ss = Selectors::Simple.new nil, nil
        ss.additional_selectors = val.flatten
        result = [ss]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 307)
  def _reduce_113(val, _values, result)
     result = [val[0], val[2]].flatten 
    result
  end
.,.,

# reduce 114 omitted

module_eval(<<'.,.,', 'parser.y', 311)
  def _reduce_115(val, _values, result)
     result = [interpret_identifier(val[0]), nil] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 312)
  def _reduce_116(val, _values, result)
     result = [interpret_identifier(val[2]), interpret_identifier(val[0])] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 313)
  def _reduce_117(val, _values, result)
     result = [interpret_identifier(val[1]), nil] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 314)
  def _reduce_118(val, _values, result)
     result = [interpret_identifier(val[2]), '*'] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 317)
  def _reduce_119(val, _values, result)
     result = Selectors::Type.new val.first[0], nil, val.first[1] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 318)
  def _reduce_120(val, _values, result)
     result = Selectors::Universal.new val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 319)
  def _reduce_121(val, _values, result)
     result = Selectors::Universal.new val[1] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 320)
  def _reduce_122(val, _values, result)
     result = Selectors::Universal.new val[2], nil, val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 321)
  def _reduce_123(val, _values, result)
     result = Selectors::Universal.new val[2], nil, interpret_identifier(val[0]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 324)
  def _reduce_124(val, _values, result)
     result = val 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 325)
  def _reduce_125(val, _values, result)
     result = val 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 326)
  def _reduce_126(val, _values, result)
     result = val 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 327)
  def _reduce_127(val, _values, result)
     result = val 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 328)
  def _reduce_128(val, _values, result)
     result = val.flatten 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 329)
  def _reduce_129(val, _values, result)
     result = val.flatten 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 330)
  def _reduce_130(val, _values, result)
     result = val.flatten 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 331)
  def _reduce_131(val, _values, result)
     result = val.flatten 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 335)
  def _reduce_132(val, _values, result)
            result = Selectors::Id.new interpret_identifier val.first.sub(/^#/, '')
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 339)
  def _reduce_133(val, _values, result)
            result = Selectors::Class.new interpret_identifier val.last
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 344)
  def _reduce_134(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          interpret_identifier(val[3]),
          Selectors::Attribute::EQUALS,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 352)
  def _reduce_135(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          interpret_string(val[3]),
          Selectors::Attribute::EQUALS,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 360)
  def _reduce_136(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          interpret_string(val[3]),
          Selectors::Attribute::INCLUDES,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 368)
  def _reduce_137(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          interpret_identifier(val[3]),
          Selectors::Attribute::INCLUDES,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 376)
  def _reduce_138(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          interpret_identifier(val[3]),
          Selectors::Attribute::DASHMATCH,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 384)
  def _reduce_139(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          interpret_string(val[3]),
          Selectors::Attribute::DASHMATCH,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 392)
  def _reduce_140(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          interpret_identifier(val[3]),
          Selectors::Attribute::PREFIXMATCH,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 400)
  def _reduce_141(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          interpret_string(val[3]),
          Selectors::Attribute::PREFIXMATCH,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 408)
  def _reduce_142(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          interpret_identifier(val[3]),
          Selectors::Attribute::SUFFIXMATCH,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 416)
  def _reduce_143(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          interpret_string(val[3]),
          Selectors::Attribute::SUFFIXMATCH,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 424)
  def _reduce_144(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          interpret_identifier(val[3]),
          Selectors::Attribute::SUBSTRINGMATCH,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 432)
  def _reduce_145(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          interpret_string(val[3]),
          Selectors::Attribute::SUBSTRINGMATCH,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 440)
  def _reduce_146(val, _values, result)
            result = Selectors::Attribute.new(
          val[1][0],
          nil,
          Selectors::Attribute::SET,
          val[1][1]
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 450)
  def _reduce_147(val, _values, result)
            result = Selectors::pseudo interpret_identifier(val[1])
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 453)
  def _reduce_148(val, _values, result)
            result = Selectors::PseudoElement.new(
          interpret_identifier(val[2])
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 458)
  def _reduce_149(val, _values, result)
            result = Selectors::PseudoClass.new(
          interpret_identifier(val[1].sub(/\($/, '')),
          ''
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 464)
  def _reduce_150(val, _values, result)
            result = Selectors::PseudoClass.new(
          interpret_identifier(val[1].sub(/\($/, '')),
          interpret_identifier(val[2])
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 470)
  def _reduce_151(val, _values, result)
            result = Selectors::PseudoClass.new(
          'not',
          val[2].first.to_s
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 476)
  def _reduce_152(val, _values, result)
            result = Selectors::PseudoClass.new(
          interpret_identifier(val[1].sub(/\(.*/, '')),
          interpret_identifier(val[1].sub(/.*\(/, '').sub(/\).*/, ''))
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 482)
  def _reduce_153(val, _values, result)
            result = Selectors::PseudoClass.new(
          val[1].split('(').first.strip,
          val[2].join(', ')
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 488)
  def _reduce_154(val, _values, result)
            result = Selectors::PseudoElement.new(
          interpret_identifier(val[1].sub(/\($/, ''))
        )
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 493)
  def _reduce_155(val, _values, result)
            result = Selectors::PseudoElement.new(
          interpret_identifier(val[2].sub(/\($/, ''))
        )
      
    result
  end
.,.,

# reduce 156 omitted

# reduce 157 omitted

# reduce 158 omitted

# reduce 159 omitted

# reduce 160 omitted

# reduce 161 omitted

# reduce 162 omitted

# reduce 163 omitted

# reduce 164 omitted

# reduce 165 omitted

# reduce 166 omitted

module_eval(<<'.,.,', 'parser.y', 519)
  def _reduce_167(val, _values, result)
     @handler.property val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 523)
  def _reduce_168(val, _values, result)
     result = Declaration.new(val.first, val[2], val[3]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 525)
  def _reduce_169(val, _values, result)
     result = Declaration.new(val.first, val[3], val[4]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 527)
  def _reduce_170(val, _values, result)
     result = Declaration.new(val.first, val[3], val[4]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 529)
  def _reduce_171(val, _values, result)
     result = Declaration.new(val.first, val[4], val[5]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 532)
  def _reduce_172(val, _values, result)
     result = true 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 533)
  def _reduce_173(val, _values, result)
     result = false 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 536)
  def _reduce_174(val, _values, result)
     result = interpret_identifier val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 537)
  def _reduce_175(val, _values, result)
     result = interpret_identifier val.join 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 538)
  def _reduce_176(val, _values, result)
     result = interpret_identifier val[0] 
    result
  end
.,.,

# reduce 177 omitted

# reduce 178 omitted

# reduce 179 omitted

module_eval(<<'.,.,', 'parser.y', 547)
  def _reduce_180(val, _values, result)
            result = [val.first, val.last].flatten
        val.last.first.operator = val[1]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 550)
  def _reduce_181(val, _values, result)
     result = val.flatten 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 551)
  def _reduce_182(val, _values, result)
     result = val 
    result
  end
.,.,

# reduce 183 omitted

# reduce 184 omitted

# reduce 185 omitted

# reduce 186 omitted

# reduce 187 omitted

# reduce 188 omitted

# reduce 189 omitted

# reduce 190 omitted

# reduce 191 omitted

# reduce 192 omitted

# reduce 193 omitted

module_eval(<<'.,.,', 'parser.y', 567)
  def _reduce_194(val, _values, result)
     result = val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 569)
  def _reduce_195(val, _values, result)
            name = interpret_identifier val.first.sub(/\($/, '')
        if name == 'rgb'
          result = Terms::Rgb.new(*val[1])
        else
          result = Terms::Function.new name, val[1]
        end
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 577)
  def _reduce_196(val, _values, result)
            name = interpret_identifier val.first.sub(/\($/, '')
        result = Terms::Function.new name
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 582)
  def _reduce_197(val, _values, result)
     result = val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 584)
  def _reduce_198(val, _values, result)
            parts = val.first.split('(')
        name = interpret_identifier parts.first
        result = Terms::Function.new(name, [Terms::String.new(interpret_string_no_quote(parts.last))])
      
    result
  end
.,.,

# reduce 199 omitted

# reduce 200 omitted

module_eval(<<'.,.,', 'parser.y', 595)
  def _reduce_201(val, _values, result)
           result = Terms::Math.new(val.first.split('(').first, val[1])
      
    result
  end
.,.,

# reduce 202 omitted

module_eval(<<'.,.,', 'parser.y', 601)
  def _reduce_203(val, _values, result)
     val.insert(1, ' '); result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 602)
  def _reduce_204(val, _values, result)
     val.insert(1, ' '); result = val.join('') 
    result
  end
.,.,

# reduce 205 omitted

module_eval(<<'.,.,', 'parser.y', 606)
  def _reduce_206(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 607)
  def _reduce_207(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 610)
  def _reduce_208(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 611)
  def _reduce_209(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 612)
  def _reduce_210(val, _values, result)
     result = val.join('') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 615)
  def _reduce_211(val, _values, result)
     result = val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 616)
  def _reduce_212(val, _values, result)
     result = Terms::Hash.new val.first.sub(/^#/, '') 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 619)
  def _reduce_213(val, _values, result)
     result = val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 620)
  def _reduce_214(val, _values, result)
     result = Terms::URI.new interpret_uri val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 623)
  def _reduce_215(val, _values, result)
     result = val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 624)
  def _reduce_216(val, _values, result)
     result = Terms::String.new interpret_string val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 628)
  def _reduce_217(val, _values, result)
            result = val[1]
        val[1].unary_operator = val.first
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 632)
  def _reduce_218(val, _values, result)
            result = Terms::Number.new numeric val.first
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 635)
  def _reduce_219(val, _values, result)
            result = Terms::Number.new numeric(val.first), nil, '%'
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 638)
  def _reduce_220(val, _values, result)
            unit    = val.first.gsub(/[\s\d.]/, '')
        result = Terms::Number.new numeric(val.first), nil, unit
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 642)
  def _reduce_221(val, _values, result)
            unit    = val.first.gsub(/[\s\d.]/, '')
        result = Terms::Number.new numeric(val.first), nil, unit
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 646)
  def _reduce_222(val, _values, result)
            unit    = val.first.gsub(/[\s\d.]/, '')
        result = Terms::Number.new numeric(val.first), nil, unit
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 650)
  def _reduce_223(val, _values, result)
            unit    = val.first.gsub(/[\s\d.]/, '')
        result = Terms::Number.new numeric(val.first), nil, unit
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 656)
  def _reduce_224(val, _values, result)
            result = Terms::Ratio.new(val[0], val[1])
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 660)
  def _reduce_225(val, _values, result)
     result = :minus 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 661)
  def _reduce_226(val, _values, result)
     result = :plus 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 664)
  def _reduce_227(val, _values, result)
     result = val.first 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 665)
  def _reduce_228(val, _values, result)
     result = Terms::Ident.new interpret_identifier val.first 
    result
  end
.,.,

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

    end   # class Parser
    end   # module CSS
  end   # module CSSPool
