⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parser.c

📁 cg编译器
💻 C
📖 第 1 页 / 共 5 页
字号:
static const short yyrline[] =
{
       0,   245,   246,   253,   255,   258,   260,   262,   266,   273,
     275,   279,   282,   284,   286,   288,   290,   292,   296,   299,
     301,   303,   305,   307,   309,   313,   315,   319,   321,   329,
     331,   333,   335,   337,   339,   341,   343,   355,   363,   371,
     373,   381,   383,   391,   393,   395,   403,   406,   408,   412,
     416,   419,   423,   424,   427,   431,   432,   435,   454,   454,
     458,   460,   467,   469,   473,   475,   479,   481,   483,   485,
     487,   491,   495,   497,   499,   516,   518,   522,   524,   528,
     530,   533,   539,   552,   554,   556,   560,   562,   574,   576,
     580,   588,   589,   590,   592,   600,   601,   603,   605,   607,
     609,   613,   615,   618,   620,   624,   626,   634,   635,   637,
     639,   641,   643,   645,   653,   657,   665,   666,   668,   670,
     678,   679,   681,   689,   690,   692,   700,   701,   703,   705,
     707,   715,   716,   718,   726,   727,   735,   736,   744,   745,
     753,   754,   762,   763,   771,   772,   776,   784,   795,   797,
     801,   809,   810,   813,   814,   815,   816,   817,   818,   821,
     822,   829,   831,   839,   843,   845,   849,   857,   859,   863,
     867,   875,   876,   880,   881,   889,   890,   894,   896,   898,
     900,   902,   904,   906,   914,   916,   918,   922,   924,   928,
     933,   934,   938,   939,   953,   954,   962,   964,   972,   975,
     978,   981,   984,   987,   990,   992,   996,  1000,  1004
};
#endif


#if (YYDEBUG) || defined YYERROR_VERBOSE

/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
static const char *const yytname[] =
{
  "$", "error", "$undefined.", "AND_SY", "ASM_SY", "ASSIGNMINUS_SY", 
  "ASSIGNMOD_SY", "ASSIGNPLUS_SY", "ASSIGNSLASH_SY", "ASSIGNSTAR_SY", 
  "BOOLEAN_SY", "BREAK_SY", "CASE_SY", "CFLOATCONST_SY", "COLONCOLON_SY", 
  "CONST_SY", "CONTINUE_SY", "DEFAULT_SY", "DISCARD_SY", "DO_SY", "EQ_SY", 
  "ELSE_SY", "ERROR_SY", "EXTERN_SY", "FLOAT_SY", "FLOATCONST_SY", 
  "FLOATHCONST_SY", "FLOATXCONST_SY", "FOR_SY", "GE_SY", "GG_SY", 
  "GOTO_SY", "IDENT_SY", "IF_SY", "IN_SY", "INLINE_SY", "INOUT_SY", 
  "INT_SY", "INTCONST_SY", "INTERNAL_SY", "LE_SY", "LL_SY", 
  "MINUSMINUS_SY", "NE_SY", "OR_SY", "OUT_SY", "PACKED_SY", "PLUSPLUS_SY", 
  "RETURN_SY", "STATIC_SY", "STRCONST_SY", "STRUCT_SY", "SWITCH_SY", 
  "TEXOBJ_SY", "THIS_SY", "TYPEDEF_SY", "TYPEIDENT_SY", "UNIFORM_SY", 
  "VARYING_SY", "VOID_SY", "WHILE_SY", "FIRST_USER_TOKEN_SY", "';'", 
  "','", "'='", "'}'", "':'", "'<'", "'>'", "'['", "']'", "')'", "'('", 
  "'{'", "'.'", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'&'", 
  "'^'", "'|'", "'?'", "compilation_unit", "external_declaration", 
  "declaration", "abstract_declaration", "declaration_specifiers", 
  "abstract_declaration_specifiers", "abstract_declaration_specifiers2", 
  "init_declarator_list", "init_declarator", "type_specifier", 
  "type_qualifier", "type_domain", "storage_class", "function_specifier", 
  "in_out", "struct_or_connector_specifier", "struct_compound_header", 
  "struct_or_connector_header", "struct_identifier", 
  "untagged_struct_header", "struct_declaration_list", 
  "struct_declaration", "annotation", "@1", "annotation_decl_list", 
  "declarator", "semantic_declarator", "basic_declarator", 
  "function_decl_header", "abstract_declarator", "parameter_list", 
  "parameter_declaration", "abstract_parameter_list", 
  "non_empty_abstract_parameter_list", "initializer", "initializer_list", 
  "variable", "basic_variable", "primary_expression", 
  "postfix_expression", "actual_argument_list", "non_empty_argument_list", 
  "expression_list", "unary_expression", "cast_expression", 
  "multiplicative_expression", "additive_expression", "shift_expression", 
  "relational_expression", "equality_expression", "AND_expression", 
  "exclusive_OR_expression", "inclusive_OR_expression", 
  "logical_AND_expression", "logical_OR_expression", 
  "conditional_expression", "conditional_test", "expression", 
  "function_definition", "function_definition_header", "statement", 
  "balanced_statement", "dangling_statement", "discard_statement", 
  "if_statement", "dangling_if", "if_header", "compound_statement", 
  "compound_header", "compound_tail", "block_item_list", "block_item", 
  "expression_statement", "expression_statement2", "iteration_statement", 
  "dangling_iteration", "boolean_scalar_expression", "for_expression_opt", 
  "for_expression", "boolean_expression_opt", "return_statement", 
  "member_identifier", "scope_identifier", "semantics_identifier", 
  "type_identifier", "variable_identifier", "identifier", "constant", 0
};
#endif

