Lines Matching refs:sym

38 static void yy_error_sym(const char *msg, int sym);
248 #define YY_IN_SET(sym, set, bitset) \ argument
249 (bitset[sym>>3] & (1 << (sym & 0x7)))
251 static int skip_EOL(int sym);
252 static int skip_WS(int sym);
253 static int skip_ONE_LINE_COMMENT(int sym);
254 static int skip_COMMENT(int sym);
256 static int check_nested_declarator_start(int sym);
257 static int check_type_name_start(int sym);
258 static int check_ID(int sym);
259 static int parse_declarations(int sym);
260 static int parse_declaration_specifiers(int sym, zend_ffi_dcl *dcl);
261 static int parse_specifier_qualifier_list(int sym, zend_ffi_dcl *dcl);
262 static int parse_type_qualifier_list(int sym, zend_ffi_dcl *dcl);
263 static int parse_type_qualifier(int sym, zend_ffi_dcl *dcl);
264 static int parse_type_specifier(int sym, zend_ffi_dcl *dcl);
265 static int parse_struct_or_union_specifier(int sym, zend_ffi_dcl *dcl);
266 static int parse_struct_contents(int sym, zend_ffi_dcl *dcl);
267 static int parse_struct_declaration(int sym, zend_ffi_dcl *struct_dcl);
268 static int parse_struct_declarator(int sym, zend_ffi_dcl *struct_dcl, zend_ffi_dcl *field_dcl);
269 static int parse_enum_specifier(int sym, zend_ffi_dcl *dcl);
270 static int parse_enumerator_list(int sym, zend_ffi_dcl *enum_dcl);
271 static int parse_enumerator(int sym, zend_ffi_dcl *enum_dcl, int64_t *min, int64_t *max, int64_t *l…
272 static int parse_declarator(int sym, zend_ffi_dcl *dcl, const char **name, size_t *name_len);
273 static int parse_abstract_declarator(int sym, zend_ffi_dcl *dcl);
274 static int parse_parameter_declarator(int sym, zend_ffi_dcl *dcl, const char **name, size_t *name_l…
275 static int parse_pointer(int sym, zend_ffi_dcl *dcl);
276 static int parse_array_or_function_declarators(int sym, zend_ffi_dcl *dcl, zend_ffi_dcl *nested_dcl…
277 static int parse_parameter_declaration(int sym, HashTable **args);
278 static int parse_type_name(int sym, zend_ffi_dcl *dcl);
279 static int parse_attributes(int sym, zend_ffi_dcl *dcl);
280 static int parse_attrib(int sym, zend_ffi_dcl *dcl);
281 static int parse_initializer(int sym);
282 static int parse_designation(int sym);
283 static int parse_expr_list(int sym);
284 static int parse_expression(int sym, zend_ffi_val *val);
285 static int parse_assignment_expression(int sym, zend_ffi_val *val);
286 static int parse_constant_expression(int sym, zend_ffi_val *val);
287 static int parse_conditional_expression(int sym, zend_ffi_val *val);
288 static int parse_logical_or_expression(int sym, zend_ffi_val *val);
289 static int parse_logical_and_expression(int sym, zend_ffi_val *val);
290 static int parse_inclusive_or_expression(int sym, zend_ffi_val *val);
291 static int parse_exclusive_or_expression(int sym, zend_ffi_val *val);
292 static int parse_and_expression(int sym, zend_ffi_val *val);
293 static int parse_equality_expression(int sym, zend_ffi_val *val);
294 static int parse_relational_expression(int sym, zend_ffi_val *val);
295 static int parse_shift_expression(int sym, zend_ffi_val *val);
296 static int parse_additive_expression(int sym, zend_ffi_val *val);
297 static int parse_multiplicative_expression(int sym, zend_ffi_val *val);
298 static int parse_cast_expression(int sym, zend_ffi_val *val);
299 static int parse_unary_expression(int sym, zend_ffi_val *val);
300 static int parse_ID(int sym, const char **name, size_t *name_len);
301 static int parse_OCTNUMBER(int sym, zend_ffi_val *val);
302 static int parse_DECNUMBER(int sym, zend_ffi_val *val);
303 static int parse_HEXNUMBER(int sym, zend_ffi_val *val);
304 static int parse_FLOATNUMBER(int sym, zend_ffi_val *val);
305 static int parse_STRING(int sym, zend_ffi_val *val);
306 static int parse_CHARACTER(int sym, zend_ffi_val *val);
307 static int synpred_1(int sym);
308 static int synpred_2(int sym);
309 static int synpred_3(int sym);
310 static int synpred_4(int sym);
311 static int synpred_5(int sym);
312 static int synpred_6(int sym);
1683 static int skip_EOL(int sym) { in skip_EOL() argument
1684 if (sym != YY_EOL) { in skip_EOL()
1685 yy_error_sym("<EOL> expected, got", sym); in skip_EOL()
1687 sym = get_skip_sym(); in skip_EOL()
1688 return sym; in skip_EOL()
1691 static int skip_WS(int sym) { in skip_WS() argument
1692 if (sym != YY_WS) { in skip_WS()
1693 yy_error_sym("<WS> expected, got", sym); in skip_WS()
1695 sym = get_skip_sym(); in skip_WS()
1696 return sym; in skip_WS()
1699 static int skip_ONE_LINE_COMMENT(int sym) { in skip_ONE_LINE_COMMENT() argument
1700 if (sym != YY_ONE_LINE_COMMENT) { in skip_ONE_LINE_COMMENT()
1701 yy_error_sym("<ONE_LINE_COMMENT> expected, got", sym); in skip_ONE_LINE_COMMENT()
1703 sym = get_skip_sym(); in skip_ONE_LINE_COMMENT()
1704 return sym; in skip_ONE_LINE_COMMENT()
1707 static int skip_COMMENT(int sym) { in skip_COMMENT() argument
1708 if (sym != YY_COMMENT) { in skip_COMMENT()
1709 yy_error_sym("<COMMENT> expected, got", sym); in skip_COMMENT()
1711 sym = get_skip_sym(); in skip_COMMENT()
1712 return sym; in skip_COMMENT()
1716 int sym; in get_sym() local
1717 sym = get_skip_sym(); in get_sym()
1718 while (sym == YY_EOL || sym == YY_WS || sym == YY_ONE_LINE_COMMENT || sym == YY_COMMENT) { in get_sym()
1719 if (sym == YY_EOL) { in get_sym()
1720 sym = skip_EOL(sym); in get_sym()
1721 } else if (sym == YY_WS) { in get_sym()
1722 sym = skip_WS(sym); in get_sym()
1723 } else if (sym == YY_ONE_LINE_COMMENT) { in get_sym()
1724 sym = skip_ONE_LINE_COMMENT(sym); in get_sym()
1726 sym = skip_COMMENT(sym); in get_sym()
1729 return sym; in get_sym()
1732 static int check_nested_declarator_start(int sym) { in check_nested_declarator_start() argument
1733 if (sym != YY__LPAREN) { in check_nested_declarator_start()
1736 sym = get_sym(); in check_nested_declarator_start()
1737 if ((sym == YY_ID) && (!zend_ffi_is_typedef_name((const char*)yy_text, yy_pos - yy_text))) { in check_nested_declarator_start()
1738 sym = check_ID(sym); in check_nested_declarator_start()
1739 if (sym == -1) { in check_nested_declarator_start()
1743 switch (sym) { in check_nested_declarator_start()
1745 sym = get_sym(); in check_nested_declarator_start()
1748 sym = get_sym(); in check_nested_declarator_start()
1751 sym = get_sym(); in check_nested_declarator_start()
1754 sym = get_sym(); in check_nested_declarator_start()
1757 sym = get_sym(); in check_nested_declarator_start()
1760 sym = get_sym(); in check_nested_declarator_start()
1766 return sym; in check_nested_declarator_start()
1769 static int check_type_name_start(int sym) { in check_type_name_start() argument
1770 if ((sym == YY_ID) && (zend_ffi_is_typedef_name((const char*)yy_text, yy_pos - yy_text))) { in check_type_name_start()
1771 sym = check_ID(sym); in check_type_name_start()
1772 if (sym == -1) { in check_type_name_start()
1776 switch (sym) { in check_type_name_start()
1778 sym = get_sym(); in check_type_name_start()
1781 sym = get_sym(); in check_type_name_start()
1784 sym = get_sym(); in check_type_name_start()
1787 sym = get_sym(); in check_type_name_start()
1790 sym = get_sym(); in check_type_name_start()
1793 sym = get_sym(); in check_type_name_start()
1796 sym = get_sym(); in check_type_name_start()
1799 sym = get_sym(); in check_type_name_start()
1802 sym = get_sym(); in check_type_name_start()
1805 sym = get_sym(); in check_type_name_start()
1808 sym = get_sym(); in check_type_name_start()
1811 sym = get_sym(); in check_type_name_start()
1814 sym = get_sym(); in check_type_name_start()
1817 sym = get_sym(); in check_type_name_start()
1820 sym = get_sym(); in check_type_name_start()
1823 sym = get_sym(); in check_type_name_start()
1826 sym = get_sym(); in check_type_name_start()
1829 sym = get_sym(); in check_type_name_start()
1832 sym = get_sym(); in check_type_name_start()
1835 sym = get_sym(); in check_type_name_start()
1838 sym = get_sym(); in check_type_name_start()
1841 sym = get_sym(); in check_type_name_start()
1844 sym = get_sym(); in check_type_name_start()
1847 sym = get_sym(); in check_type_name_start()
1850 sym = get_sym(); in check_type_name_start()
1853 sym = get_sym(); in check_type_name_start()
1856 sym = get_sym(); in check_type_name_start()
1859 sym = get_sym(); in check_type_name_start()
1862 sym = get_sym(); in check_type_name_start()
1865 sym = get_sym(); in check_type_name_start()
1871 return sym; in check_type_name_start()
1874 static int check_ID(int sym) { in check_ID() argument
1875 if (sym != YY_ID) { in check_ID()
1878 sym = get_sym(); in check_ID()
1879 return sym; in check_ID()
1882 static int synpred_1(int sym) { in synpred_1() argument
1891 ret = check_type_name_start(sym) != -1; in synpred_1()
1898 static int synpred_2(int sym) { in synpred_2() argument
1907 ret = check_nested_declarator_start(sym) != -1; in synpred_2()
1914 static int synpred_3(int sym) { in synpred_3() argument
1923 ret = check_nested_declarator_start(sym) != -1; in synpred_3()
1930 static int _synpred_4(int sym) { in _synpred_4() argument
1931 if (sym != YY__LPAREN) { in _synpred_4()
1934 sym = get_sym(); in _synpred_4()
1935 sym = check_type_name_start(sym); in _synpred_4()
1936 if (sym == -1) { in _synpred_4()
1939 return sym; in _synpred_4()
1942 static int synpred_4(int sym) { in synpred_4() argument
1951 ret = _synpred_4(sym) != -1; in synpred_4()
1958 static int _synpred_5(int sym) { in _synpred_5() argument
1959 if (sym != YY__LPAREN) { in _synpred_5()
1962 sym = get_sym(); in _synpred_5()
1963 sym = check_type_name_start(sym); in _synpred_5()
1964 if (sym == -1) { in _synpred_5()
1967 return sym; in _synpred_5()
1970 static int synpred_5(int sym) { in synpred_5() argument
1979 ret = _synpred_5(sym) != -1; in synpred_5()
1986 static int _synpred_6(int sym) { in _synpred_6() argument
1987 if (sym != YY__LPAREN) { in _synpred_6()
1990 sym = get_sym(); in _synpred_6()
1991 sym = check_type_name_start(sym); in _synpred_6()
1992 if (sym == -1) { in _synpred_6()
1995 return sym; in _synpred_6()
1998 static int synpred_6(int sym) { in synpred_6() argument
2007 ret = _synpred_6(sym) != -1; in synpred_6()
2014 static int parse_declarations(int sym) { in parse_declarations() argument
2015 …while (YY_IN_SET(sym, (YY___EXTENSION__,YY_TYPEDEF,YY_EXTERN,YY_STATIC,YY_AUTO,YY_REGISTER,YY_INLI… in parse_declarations()
2017 if (sym == YY___EXTENSION__) { in parse_declarations()
2018 sym = get_sym(); in parse_declarations()
2020 sym = parse_declaration_specifiers(sym, &common_dcl); in parse_declarations()
2021 if (sym == YY__STAR || sym == YY_ID || sym == YY__LPAREN) { in parse_declarations()
2026 sym = parse_declarator(sym, &dcl, &name, &name_len); in parse_declarations()
2027 if (sym == YY___ASM__) { in parse_declarations()
2029 sym = get_sym(); in parse_declarations()
2030 if (sym != YY__LPAREN) { in parse_declarations()
2031 yy_error_sym("'(' expected, got", sym); in parse_declarations()
2033 sym = get_sym(); in parse_declarations()
2035 sym = parse_STRING(sym, &asm_str); in parse_declarations()
2036 } while (sym == YY_STRING); in parse_declarations()
2037 if (sym != YY__RPAREN) { in parse_declarations()
2038 yy_error_sym("')' expected, got", sym); in parse_declarations()
2040 sym = get_sym(); in parse_declarations()
2042 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_declarations()
2043 sym = parse_attributes(sym, &dcl); in parse_declarations()
2045 if (sym == YY__EQUAL) { in parse_declarations()
2046 sym = parse_initializer(sym); in parse_declarations()
2049 while (sym == YY__COMMA) { in parse_declarations()
2050 sym = get_sym(); in parse_declarations()
2052 sym = parse_declarator(sym, &dcl, &name, &name_len); in parse_declarations()
2053 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_declarations()
2054 sym = parse_attributes(sym, &dcl); in parse_declarations()
2056 if (sym == YY__EQUAL) { in parse_declarations()
2057 sym = parse_initializer(sym); in parse_declarations()
2062 if (sym != YY__SEMICOLON) { in parse_declarations()
2063 yy_error_sym("';' expected, got", sym); in parse_declarations()
2065 sym = get_sym(); in parse_declarations()
2067 return sym; in parse_declarations()
2070 static int parse_declaration_specifiers(int sym, zend_ffi_dcl *dcl) { in parse_declaration_specifiers() argument
2072 switch (sym) { in parse_declaration_specifiers()
2074 if (dcl->flags & ZEND_FFI_DCL_STORAGE_CLASS) yy_error_sym("unexpected", sym); in parse_declaration_specifiers()
2075 sym = get_sym(); in parse_declaration_specifiers()
2079 if (dcl->flags & ZEND_FFI_DCL_STORAGE_CLASS) yy_error_sym("unexpected", sym); in parse_declaration_specifiers()
2080 sym = get_sym(); in parse_declaration_specifiers()
2084 if (dcl->flags & ZEND_FFI_DCL_STORAGE_CLASS) yy_error_sym("unexpected", sym); in parse_declaration_specifiers()
2085 sym = get_sym(); in parse_declaration_specifiers()
2089 if (dcl->flags & ZEND_FFI_DCL_STORAGE_CLASS) yy_error_sym("unexpected", sym); in parse_declaration_specifiers()
2090 sym = get_sym(); in parse_declaration_specifiers()
2094 if (dcl->flags & ZEND_FFI_DCL_STORAGE_CLASS) yy_error_sym("unexpected", sym); in parse_declaration_specifiers()
2095 sym = get_sym(); in parse_declaration_specifiers()
2101 sym = get_sym(); in parse_declaration_specifiers()
2105 sym = get_sym(); in parse_declaration_specifiers()
2109 sym = get_sym(); in parse_declaration_specifiers()
2110 if (sym != YY__LPAREN) { in parse_declaration_specifiers()
2111 yy_error_sym("'(' expected, got", sym); in parse_declaration_specifiers()
2113 sym = get_sym(); in parse_declaration_specifiers()
2114sym, (YY___EXTENSION__,YY_VOID,YY_CHAR,YY_SHORT,YY_INT,YY_LONG,YY_FLOAT,YY_DOUBLE,YY_SIGNED,YY_UNS… in parse_declaration_specifiers()
2116 sym = parse_type_name(sym, &align_dcl); in parse_declaration_specifiers()
2118 …} else if (YY_IN_SET(sym, (YY__LPAREN,YY_ID,YY_OCTNUMBER,YY_DECNUMBER,YY_HEXNUMBER,YY_FLOATNUMBER,… in parse_declaration_specifiers()
2120 sym = parse_constant_expression(sym, &align_val); in parse_declaration_specifiers()
2123 yy_error_sym("unexpected", sym); in parse_declaration_specifiers()
2125 if (sym != YY__RPAREN) { in parse_declaration_specifiers()
2126 yy_error_sym("')' expected, got", sym); in parse_declaration_specifiers()
2128 sym = get_sym(); in parse_declaration_specifiers()
2138 sym = parse_attributes(sym, dcl); in parse_declaration_specifiers()
2150 sym = parse_type_qualifier(sym, dcl); in parse_declaration_specifiers()
2170 sym = parse_type_specifier(sym, dcl); in parse_declaration_specifiers()
2173 yy_error_sym("unexpected", sym); in parse_declaration_specifiers()
2175sym, (YY_TYPEDEF,YY_EXTERN,YY_STATIC,YY_AUTO,YY_REGISTER,YY_INLINE,YY___INLINE,YY___INLINE__,YY__N… in parse_declaration_specifiers()
2176 return sym; in parse_declaration_specifiers()
2179 static int parse_specifier_qualifier_list(int sym, zend_ffi_dcl *dcl) { in parse_specifier_qualifier_list() argument
2180 if (sym == YY___EXTENSION__) { in parse_specifier_qualifier_list()
2181 sym = get_sym(); in parse_specifier_qualifier_list()
2184 …if (YY_IN_SET(sym, (YY_VOID,YY_CHAR,YY_SHORT,YY_INT,YY_LONG,YY_FLOAT,YY_DOUBLE,YY_SIGNED,YY_UNSIGN… in parse_specifier_qualifier_list()
2185 sym = parse_type_specifier(sym, dcl); in parse_specifier_qualifier_list()
2186 …} else if (YY_IN_SET(sym, (YY_CONST,YY___CONST,YY___CONST__,YY_RESTRICT,YY___RESTRICT,YY___RESTRIC… in parse_specifier_qualifier_list()
2187 sym = parse_type_qualifier(sym, dcl); in parse_specifier_qualifier_list()
2188 …} else if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,Y… in parse_specifier_qualifier_list()
2189 sym = parse_attributes(sym, dcl); in parse_specifier_qualifier_list()
2191 yy_error_sym("unexpected", sym); in parse_specifier_qualifier_list()
2193sym, (YY_VOID,YY_CHAR,YY_SHORT,YY_INT,YY_LONG,YY_FLOAT,YY_DOUBLE,YY_SIGNED,YY_UNSIGNED,YY__BOOL,YY… in parse_specifier_qualifier_list()
2194 return sym; in parse_specifier_qualifier_list()
2197 static int parse_type_qualifier_list(int sym, zend_ffi_dcl *dcl) { in parse_type_qualifier_list() argument
2199 …if (YY_IN_SET(sym, (YY_CONST,YY___CONST,YY___CONST__,YY_RESTRICT,YY___RESTRICT,YY___RESTRICT__,YY_… in parse_type_qualifier_list()
2200 sym = parse_type_qualifier(sym, dcl); in parse_type_qualifier_list()
2201 …} else if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,Y… in parse_type_qualifier_list()
2202 sym = parse_attributes(sym, dcl); in parse_type_qualifier_list()
2204 yy_error_sym("unexpected", sym); in parse_type_qualifier_list()
2206 …} while (YY_IN_SET(sym, (YY_CONST,YY___CONST,YY___CONST__,YY_RESTRICT,YY___RESTRICT,YY___RESTRICT_… in parse_type_qualifier_list()
2207 return sym; in parse_type_qualifier_list()
2210 static int parse_type_qualifier(int sym, zend_ffi_dcl *dcl) { in parse_type_qualifier() argument
2211 if (sym == YY_CONST || sym == YY___CONST || sym == YY___CONST__) { in parse_type_qualifier()
2212 sym = get_sym(); in parse_type_qualifier()
2215 } else if (sym == YY_RESTRICT || sym == YY___RESTRICT || sym == YY___RESTRICT__) { in parse_type_qualifier()
2216 sym = get_sym(); in parse_type_qualifier()
2218 } else if (sym == YY_VOLATILE || sym == YY___VOLATILE || sym == YY___VOLATILE__) { in parse_type_qualifier()
2219 sym = get_sym(); in parse_type_qualifier()
2221 } else if (sym == YY__ATOMIC) { in parse_type_qualifier()
2222 sym = get_sym(); in parse_type_qualifier()
2225 yy_error_sym("unexpected", sym); in parse_type_qualifier()
2227 return sym; in parse_type_qualifier()
2230 static int parse_type_specifier(int sym, zend_ffi_dcl *dcl) { in parse_type_specifier() argument
2233 switch (sym) { in parse_type_specifier()
2235 if (dcl->flags & ZEND_FFI_DCL_TYPE_SPECIFIERS) yy_error_sym("unexpected", sym); in parse_type_specifier()
2236 sym = get_sym(); in parse_type_specifier()
2240 …_DCL_TYPE_SPECIFIERS-(ZEND_FFI_DCL_SIGNED|ZEND_FFI_DCL_UNSIGNED))) yy_error_sym("unexpected", sym); in parse_type_specifier()
2241 sym = get_sym(); in parse_type_specifier()
2245 …ERS-(ZEND_FFI_DCL_SIGNED|ZEND_FFI_DCL_UNSIGNED|ZEND_FFI_DCL_INT))) yy_error_sym("unexpected", sym); in parse_type_specifier()
2246 sym = get_sym(); in parse_type_specifier()
2250 …NED|ZEND_FFI_DCL_SHORT|ZEND_FFI_DCL_LONG|ZEND_FFI_DCL_LONG_LONG))) yy_error_sym("unexpected", sym); in parse_type_specifier()
2251 sym = get_sym(); in parse_type_specifier()
2256 …LONG|ZEND_FFI_DCL_SIGNED|ZEND_FFI_DCL_UNSIGNED|ZEND_FFI_DCL_INT))) yy_error_sym("unexpected", sym); in parse_type_specifier()
2259 …IGNED|ZEND_FFI_DCL_INT|ZEND_FFI_DCL_DOUBLE|ZEND_FFI_DCL_COMPLEX))) yy_error_sym("unexpected", sym); in parse_type_specifier()
2262 sym = get_sym(); in parse_type_specifier()
2265 …cl->flags & (ZEND_FFI_DCL_TYPE_SPECIFIERS-(ZEND_FFI_DCL_COMPLEX))) yy_error_sym("unexpected", sym); in parse_type_specifier()
2266 sym = get_sym(); in parse_type_specifier()
2270 …FFI_DCL_TYPE_SPECIFIERS-(ZEND_FFI_DCL_LONG|ZEND_FFI_DCL_COMPLEX))) yy_error_sym("unexpected", sym); in parse_type_specifier()
2271 sym = get_sym(); in parse_type_specifier()
2275 …SHORT|ZEND_FFI_DCL_LONG|ZEND_FFI_DCL_LONG_LONG|ZEND_FFI_DCL_INT))) yy_error_sym("unexpected", sym); in parse_type_specifier()
2276 sym = get_sym(); in parse_type_specifier()
2280 …SHORT|ZEND_FFI_DCL_LONG|ZEND_FFI_DCL_LONG_LONG|ZEND_FFI_DCL_INT))) yy_error_sym("unexpected", sym); in parse_type_specifier()
2281 sym = get_sym(); in parse_type_specifier()
2285 if (dcl->flags & ZEND_FFI_DCL_TYPE_SPECIFIERS) yy_error_sym("unexpected", sym); in parse_type_specifier()
2286 sym = get_sym(); in parse_type_specifier()
2293 …FIERS-(ZEND_FFI_DCL_FLOAT|ZEND_FFI_DCL_DOUBLE|ZEND_FFI_DCL_LONG))) yy_error_sym("unexpected", sym); in parse_type_specifier()
2294 sym = get_sym(); in parse_type_specifier()
2299 if (dcl->flags & ZEND_FFI_DCL_TYPE_SPECIFIERS) yy_error_sym("unexpected", sym); in parse_type_specifier()
2300 sym = parse_struct_or_union_specifier(sym, dcl); in parse_type_specifier()
2303 if (dcl->flags & ZEND_FFI_DCL_TYPE_SPECIFIERS) yy_error_sym("unexpected", sym); in parse_type_specifier()
2304 sym = parse_enum_specifier(sym, dcl); in parse_type_specifier()
2307 if (dcl->flags & ZEND_FFI_DCL_TYPE_SPECIFIERS) yy_error_sym("unexpected", sym); in parse_type_specifier()
2309 sym = parse_ID(sym, &name, &name_len); in parse_type_specifier()
2314 yy_error_sym("unexpected", sym); in parse_type_specifier()
2316 return sym; in parse_type_specifier()
2319 static int parse_struct_or_union_specifier(int sym, zend_ffi_dcl *dcl) { in parse_struct_or_union_specifier() argument
2320 if (sym == YY_STRUCT) { in parse_struct_or_union_specifier()
2321 sym = get_sym(); in parse_struct_or_union_specifier()
2323 } else if (sym == YY_UNION) { in parse_struct_or_union_specifier()
2324 sym = get_sym(); in parse_struct_or_union_specifier()
2327 yy_error_sym("unexpected", sym); in parse_struct_or_union_specifier()
2329 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_struct_or_union_specifier()
2330 sym = parse_attributes(sym, dcl); in parse_struct_or_union_specifier()
2332 if (sym == YY_ID) { in parse_struct_or_union_specifier()
2335 sym = parse_ID(sym, &name, &name_len); in parse_struct_or_union_specifier()
2337 if (sym == YY__LBRACE) { in parse_struct_or_union_specifier()
2338 sym = parse_struct_contents(sym, dcl); in parse_struct_or_union_specifier()
2341 } else if (sym == YY__LBRACE) { in parse_struct_or_union_specifier()
2343 sym = parse_struct_contents(sym, dcl); in parse_struct_or_union_specifier()
2345 yy_error_sym("unexpected", sym); in parse_struct_or_union_specifier()
2347 return sym; in parse_struct_or_union_specifier()
2350 static int parse_struct_contents(int sym, zend_ffi_dcl *dcl) { in parse_struct_contents() argument
2356 if (sym != YY__LBRACE) { in parse_struct_contents()
2357 yy_error_sym("'{' expected, got", sym); in parse_struct_contents()
2359 sym = get_sym(); in parse_struct_contents()
2360 …if (YY_IN_SET(sym, (YY___EXTENSION__,YY_VOID,YY_CHAR,YY_SHORT,YY_INT,YY_LONG,YY_FLOAT,YY_DOUBLE,YY… in parse_struct_contents()
2361 sym = parse_struct_declaration(sym, dcl); in parse_struct_contents()
2367 sym2 = sym; in parse_struct_contents()
2394 sym = get_sym(); in parse_struct_contents()
2395 sym = parse_struct_declaration(sym, dcl); in parse_struct_contents()
2398 sym = get_sym(); in parse_struct_contents()
2401 if (sym != YY__RBRACE) { in parse_struct_contents()
2402 yy_error_sym("'}' expected, got", sym); in parse_struct_contents()
2404 sym = get_sym(); in parse_struct_contents()
2405 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_struct_contents()
2406 sym = parse_attributes(sym, dcl); in parse_struct_contents()
2409 return sym; in parse_struct_contents()
2412 static int parse_struct_declaration(int sym, zend_ffi_dcl *struct_dcl) { in parse_struct_declaration() argument
2414 sym = parse_specifier_qualifier_list(sym, &common_field_dcl); in parse_struct_declaration()
2415 if (sym == YY__SEMICOLON || sym == YY__RBRACE) { in parse_struct_declaration()
2417 } else if (sym == YY__STAR || sym == YY_ID || sym == YY__LPAREN || sym == YY__COLON) { in parse_struct_declaration()
2418 sym = parse_struct_declarator(sym, struct_dcl, &common_field_dcl); in parse_struct_declaration()
2419 while (sym == YY__COMMA) { in parse_struct_declaration()
2420 sym = get_sym(); in parse_struct_declaration()
2422 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_struct_declaration()
2423 sym = parse_attributes(sym, &field_dcl); in parse_struct_declaration()
2425 sym = parse_struct_declarator(sym, struct_dcl, &field_dcl); in parse_struct_declaration()
2428 yy_error_sym("unexpected", sym); in parse_struct_declaration()
2430 return sym; in parse_struct_declaration()
2433 static int parse_struct_declarator(int sym, zend_ffi_dcl *struct_dcl, zend_ffi_dcl *field_dcl) { in parse_struct_declarator() argument
2437 if (sym == YY__STAR || sym == YY_ID || sym == YY__LPAREN) { in parse_struct_declarator()
2438 sym = parse_declarator(sym, field_dcl, &name, &name_len); in parse_struct_declarator()
2439 if (sym == YY__COLON) { in parse_struct_declarator()
2440 sym = get_sym(); in parse_struct_declarator()
2441 sym = parse_constant_expression(sym, &bits); in parse_struct_declarator()
2442 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_struct_declarator()
2443 sym = parse_attributes(sym, field_dcl); in parse_struct_declarator()
2446 …} else if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,Y… in parse_struct_declarator()
2447 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_struct_declarator()
2448 sym = parse_attributes(sym, field_dcl); in parse_struct_declarator()
2452 yy_error_sym("unexpected", sym); in parse_struct_declarator()
2454 } else if (sym == YY__COLON) { in parse_struct_declarator()
2455 sym = get_sym(); in parse_struct_declarator()
2456 sym = parse_constant_expression(sym, &bits); in parse_struct_declarator()
2459 yy_error_sym("unexpected", sym); in parse_struct_declarator()
2461 return sym; in parse_struct_declarator()
2464 static int parse_enum_specifier(int sym, zend_ffi_dcl *dcl) { in parse_enum_specifier() argument
2465 if (sym != YY_ENUM) { in parse_enum_specifier()
2466 yy_error_sym("'enum' expected, got", sym); in parse_enum_specifier()
2468 sym = get_sym(); in parse_enum_specifier()
2470 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_enum_specifier()
2471 sym = parse_attributes(sym, dcl); in parse_enum_specifier()
2473 if (sym == YY_ID) { in parse_enum_specifier()
2476 sym = parse_ID(sym, &name, &name_len); in parse_enum_specifier()
2477 if (sym == YY__LBRACE) { in parse_enum_specifier()
2479 sym = get_sym(); in parse_enum_specifier()
2480 sym = parse_enumerator_list(sym, dcl); in parse_enum_specifier()
2481 if (sym != YY__RBRACE) { in parse_enum_specifier()
2482 yy_error_sym("'}' expected, got", sym); in parse_enum_specifier()
2484 sym = get_sym(); in parse_enum_specifier()
2485 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_enum_specifier()
2486 sym = parse_attributes(sym, dcl); in parse_enum_specifier()
2488 …} else if (YY_IN_SET(sym, (YY_TYPEDEF,YY_EXTERN,YY_STATIC,YY_AUTO,YY_REGISTER,YY_INLINE,YY___INLIN… in parse_enum_specifier()
2491 yy_error_sym("unexpected", sym); in parse_enum_specifier()
2493 } else if (sym == YY__LBRACE) { in parse_enum_specifier()
2494 sym = get_sym(); in parse_enum_specifier()
2496 sym = parse_enumerator_list(sym, dcl); in parse_enum_specifier()
2497 if (sym != YY__RBRACE) { in parse_enum_specifier()
2498 yy_error_sym("'}' expected, got", sym); in parse_enum_specifier()
2500 sym = get_sym(); in parse_enum_specifier()
2501 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_enum_specifier()
2502 sym = parse_attributes(sym, dcl); in parse_enum_specifier()
2505 yy_error_sym("unexpected", sym); in parse_enum_specifier()
2507 return sym; in parse_enum_specifier()
2510 static int parse_enumerator_list(int sym, zend_ffi_dcl *enum_dcl) { in parse_enumerator_list() argument
2517 sym = parse_enumerator(sym, enum_dcl, &min, &max, &last); in parse_enumerator_list()
2523 sym2 = sym; in parse_enumerator_list()
2550 sym = get_sym(); in parse_enumerator_list()
2551 sym = parse_enumerator(sym, enum_dcl, &min, &max, &last); in parse_enumerator_list()
2554 sym = get_sym(); in parse_enumerator_list()
2556 return sym; in parse_enumerator_list()
2559 static int parse_enumerator(int sym, zend_ffi_dcl *enum_dcl, int64_t *min, int64_t *max, int64_t *l… in parse_enumerator() argument
2563 sym = parse_ID(sym, &name, &name_len); in parse_enumerator()
2564 if (sym == YY__EQUAL) { in parse_enumerator()
2565 sym = get_sym(); in parse_enumerator()
2566 sym = parse_constant_expression(sym, &val); in parse_enumerator()
2569 return sym; in parse_enumerator()
2572 static int parse_declarator(int sym, zend_ffi_dcl *dcl, const char **name, size_t *name_len) { in parse_declarator() argument
2575 if (sym == YY__STAR) { in parse_declarator()
2576 sym = parse_pointer(sym, dcl); in parse_declarator()
2578 if (sym == YY_ID) { in parse_declarator()
2579 sym = parse_ID(sym, name, name_len); in parse_declarator()
2580 } else if (sym == YY__LPAREN) { in parse_declarator()
2581 sym = get_sym(); in parse_declarator()
2582 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_declarator()
2583 sym = parse_attributes(sym, &nested_dcl); in parse_declarator()
2585 sym = parse_declarator(sym, &nested_dcl, name, name_len); in parse_declarator()
2586 if (sym != YY__RPAREN) { in parse_declarator()
2587 yy_error_sym("')' expected, got", sym); in parse_declarator()
2589 sym = get_sym(); in parse_declarator()
2592 yy_error_sym("unexpected", sym); in parse_declarator()
2594 if (sym == YY__LBRACK || sym == YY__LPAREN) { in parse_declarator()
2595 sym = parse_array_or_function_declarators(sym, dcl, &nested_dcl); in parse_declarator()
2598 return sym; in parse_declarator()
2601 static int parse_abstract_declarator(int sym, zend_ffi_dcl *dcl) { in parse_abstract_declarator() argument
2604 if (sym == YY__STAR) { in parse_abstract_declarator()
2605 sym = parse_pointer(sym, dcl); in parse_abstract_declarator()
2607 if ((sym == YY__LPAREN) && synpred_2(sym)) { in parse_abstract_declarator()
2608 sym = get_sym(); in parse_abstract_declarator()
2609 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_abstract_declarator()
2610 sym = parse_attributes(sym, &nested_dcl); in parse_abstract_declarator()
2612 sym = parse_abstract_declarator(sym, &nested_dcl); in parse_abstract_declarator()
2613 if (sym != YY__RPAREN) { in parse_abstract_declarator()
2614 yy_error_sym("')' expected, got", sym); in parse_abstract_declarator()
2616 sym = get_sym(); in parse_abstract_declarator()
2619 if (sym == YY__LBRACK || sym == YY__LPAREN) { in parse_abstract_declarator()
2620 sym = parse_array_or_function_declarators(sym, dcl, &nested_dcl); in parse_abstract_declarator()
2623 return sym; in parse_abstract_declarator()
2626 static int parse_parameter_declarator(int sym, zend_ffi_dcl *dcl, const char **name, size_t *name_l… in parse_parameter_declarator() argument
2629 if (sym == YY__STAR) { in parse_parameter_declarator()
2630 sym = parse_pointer(sym, dcl); in parse_parameter_declarator()
2632 if ((sym == YY__LPAREN) && synpred_3(sym)) { in parse_parameter_declarator()
2633 sym = get_sym(); in parse_parameter_declarator()
2634 …if (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY___FAS… in parse_parameter_declarator()
2635 sym = parse_attributes(sym, &nested_dcl); in parse_parameter_declarator()
2637 sym = parse_parameter_declarator(sym, &nested_dcl, name, name_len); in parse_parameter_declarator()
2638 if (sym != YY__RPAREN) { in parse_parameter_declarator()
2639 yy_error_sym("')' expected, got", sym); in parse_parameter_declarator()
2641 sym = get_sym(); in parse_parameter_declarator()
2643 } else if (sym == YY_ID) { in parse_parameter_declarator()
2644 sym = parse_ID(sym, name, name_len); in parse_parameter_declarator()
2645 } else if (sym == YY__LBRACK || sym == YY__LPAREN || sym == YY__RPAREN || sym == YY__COMMA) { in parse_parameter_declarator()
2647 yy_error_sym("unexpected", sym); in parse_parameter_declarator()
2649 if (sym == YY__LBRACK || sym == YY__LPAREN) { in parse_parameter_declarator()
2650 sym = parse_array_or_function_declarators(sym, dcl, &nested_dcl); in parse_parameter_declarator()
2653 return sym; in parse_parameter_declarator()
2656 static int parse_pointer(int sym, zend_ffi_dcl *dcl) { in parse_pointer() argument
2657 if (sym != YY__STAR) { in parse_pointer()
2658 yy_error_sym("'*' expected, got", sym); in parse_pointer()
2661 sym = get_sym(); in parse_pointer()
2663 …if (YY_IN_SET(sym, (YY_CONST,YY___CONST,YY___CONST__,YY_RESTRICT,YY___RESTRICT,YY___RESTRICT__,YY_… in parse_pointer()
2664 sym = parse_type_qualifier_list(sym, dcl); in parse_pointer()
2666 } while (sym == YY__STAR); in parse_pointer()
2667 return sym; in parse_pointer()
2670 static int parse_array_or_function_declarators(int sym, zend_ffi_dcl *dcl, zend_ffi_dcl *nested_dcl… in parse_array_or_function_declarators() argument
2682 if (sym == YY__LBRACK) { in parse_array_or_function_declarators()
2683 sym = get_sym(); in parse_array_or_function_declarators()
2688 sym2 = sym; in parse_array_or_function_declarators()
2722 sym = get_sym(); in parse_array_or_function_declarators()
2723 …if (YY_IN_SET(sym, (YY_CONST,YY___CONST,YY___CONST__,YY_RESTRICT,YY___RESTRICT,YY___RESTRICT__,YY_… in parse_array_or_function_declarators()
2724 sym = parse_type_qualifier_list(sym, &dummy); in parse_array_or_function_declarators()
2726 sym = parse_assignment_expression(sym, &len); in parse_array_or_function_declarators()
2728 sym = parse_type_qualifier_list(sym, &dummy); in parse_array_or_function_declarators()
2733 sym2 = sym; in parse_array_or_function_declarators()
2764 sym = get_sym(); in parse_array_or_function_declarators()
2765 sym = parse_assignment_expression(sym, &len); in parse_array_or_function_declarators()
2769 sym = get_sym(); in parse_array_or_function_declarators()
2772 sym = parse_assignment_expression(sym, &len); in parse_array_or_function_declarators()
2774 yy_error_sym("unexpected", sym); in parse_array_or_function_declarators()
2780 sym = get_sym(); in parse_array_or_function_declarators()
2783 sym = parse_assignment_expression(sym, &len); in parse_array_or_function_declarators()
2786 yy_error_sym("unexpected", sym); in parse_array_or_function_declarators()
2788 if (sym != YY__RBRACK) { in parse_array_or_function_declarators()
2789 yy_error_sym("']' expected, got", sym); in parse_array_or_function_declarators()
2791 sym = get_sym(); in parse_array_or_function_declarators()
2792 if (sym == YY__LBRACK || sym == YY__LPAREN) { in parse_array_or_function_declarators()
2793 sym = parse_array_or_function_declarators(sym, dcl, nested_dcl); in parse_array_or_function_declarators()
2797 } else if (sym == YY__LPAREN) { in parse_array_or_function_declarators()
2798 sym = get_sym(); in parse_array_or_function_declarators()
2799 …if (YY_IN_SET(sym, (YY___EXTENSION__,YY_VOID,YY_CHAR,YY_SHORT,YY_INT,YY_LONG,YY_FLOAT,YY_DOUBLE,YY… in parse_array_or_function_declarators()
2800 …if (YY_IN_SET(sym, (YY___EXTENSION__,YY_VOID,YY_CHAR,YY_SHORT,YY_INT,YY_LONG,YY_FLOAT,YY_DOUBLE,YY… in parse_array_or_function_declarators()
2801 sym = parse_parameter_declaration(sym, &args); in parse_array_or_function_declarators()
2807 sym2 = sym; in parse_array_or_function_declarators()
2834 sym = get_sym(); in parse_array_or_function_declarators()
2835 sym = parse_parameter_declaration(sym, &args); in parse_array_or_function_declarators()
2838 sym = get_sym(); in parse_array_or_function_declarators()
2839 if (sym != YY__POINT_POINT_POINT) { in parse_array_or_function_declarators()
2840 yy_error_sym("'...' expected, got", sym); in parse_array_or_function_declarators()
2842 sym = get_sym(); in parse_array_or_function_declarators()
2846 sym = get_sym(); in parse_array_or_function_declarators()
2850 if (sym != YY__RPAREN) { in parse_array_or_function_declarators()
2851 yy_error_sym("')' expected, got", sym); in parse_array_or_function_declarators()
2853 sym = get_sym(); in parse_array_or_function_declarators()
2854 if (sym == YY__LBRACK || sym == YY__LPAREN) { in parse_array_or_function_declarators()
2855 sym = parse_array_or_function_declarators(sym, dcl, nested_dcl); in parse_array_or_function_declarators()
2860 yy_error_sym("unexpected", sym); in parse_array_or_function_declarators()
2862 return sym; in parse_array_or_function_declarators()
2865 static int parse_parameter_declaration(int sym, HashTable **args) { in parse_parameter_declaration() argument
2871 sym = parse_specifier_qualifier_list(sym, &param_dcl); in parse_parameter_declaration()
2872 sym = parse_parameter_declarator(sym, &param_dcl, &name, &name_len); in parse_parameter_declaration()
2875 return sym; in parse_parameter_declaration()
2878 static int parse_type_name(int sym, zend_ffi_dcl *dcl) { in parse_type_name() argument
2879 sym = parse_specifier_qualifier_list(sym, dcl); in parse_type_name()
2880 sym = parse_abstract_declarator(sym, dcl); in parse_type_name()
2881 return sym; in parse_type_name()
2884 static int parse_attributes(int sym, zend_ffi_dcl *dcl) { in parse_attributes() argument
2889 switch (sym) { in parse_attributes()
2892 sym = get_sym(); in parse_attributes()
2893 if (sym != YY__LPAREN) { in parse_attributes()
2894 yy_error_sym("'(' expected, got", sym); in parse_attributes()
2896 sym = get_sym(); in parse_attributes()
2897 if (sym != YY__LPAREN) { in parse_attributes()
2898 yy_error_sym("'(' expected, got", sym); in parse_attributes()
2900 sym = get_sym(); in parse_attributes()
2901 sym = parse_attrib(sym, dcl); in parse_attributes()
2902 while (sym == YY__COMMA) { in parse_attributes()
2903 sym = get_sym(); in parse_attributes()
2904 sym = parse_attrib(sym, dcl); in parse_attributes()
2906 if (sym != YY__RPAREN) { in parse_attributes()
2907 yy_error_sym("')' expected, got", sym); in parse_attributes()
2909 sym = get_sym(); in parse_attributes()
2910 if (sym != YY__RPAREN) { in parse_attributes()
2911 yy_error_sym("')' expected, got", sym); in parse_attributes()
2913 sym = get_sym(); in parse_attributes()
2916 sym = get_sym(); in parse_attributes()
2917 if (sym != YY__LPAREN) { in parse_attributes()
2918 yy_error_sym("'(' expected, got", sym); in parse_attributes()
2920 sym = get_sym(); in parse_attributes()
2922 sym = parse_ID(sym, &name, &name_len); in parse_attributes()
2923 if (sym == YY__LPAREN) { in parse_attributes()
2924 sym = get_sym(); in parse_attributes()
2925 sym = parse_assignment_expression(sym, &val); in parse_attributes()
2927 if (sym != YY__RPAREN) { in parse_attributes()
2928 yy_error_sym("')' expected, got", sym); in parse_attributes()
2930 sym = get_sym(); in parse_attributes()
2932 } while (sym == YY_ID); in parse_attributes()
2933 if (sym != YY__RPAREN) { in parse_attributes()
2934 yy_error_sym("')' expected, got", sym); in parse_attributes()
2936 sym = get_sym(); in parse_attributes()
2939 sym = get_sym(); in parse_attributes()
2943 sym = get_sym(); in parse_attributes()
2947 sym = get_sym(); in parse_attributes()
2951 sym = get_sym(); in parse_attributes()
2955 sym = get_sym(); in parse_attributes()
2959 yy_error_sym("unexpected", sym); in parse_attributes()
2961 …} while (YY_IN_SET(sym, (YY___ATTRIBUTE,YY___ATTRIBUTE__,YY___DECLSPEC,YY___CDECL,YY___STDCALL,YY_… in parse_attributes()
2962 return sym; in parse_attributes()
2965 static int parse_attrib(int sym, zend_ffi_dcl *dcl) { in parse_attrib() argument
2971 if (sym == YY_ID || sym == YY_CONST || sym == YY___CONST || sym == YY___CONST__) { in parse_attrib()
2972 if (sym == YY_ID) { in parse_attrib()
2973 sym = parse_ID(sym, &name, &name_len); in parse_attrib()
2974 if (sym == YY__COMMA || sym == YY__RPAREN) { in parse_attrib()
2976 } else if (sym == YY__LPAREN) { in parse_attrib()
2977 sym = get_sym(); in parse_attrib()
2980 sym = parse_assignment_expression(sym, &val); in parse_attrib()
2983 while (sym == YY__COMMA) { in parse_attrib()
2984 sym = get_sym(); in parse_attrib()
2985 sym = parse_assignment_expression(sym, &val); in parse_attrib()
2989 if (sym != YY__RPAREN) { in parse_attrib()
2990 yy_error_sym("')' expected, got", sym); in parse_attrib()
2992 sym = get_sym(); in parse_attrib()
2994 yy_error_sym("unexpected", sym); in parse_attrib()
2996 } else if (sym == YY_CONST) { in parse_attrib()
2997 sym = get_sym(); in parse_attrib()
2998 } else if (sym == YY___CONST) { in parse_attrib()
2999 sym = get_sym(); in parse_attrib()
3001 sym = get_sym(); in parse_attrib()
3004 return sym; in parse_attrib()
3007 static int parse_initializer(int sym) { in parse_initializer() argument
3014 if (sym != YY__EQUAL) { in parse_initializer()
3015 yy_error_sym("'=' expected, got", sym); in parse_initializer()
3017 sym = get_sym(); in parse_initializer()
3018 …if (YY_IN_SET(sym, (YY__LPAREN,YY_ID,YY_OCTNUMBER,YY_DECNUMBER,YY_HEXNUMBER,YY_FLOATNUMBER,YY_STRI… in parse_initializer()
3019 sym = parse_assignment_expression(sym, &dummy); in parse_initializer()
3020 } else if (sym == YY__LBRACE) { in parse_initializer()
3021 sym = get_sym(); in parse_initializer()
3022 if (sym == YY__LBRACK || sym == YY__POINT) { in parse_initializer()
3023 sym = parse_designation(sym); in parse_initializer()
3025 sym = parse_initializer(sym); in parse_initializer()
3031 sym2 = sym; in parse_initializer()
3058 sym = get_sym(); in parse_initializer()
3059 if (sym == YY__LBRACK || sym == YY__POINT) { in parse_initializer()
3060 sym = parse_designation(sym); in parse_initializer()
3062 sym = parse_initializer(sym); in parse_initializer()
3065 sym = get_sym(); in parse_initializer()
3067 if (sym != YY__RBRACE) { in parse_initializer()
3068 yy_error_sym("'}' expected, got", sym); in parse_initializer()
3070 sym = get_sym(); in parse_initializer()
3072 yy_error_sym("unexpected", sym); in parse_initializer()
3074 return sym; in parse_initializer()
3077 static int parse_designation(int sym) { in parse_designation() argument
3082 if (sym == YY__LBRACK) { in parse_designation()
3083 sym = get_sym(); in parse_designation()
3084 sym = parse_constant_expression(sym, &dummy); in parse_designation()
3085 if (sym != YY__RBRACK) { in parse_designation()
3086 yy_error_sym("']' expected, got", sym); in parse_designation()
3088 sym = get_sym(); in parse_designation()
3089 } else if (sym == YY__POINT) { in parse_designation()
3090 sym = get_sym(); in parse_designation()
3091 sym = parse_ID(sym, &name, &name_len); in parse_designation()
3093 yy_error_sym("unexpected", sym); in parse_designation()
3095 } while (sym == YY__LBRACK || sym == YY__POINT); in parse_designation()
3096 if (sym != YY__EQUAL) { in parse_designation()
3097 yy_error_sym("'=' expected, got", sym); in parse_designation()
3099 sym = get_sym(); in parse_designation()
3100 return sym; in parse_designation()
3103 static int parse_expr_list(int sym) { in parse_expr_list() argument
3105 sym = parse_assignment_expression(sym, &dummy); in parse_expr_list()
3106 while (sym == YY__COMMA) { in parse_expr_list()
3107 sym = get_sym(); in parse_expr_list()
3108 sym = parse_assignment_expression(sym, &dummy); in parse_expr_list()
3110 return sym; in parse_expr_list()
3113 static int parse_expression(int sym, zend_ffi_val *val) { in parse_expression() argument
3114 sym = parse_assignment_expression(sym, val); in parse_expression()
3115 while (sym == YY__COMMA) { in parse_expression()
3116 sym = get_sym(); in parse_expression()
3117 sym = parse_assignment_expression(sym, val); in parse_expression()
3119 return sym; in parse_expression()
3122 static int parse_assignment_expression(int sym, zend_ffi_val *val) { in parse_assignment_expression() argument
3123 sym = parse_conditional_expression(sym, val); in parse_assignment_expression()
3124 return sym; in parse_assignment_expression()
3127 static int parse_constant_expression(int sym, zend_ffi_val *val) { in parse_constant_expression() argument
3128 sym = parse_conditional_expression(sym, val); in parse_constant_expression()
3129 return sym; in parse_constant_expression()
3132 static int parse_conditional_expression(int sym, zend_ffi_val *val) { in parse_conditional_expression() argument
3134 sym = parse_logical_or_expression(sym, val); in parse_conditional_expression()
3135 if (sym == YY__QUERY) { in parse_conditional_expression()
3136 sym = get_sym(); in parse_conditional_expression()
3137 sym = parse_expression(sym, &op2); in parse_conditional_expression()
3138 if (sym != YY__COLON) { in parse_conditional_expression()
3139 yy_error_sym("':' expected, got", sym); in parse_conditional_expression()
3141 sym = get_sym(); in parse_conditional_expression()
3142 sym = parse_conditional_expression(sym, &op3); in parse_conditional_expression()
3145 return sym; in parse_conditional_expression()
3148 static int parse_logical_or_expression(int sym, zend_ffi_val *val) { in parse_logical_or_expression() argument
3150 sym = parse_logical_and_expression(sym, val); in parse_logical_or_expression()
3151 while (sym == YY__BAR_BAR) { in parse_logical_or_expression()
3152 sym = get_sym(); in parse_logical_or_expression()
3153 sym = parse_logical_and_expression(sym, &op2); in parse_logical_or_expression()
3156 return sym; in parse_logical_or_expression()
3159 static int parse_logical_and_expression(int sym, zend_ffi_val *val) { in parse_logical_and_expression() argument
3161 sym = parse_inclusive_or_expression(sym, val); in parse_logical_and_expression()
3162 while (sym == YY__AND_AND) { in parse_logical_and_expression()
3163 sym = get_sym(); in parse_logical_and_expression()
3164 sym = parse_inclusive_or_expression(sym, &op2); in parse_logical_and_expression()
3167 return sym; in parse_logical_and_expression()
3170 static int parse_inclusive_or_expression(int sym, zend_ffi_val *val) { in parse_inclusive_or_expression() argument
3172 sym = parse_exclusive_or_expression(sym, val); in parse_inclusive_or_expression()
3173 while (sym == YY__BAR) { in parse_inclusive_or_expression()
3174 sym = get_sym(); in parse_inclusive_or_expression()
3175 sym = parse_exclusive_or_expression(sym, &op2); in parse_inclusive_or_expression()
3178 return sym; in parse_inclusive_or_expression()
3181 static int parse_exclusive_or_expression(int sym, zend_ffi_val *val) { in parse_exclusive_or_expression() argument
3183 sym = parse_and_expression(sym, val); in parse_exclusive_or_expression()
3184 while (sym == YY__UPARROW) { in parse_exclusive_or_expression()
3185 sym = get_sym(); in parse_exclusive_or_expression()
3186 sym = parse_and_expression(sym, &op2); in parse_exclusive_or_expression()
3189 return sym; in parse_exclusive_or_expression()
3192 static int parse_and_expression(int sym, zend_ffi_val *val) { in parse_and_expression() argument
3194 sym = parse_equality_expression(sym, val); in parse_and_expression()
3195 while (sym == YY__AND) { in parse_and_expression()
3196 sym = get_sym(); in parse_and_expression()
3197 sym = parse_equality_expression(sym, &op2); in parse_and_expression()
3200 return sym; in parse_and_expression()
3203 static int parse_equality_expression(int sym, zend_ffi_val *val) { in parse_equality_expression() argument
3205 sym = parse_relational_expression(sym, val); in parse_equality_expression()
3206 while (sym == YY__EQUAL_EQUAL || sym == YY__BANG_EQUAL) { in parse_equality_expression()
3207 if (sym == YY__EQUAL_EQUAL) { in parse_equality_expression()
3208 sym = get_sym(); in parse_equality_expression()
3209 sym = parse_relational_expression(sym, &op2); in parse_equality_expression()
3212 sym = get_sym(); in parse_equality_expression()
3213 sym = parse_relational_expression(sym, &op2); in parse_equality_expression()
3217 return sym; in parse_equality_expression()
3220 static int parse_relational_expression(int sym, zend_ffi_val *val) { in parse_relational_expression() argument
3222 sym = parse_shift_expression(sym, val); in parse_relational_expression()
3223 …while (sym == YY__LESS || sym == YY__GREATER || sym == YY__LESS_EQUAL || sym == YY__GREATER_EQUAL)… in parse_relational_expression()
3224 if (sym == YY__LESS) { in parse_relational_expression()
3225 sym = get_sym(); in parse_relational_expression()
3226 sym = parse_shift_expression(sym, &op2); in parse_relational_expression()
3228 } else if (sym == YY__GREATER) { in parse_relational_expression()
3229 sym = get_sym(); in parse_relational_expression()
3230 sym = parse_shift_expression(sym, &op2); in parse_relational_expression()
3232 } else if (sym == YY__LESS_EQUAL) { in parse_relational_expression()
3233 sym = get_sym(); in parse_relational_expression()
3234 sym = parse_shift_expression(sym, &op2); in parse_relational_expression()
3237 sym = get_sym(); in parse_relational_expression()
3238 sym = parse_shift_expression(sym, &op2); in parse_relational_expression()
3242 return sym; in parse_relational_expression()
3245 static int parse_shift_expression(int sym, zend_ffi_val *val) { in parse_shift_expression() argument
3247 sym = parse_additive_expression(sym, val); in parse_shift_expression()
3248 while (sym == YY__LESS_LESS || sym == YY__GREATER_GREATER) { in parse_shift_expression()
3249 if (sym == YY__LESS_LESS) { in parse_shift_expression()
3250 sym = get_sym(); in parse_shift_expression()
3251 sym = parse_additive_expression(sym, &op2); in parse_shift_expression()
3254 sym = get_sym(); in parse_shift_expression()
3255 sym = parse_additive_expression(sym, &op2); in parse_shift_expression()
3259 return sym; in parse_shift_expression()
3262 static int parse_additive_expression(int sym, zend_ffi_val *val) { in parse_additive_expression() argument
3264 sym = parse_multiplicative_expression(sym, val); in parse_additive_expression()
3265 while (sym == YY__PLUS || sym == YY__MINUS) { in parse_additive_expression()
3266 if (sym == YY__PLUS) { in parse_additive_expression()
3267 sym = get_sym(); in parse_additive_expression()
3268 sym = parse_multiplicative_expression(sym, &op2); in parse_additive_expression()
3271 sym = get_sym(); in parse_additive_expression()
3272 sym = parse_multiplicative_expression(sym, &op2); in parse_additive_expression()
3276 return sym; in parse_additive_expression()
3279 static int parse_multiplicative_expression(int sym, zend_ffi_val *val) { in parse_multiplicative_expression() argument
3281 sym = parse_cast_expression(sym, val); in parse_multiplicative_expression()
3282 while (sym == YY__STAR || sym == YY__SLASH || sym == YY__PERCENT) { in parse_multiplicative_expression()
3283 if (sym == YY__STAR) { in parse_multiplicative_expression()
3284 sym = get_sym(); in parse_multiplicative_expression()
3285 sym = parse_cast_expression(sym, &op2); in parse_multiplicative_expression()
3287 } else if (sym == YY__SLASH) { in parse_multiplicative_expression()
3288 sym = get_sym(); in parse_multiplicative_expression()
3289 sym = parse_cast_expression(sym, &op2); in parse_multiplicative_expression()
3292 sym = get_sym(); in parse_multiplicative_expression()
3293 sym = parse_cast_expression(sym, &op2); in parse_multiplicative_expression()
3297 return sym; in parse_multiplicative_expression()
3300 static int parse_cast_expression(int sym, zend_ffi_val *val) { in parse_cast_expression() argument
3303 if ((sym == YY__LPAREN) && synpred_4(sym)) { in parse_cast_expression()
3304 sym = get_sym(); in parse_cast_expression()
3305 sym = parse_type_name(sym, &dcl); in parse_cast_expression()
3306 if (sym != YY__RPAREN) { in parse_cast_expression()
3307 yy_error_sym("')' expected, got", sym); in parse_cast_expression()
3309 sym = get_sym(); in parse_cast_expression()
3312 sym = parse_unary_expression(sym, val); in parse_cast_expression()
3314 return sym; in parse_cast_expression()
3317 static int parse_unary_expression(int sym, zend_ffi_val *val) { in parse_unary_expression() argument
3321 switch (sym) { in parse_unary_expression()
3323 sym = parse_ID(sym, &name, &name_len); in parse_unary_expression()
3325 …while (YY_IN_SET(sym, (YY__LBRACK,YY__LPAREN,YY__POINT,YY__MINUS_GREATER,YY__PLUS_PLUS,YY__MINUS_M… in parse_unary_expression()
3326 switch (sym) { in parse_unary_expression()
3328 sym = get_sym(); in parse_unary_expression()
3329 sym = parse_expr_list(sym); in parse_unary_expression()
3330 if (sym != YY__RBRACK) { in parse_unary_expression()
3331 yy_error_sym("']' expected, got", sym); in parse_unary_expression()
3333 sym = get_sym(); in parse_unary_expression()
3336 sym = get_sym(); in parse_unary_expression()
3337 …if (YY_IN_SET(sym, (YY__LPAREN,YY_ID,YY_OCTNUMBER,YY_DECNUMBER,YY_HEXNUMBER,YY_FLOATNUMBER,YY_STRI… in parse_unary_expression()
3338 sym = parse_expr_list(sym); in parse_unary_expression()
3340 if (sym != YY__RPAREN) { in parse_unary_expression()
3341 yy_error_sym("')' expected, got", sym); in parse_unary_expression()
3343 sym = get_sym(); in parse_unary_expression()
3346 sym = get_sym(); in parse_unary_expression()
3347 sym = parse_ID(sym, &name, &name_len); in parse_unary_expression()
3350 sym = get_sym(); in parse_unary_expression()
3351 sym = parse_ID(sym, &name, &name_len); in parse_unary_expression()
3354 sym = get_sym(); in parse_unary_expression()
3357 sym = get_sym(); in parse_unary_expression()
3364 sym = parse_OCTNUMBER(sym, val); in parse_unary_expression()
3367 sym = parse_DECNUMBER(sym, val); in parse_unary_expression()
3370 sym = parse_HEXNUMBER(sym, val); in parse_unary_expression()
3373 sym = parse_FLOATNUMBER(sym, val); in parse_unary_expression()
3376 sym = parse_STRING(sym, val); in parse_unary_expression()
3379 sym = parse_CHARACTER(sym, val); in parse_unary_expression()
3382 sym = get_sym(); in parse_unary_expression()
3383 sym = parse_expression(sym, val); in parse_unary_expression()
3384 if (sym != YY__RPAREN) { in parse_unary_expression()
3385 yy_error_sym("')' expected, got", sym); in parse_unary_expression()
3387 sym = get_sym(); in parse_unary_expression()
3390 sym = get_sym(); in parse_unary_expression()
3391 sym = parse_unary_expression(sym, val); in parse_unary_expression()
3395 sym = get_sym(); in parse_unary_expression()
3396 sym = parse_unary_expression(sym, val); in parse_unary_expression()
3400 sym = get_sym(); in parse_unary_expression()
3401 sym = parse_cast_expression(sym, val); in parse_unary_expression()
3405 sym = get_sym(); in parse_unary_expression()
3406 sym = parse_cast_expression(sym, val); in parse_unary_expression()
3410 sym = get_sym(); in parse_unary_expression()
3411 sym = parse_cast_expression(sym, val); in parse_unary_expression()
3415 sym = get_sym(); in parse_unary_expression()
3416 sym = parse_cast_expression(sym, val); in parse_unary_expression()
3420 sym = get_sym(); in parse_unary_expression()
3421 sym = parse_cast_expression(sym, val); in parse_unary_expression()
3425 sym = get_sym(); in parse_unary_expression()
3426 sym = parse_cast_expression(sym, val); in parse_unary_expression()
3430 sym = get_sym(); in parse_unary_expression()
3431 if ((sym == YY__LPAREN) && synpred_5(sym)) { in parse_unary_expression()
3432 sym = get_sym(); in parse_unary_expression()
3433 sym = parse_type_name(sym, &dcl); in parse_unary_expression()
3434 if (sym != YY__RPAREN) { in parse_unary_expression()
3435 yy_error_sym("')' expected, got", sym); in parse_unary_expression()
3437 sym = get_sym(); in parse_unary_expression()
3439 …} else if (YY_IN_SET(sym, (YY_ID,YY_OCTNUMBER,YY_DECNUMBER,YY_HEXNUMBER,YY_FLOATNUMBER,YY_STRING,Y… in parse_unary_expression()
3440 sym = parse_unary_expression(sym, val); in parse_unary_expression()
3443 yy_error_sym("unexpected", sym); in parse_unary_expression()
3447 sym = get_sym(); in parse_unary_expression()
3448 if (sym != YY__LPAREN) { in parse_unary_expression()
3449 yy_error_sym("'(' expected, got", sym); in parse_unary_expression()
3451 sym = get_sym(); in parse_unary_expression()
3452 sym = parse_type_name(sym, &dcl); in parse_unary_expression()
3453 if (sym != YY__RPAREN) { in parse_unary_expression()
3454 yy_error_sym("')' expected, got", sym); in parse_unary_expression()
3456 sym = get_sym(); in parse_unary_expression()
3461 sym = get_sym(); in parse_unary_expression()
3462 if ((sym == YY__LPAREN) && synpred_6(sym)) { in parse_unary_expression()
3463 sym = get_sym(); in parse_unary_expression()
3464 sym = parse_type_name(sym, &dcl); in parse_unary_expression()
3465 if (sym != YY__RPAREN) { in parse_unary_expression()
3466 yy_error_sym("')' expected, got", sym); in parse_unary_expression()
3468 sym = get_sym(); in parse_unary_expression()
3470 …} else if (YY_IN_SET(sym, (YY_ID,YY_OCTNUMBER,YY_DECNUMBER,YY_HEXNUMBER,YY_FLOATNUMBER,YY_STRING,Y… in parse_unary_expression()
3471 sym = parse_unary_expression(sym, val); in parse_unary_expression()
3474 yy_error_sym("unexpected", sym); in parse_unary_expression()
3478 yy_error_sym("unexpected", sym); in parse_unary_expression()
3480 return sym; in parse_unary_expression()
3483 static int parse_ID(int sym, const char **name, size_t *name_len) { in parse_ID() argument
3484 if (sym != YY_ID) { in parse_ID()
3485 yy_error_sym("<ID> expected, got", sym); in parse_ID()
3488 sym = get_sym(); in parse_ID()
3489 return sym; in parse_ID()
3492 static int parse_OCTNUMBER(int sym, zend_ffi_val *val) { in parse_OCTNUMBER() argument
3493 if (sym != YY_OCTNUMBER) { in parse_OCTNUMBER()
3494 yy_error_sym("<OCTNUMBER> expected, got", sym); in parse_OCTNUMBER()
3497 sym = get_sym(); in parse_OCTNUMBER()
3498 return sym; in parse_OCTNUMBER()
3501 static int parse_DECNUMBER(int sym, zend_ffi_val *val) { in parse_DECNUMBER() argument
3502 if (sym != YY_DECNUMBER) { in parse_DECNUMBER()
3503 yy_error_sym("<DECNUMBER> expected, got", sym); in parse_DECNUMBER()
3506 sym = get_sym(); in parse_DECNUMBER()
3507 return sym; in parse_DECNUMBER()
3510 static int parse_HEXNUMBER(int sym, zend_ffi_val *val) { in parse_HEXNUMBER() argument
3511 if (sym != YY_HEXNUMBER) { in parse_HEXNUMBER()
3512 yy_error_sym("<HEXNUMBER> expected, got", sym); in parse_HEXNUMBER()
3515 sym = get_sym(); in parse_HEXNUMBER()
3516 return sym; in parse_HEXNUMBER()
3519 static int parse_FLOATNUMBER(int sym, zend_ffi_val *val) { in parse_FLOATNUMBER() argument
3520 if (sym != YY_FLOATNUMBER) { in parse_FLOATNUMBER()
3521 yy_error_sym("<FLOATNUMBER> expected, got", sym); in parse_FLOATNUMBER()
3524 sym = get_sym(); in parse_FLOATNUMBER()
3525 return sym; in parse_FLOATNUMBER()
3528 static int parse_STRING(int sym, zend_ffi_val *val) { in parse_STRING() argument
3529 if (sym != YY_STRING) { in parse_STRING()
3530 yy_error_sym("<STRING> expected, got", sym); in parse_STRING()
3533 sym = get_sym(); in parse_STRING()
3534 return sym; in parse_STRING()
3537 static int parse_CHARACTER(int sym, zend_ffi_val *val) { in parse_CHARACTER() argument
3538 if (sym != YY_CHARACTER) { in parse_CHARACTER()
3539 yy_error_sym("<CHARACTER> expected, got", sym); in parse_CHARACTER()
3542 sym = get_sym(); in parse_CHARACTER()
3543 return sym; in parse_CHARACTER()
3547 int sym; in parse() local
3551 sym = parse_declarations(get_sym()); in parse()
3552 if (sym != YY_EOF) { in parse()
3553 yy_error_sym("<EOF> expected, got", sym); in parse()
3571 int sym; in zend_ffi_parse_type() local
3579 sym = parse_type_name(get_sym(), dcl); in zend_ffi_parse_type()
3580 if (sym != YY_EOF) { in zend_ffi_parse_type()
3581 yy_error_sym("<EOF> expected, got", sym); in zend_ffi_parse_type()
3594 static void yy_error_sym(const char *msg, int sym) { in yy_error_sym() argument
3595 zend_ffi_parser_error("%s '%s' at line %d", msg, sym_name[sym], yy_line); in yy_error_sym()