/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const short yyr1[] =
{
       0,    86,    86,    87,    87,    88,    88,    88,    89,    90,
      90,    91,    91,    91,    91,    91,    91,    91,    92,    92,
      92,    92,    92,    92,    92,    93,    93,    94,    94,    95,
      95,    95,    95,    95,    95,    95,    95,    96,    97,    98,
      98,    99,    99,   100,   100,   100,   101,   101,   101,   102,
     103,   103,   104,   104,   105,   106,   106,   107,   109,   108,
     110,   110,   111,   111,   112,   112,   113,   113,   113,   113,
     113,   114,   115,   115,   115,   116,   116,   117,   117,   118,
     118,   119,   119,   120,   120,   120,   121,   121,   122,   122,
     123,   124,   124,   124,   124,   125,   125,   125,   125,   125,
     125,   126,   126,   127,   127,   128,   128,   129,   129,   129,
     129,   129,   129,   129,   130,   130,   131,   131,   131,   131,
     132,   132,   132,   133,   133,   133,   134,   134,   134,   134,
     134,   135,   135,   135,   136,   136,   137,   137,   138,   138,
     139,   139,   140,   140,   141,   141,   142,   143,   144,   144,
     145,   146,   146,   147,   147,   147,   147,   147,   147,   148,
     148,   149,   149,   150,   151,   151,   152,   153,   153,   154,
     155,   156,   156,   157,   157,   158,   158,   159,   159,   159,
     159,   159,   159,   159,   160,   160,   160,   161,   161,   162,
     163,   163,   164,   164,   165,   165,   166,   166,   167,   168,
     169,   170,   171,   172,   173,   173,   173,   173,   173
};

/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const short yyr2[] =
{
       0,     1,     2,     1,     1,     2,     3,     2,     2,     1,
       2,     1,     2,     2,     2,     2,     2,     2,     1,     2,
       2,     2,     2,     2,     2,     1,     3,     1,     3,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     4,     4,     1,     1,
       2,     4,     1,     1,     1,     1,     2,     1,     0,     4,
       0,     2,     1,     2,     1,     3,     1,     4,     3,     3,
       3,     2,     0,     4,     3,     1,     3,     2,     4,     0,
       1,     1,     3,     1,     3,     4,     1,     3,     1,     3,
       1,     1,     1,     3,     4,     1,     2,     2,     3,     4,
       4,     0,     1,     1,     3,     1,     3,     1,     2,     2,
       2,     2,     2,     2,     1,     4,     1,     3,     3,     3,
       1,     3,     3,     1,     3,     3,     1,     3,     3,     3,
       3,     1,     3,     3,     1,     3,     1,     3,     1,     3,
       1,     3,     1,     3,     1,     5,     1,     1,     3,     2,
       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     2,     3,     4,     2,     4,     4,     3,     2,     1,
       1,     1,     2,     1,     1,     2,     1,     3,     1,     3,
       3,     3,     3,     3,     5,     7,     9,     5,     9,     1,
       1,     0,     1,     3,     1,     0,     3,     2,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1
};

/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
   doesn't specify something else to do.  Zero means the default is an
   error. */
static const short yydefact[] =
{
       0,    36,    32,    37,     0,    40,    30,    43,    41,    45,
      29,    42,    44,     0,    39,    54,    33,     0,   201,    38,
      31,     0,     1,     3,     0,     9,    11,    18,     0,     0,
       0,     0,     0,    34,    48,     0,     4,     0,    35,     7,
      17,   203,    50,    53,    52,    10,     2,     5,     0,    25,
      27,    62,    64,     0,    66,    24,    19,    21,    20,    23,
      22,    12,    14,    13,    16,    15,   169,     0,    49,     0,
     205,     0,     0,   206,   207,   208,     0,     0,   204,     0,
       0,     0,     0,   176,   149,     0,     0,     0,     0,     0,
     173,     0,    18,    91,    88,    95,   107,   114,   116,   120,
     123,   126,   131,   134,   136,   138,   140,   142,   144,   147,
       0,   178,   174,   151,   152,   154,   157,   159,     0,   153,
       0,     0,   171,   155,     0,   156,   160,   158,     0,    90,
     202,    92,     0,     6,     0,     0,   150,    58,    63,     0,
       0,    71,    81,     0,    72,     0,    75,     0,    80,    57,
       0,    55,     0,   161,     0,   107,     0,     0,     0,     0,
       0,   109,   108,   197,     0,     0,     0,    72,     0,   110,
     111,   112,   113,    27,     0,     0,     0,     0,     0,     0,
      97,    96,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   164,   151,   170,   168,     0,
     148,   172,   175,     0,    51,   200,    26,     0,    28,    83,
      60,    65,     0,    68,    77,     8,     0,    69,    70,     0,
      46,    56,    47,   162,     0,   192,     0,   190,   189,     0,
     196,     0,     0,    93,     0,   105,   179,   180,   181,   182,
     183,   177,     0,     0,   102,   103,    98,   198,   117,   118,
     119,   121,   122,   125,   124,   130,   129,   127,   128,   132,
     133,   135,   137,   139,   141,   143,     0,     0,   167,    89,
     202,    86,     0,     0,    67,     0,     0,    76,    82,     0,
       0,     0,   166,     0,   115,     0,    94,    99,   100,     0,
       0,   163,   165,     0,    84,    59,    61,    78,     0,    74,
       0,   194,     0,   193,   184,   187,   106,   104,   145,    85,
      87,    73,     0,     0,   185,     0,     0,   186,   188,     0,
       0
};

static const short yydefgoto[] =
{
      21,    22,    90,   142,    91,    25,    26,    48,    49,   154,
      28,    29,    30,    31,    32,    33,    67,    34,    42,    35,
     150,   151,   138,   220,   283,   173,    51,    52,    53,   225,
     145,   146,   147,   148,   218,   282,    93,    94,    95,   155,
     253,   254,   244,    97,    98,    99,   100,   101,   102,   103,
     104,   105,   106,   107,   108,   109,   110,   111,    36,    37,
     112,   113,   114,   115,   116,   117,   118,   119,   120,   208,
     121,   122,   123,   124,   125,   126,   239,   236,   237,   312,
     127,   256,   128,   214,    38,   129,   130,   131
};

static const short yypact[] =
{
    1238,-32768,-32768,-32768,   -44,-32768,-32768,-32768,-32768,-32768,
  -32768,-32768,-32768,  1312,-32768,     9,-32768,  1312,-32768,-32768,
  -32768,  1187,-32768,-32768,    13,-32768,  1339,-32768,  1312,  1312,
    1312,  1312,  1312,-32768,   -36,   -36,-32768,   292,-32768,-32768,
  -32768,-32768,   -45,-32768,-32768,-32768,-32768,-32768,    80,-32768,
     -20,   -24,    44,  1025,-32768,-32768,-32768,-32768,-32768,-32768,
  -32768,-32768,-32768,-32768,-32768,-32768,-32768,  1238,-32768,  1238,
  -32768,   644,   560,-32768,-32768,-32768,   -18,   -13,-32768,   938,
     938,   686,    17,-32768,-32768,   499,   938,   938,   938,   938,
  -32768,    13,    22,-32768,-32768,-32768,    55,-32768,-32768,    53,
      69,    16,    11,    29,    -9,    26,    33,   122,   -27,-32768,
      43,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   560,-32768,
     361,   430,-32768,-32768,    86,-32768,-32768,-32768,   121,-32768,
     136,-32768,   124,-32768,   124,   728,-32768,-32768,-32768,   124,
       4,-32768,-32768,   124,   131,    40,-32768,   100,   110,-32768,
    1076,-32768,  1127,-32768,    22,    46,   112,   116,   770,   980,
     980,-32768,-32768,-32768,   115,   980,   107,-32768,   114,-32768,
  -32768,-32768,-32768,   128,   980,   980,   980,   980,   980,   980,
  -32768,-32768,   980,   980,   812,   124,   980,   980,   980,   980,
     980,   980,   980,   980,   980,   980,   980,   980,   980,   980,
     980,   980,   980,   980,   980,-32768,   165,-32768,-32768,   361,
  -32768,-32768,-32768,   124,-32768,-32768,-32768,   728,-32768,-32768,
  -32768,-32768,   120,-32768,   129,   125,  1275,-32768,-32768,  1312,
  -32768,-32768,-32768,-32768,   123,-32768,   134,   135,-32768,   130,
  -32768,   132,   980,-32768,    41,-32768,-32768,-32768,-32768,-32768,
  -32768,-32768,   127,   133,   137,-32768,-32768,-32768,-32768,-32768,
  -32768,    53,    53,    69,    69,    16,    16,    16,    16,    11,
      11,    29,    -9,    26,    33,   122,   139,   560,-32768,-32768,
  -32768,-32768,    73,   224,-32768,   728,    10,-32768,-32768,   980,
     854,   980,-32768,   560,-32768,   980,-32768,-32768,-32768,   980,
     980,-32768,-32768,   602,-32768,-32768,-32768,-32768,   140,-32768,
     141,-32768,   144,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  -32768,-32768,   145,   896,-32768,   142,   560,-32768,-32768,   199,
  -32768
};

static const short yypgoto[] =
{
  -32768,   181,     1,   -80,     3,    -3,-32768,-32768,    81,     2,
     188,   190,   191,   192,   193,-32768,   185,-32768,-32768,-32768,
     152,   -11,-32768,-32768,-32768,   -17,-32768,-32768,-32768,-32768,
  -32768,     6,-32768,-32768,  -208,-32768,-32768,    14,-32768,   -37,
  -32768,-32768,-32768,    12,  -175,   -43,   -33,   -88,   -30,    24,
      30,    32,    35,    38,-32768,   -65,-32768,     5,-32768,-32768,
     -52,  -102,  -241,-32768,-32768,-32768,-32768,-32768,   126,    34,
     118,  -113,-32768,  -154,-32768,-32768,  -159,   -81,-32768,-32768,
  -32768,-32768,-32768,   105,   230,-32768,    23,-32768
};


#define	YYLAST		1396


static const short yytable[] =
{
      96,    23,    27,    24,   235,   166,   241,    50,   211,   281,
      40,   258,   259,   260,    45,    27,   206,   203,    39,    27,
     157,   132,    23,    27,    24,    61,    62,    63,    64,    65,
      27,    27,    27,    27,    27,    96,   302,    66,    44,    92,
     193,    41,   222,   137,   135,    41,   191,    54,   308,   197,
     144,   194,   315,   136,   158,    27,   143,   192,  -146,   159,
     175,   176,   177,   178,   179,    18,   205,   294,   149,    27,
     149,    27,   198,   199,   223,    47,   156,   307,   195,   196,
     309,    96,   167,    96,    96,   328,   164,    92,   180,   165,
     168,   161,   162,   181,   174,   320,   211,   180,   169,   170,
     171,   172,   181,   226,   295,   265,   266,   267,   268,   200,
     139,   227,   296,   140,    54,   183,   141,   201,   184,   182,
     185,    96,    92,    92,   183,   202,   224,   184,   204,   185,
     310,   311,   186,   187,   188,   213,   303,   313,   304,   231,
     219,   231,   133,   134,   189,   190,   261,   262,   212,   288,
    -199,   149,    27,   149,    27,   215,    41,    54,   263,   264,
      68,    68,   215,    -9,   238,   168,    54,   269,   270,   235,
     238,   228,    96,   229,   233,   301,   234,   240,   242,   245,
     246,   247,   248,   249,   250,   243,   277,   251,   252,   255,
     284,   314,   135,   285,   286,   289,   290,   297,   291,   330,
     299,   292,    46,   293,   298,   300,   323,   324,   257,   276,
     321,    92,   322,   326,    56,   216,    57,    58,    59,    60,
      69,   152,   219,   271,   327,     1,   167,   279,    27,   143,
     272,    27,   287,   273,     2,   318,   280,   274,   209,     3,
      96,   275,   325,   278,   221,    43,     4,     5,     6,     0,
       0,     0,     0,     0,    96,     0,    96,     0,     7,     8,
       9,    10,     0,    11,     0,     0,     0,     0,     0,    12,
      13,     0,     0,    14,     0,    15,     0,    16,     0,    17,
      18,    19,     0,    20,   306,    27,    96,     0,     0,    96,
     219,     0,   305,     1,   238,   238,     0,     0,     0,     0,
     316,     0,     2,     0,   317,    70,     0,     3,   219,     0,
      71,    72,     0,     0,     4,     5,     6,    73,    74,    75,
      76,     0,     0,     0,    41,    77,     7,     8,     9,    10,
      78,    11,     0,     0,    79,     0,     0,    12,    13,    80,
      81,    14,     0,    15,     0,    16,     0,    17,    18,    19,
       0,    20,    82,     0,    83,     0,     0,    84,     0,     0,
       0,     0,     1,     0,    85,    66,     0,    86,    87,    88,
      89,     2,     0,     0,    70,     0,     3,     0,     0,    71,
      72,     0,     0,     4,     5,     6,    73,    74,    75,    76,
       0,     0,     0,    41,    77,     7,     8,     9,    10,    78,
      11,     0,     0,    79,     0,     0,    12,    13,    80,    81,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -