@@ -1853,136 +1853,147 @@ _get_defaults(Parser *p, asdl_seq *names_with_defaults)
1853
1853
return seq ;
1854
1854
}
1855
1855
1856
- /* Constructs an arguments_ty object out of all the parsed constructs in the parameters rule */
1857
- arguments_ty
1858
- _PyPegen_make_arguments (Parser * p , asdl_arg_seq * slash_without_default ,
1859
- SlashWithDefault * slash_with_default , asdl_arg_seq * plain_names ,
1860
- asdl_seq * names_with_default , StarEtc * star_etc )
1861
- {
1862
- asdl_arg_seq * posonlyargs ;
1856
+ static int
1857
+ _make_posonlyargs (Parser * p ,
1858
+ asdl_arg_seq * slash_without_default ,
1859
+ SlashWithDefault * slash_with_default ,
1860
+ asdl_arg_seq * * posonlyargs ) {
1863
1861
if (slash_without_default != NULL ) {
1864
- posonlyargs = slash_without_default ;
1862
+ * posonlyargs = slash_without_default ;
1865
1863
}
1866
1864
else if (slash_with_default != NULL ) {
1867
1865
asdl_arg_seq * slash_with_default_names =
1868
- _get_names (p , slash_with_default -> names_with_defaults );
1866
+ _get_names (p , slash_with_default -> names_with_defaults );
1869
1867
if (!slash_with_default_names ) {
1870
- return NULL ;
1868
+ return -1 ;
1871
1869
}
1872
- posonlyargs = (asdl_arg_seq * )_PyPegen_join_sequences (
1870
+ * posonlyargs = (asdl_arg_seq * )_PyPegen_join_sequences (
1873
1871
p ,
1874
1872
(asdl_seq * )slash_with_default -> plain_names ,
1875
1873
(asdl_seq * )slash_with_default_names );
1876
- if (!posonlyargs ) {
1877
- return NULL ;
1878
- }
1879
1874
}
1880
1875
else {
1881
- posonlyargs = _Py_asdl_arg_seq_new (0 , p -> arena );
1882
- if (!posonlyargs ) {
1883
- return NULL ;
1884
- }
1876
+ * posonlyargs = _Py_asdl_arg_seq_new (0 , p -> arena );
1885
1877
}
1878
+ return * posonlyargs == NULL ? -1 : 0 ;
1879
+ }
1886
1880
1887
- asdl_arg_seq * posargs ;
1881
+ static int
1882
+ _make_posargs (Parser * p ,
1883
+ asdl_arg_seq * plain_names ,
1884
+ asdl_seq * names_with_default ,
1885
+ asdl_arg_seq * * posargs ) {
1888
1886
if (plain_names != NULL && names_with_default != NULL ) {
1889
1887
asdl_arg_seq * names_with_default_names = _get_names (p , names_with_default );
1890
1888
if (!names_with_default_names ) {
1891
- return NULL ;
1892
- }
1893
- posargs = (asdl_arg_seq * )_PyPegen_join_sequences (
1894
- p ,
1895
- (asdl_seq * )plain_names ,
1896
- (asdl_seq * )names_with_default_names );
1897
- if (!posargs ) {
1898
- return NULL ;
1889
+ return -1 ;
1899
1890
}
1891
+ * posargs = (asdl_arg_seq * )_PyPegen_join_sequences (
1892
+ p ,(asdl_seq * )plain_names , (asdl_seq * )names_with_default_names );
1900
1893
}
1901
1894
else if (plain_names == NULL && names_with_default != NULL ) {
1902
- posargs = _get_names (p , names_with_default );
1903
- if (!posargs ) {
1904
- return NULL ;
1905
- }
1895
+ * posargs = _get_names (p , names_with_default );
1906
1896
}
1907
1897
else if (plain_names != NULL && names_with_default == NULL ) {
1908
- posargs = plain_names ;
1898
+ * posargs = plain_names ;
1909
1899
}
1910
1900
else {
1911
- posargs = _Py_asdl_arg_seq_new (0 , p -> arena );
1912
- if (!posargs ) {
1913
- return NULL ;
1914
- }
1901
+ * posargs = _Py_asdl_arg_seq_new (0 , p -> arena );
1915
1902
}
1903
+ return * posargs == NULL ? -1 : 0 ;
1904
+ }
1916
1905
1917
- asdl_expr_seq * posdefaults ;
1906
+ static int
1907
+ _make_posdefaults (Parser * p ,
1908
+ SlashWithDefault * slash_with_default ,
1909
+ asdl_seq * names_with_default ,
1910
+ asdl_expr_seq * * posdefaults ) {
1918
1911
if (slash_with_default != NULL && names_with_default != NULL ) {
1919
1912
asdl_expr_seq * slash_with_default_values =
1920
- _get_defaults (p , slash_with_default -> names_with_defaults );
1913
+ _get_defaults (p , slash_with_default -> names_with_defaults );
1921
1914
if (!slash_with_default_values ) {
1922
- return NULL ;
1915
+ return -1 ;
1923
1916
}
1924
1917
asdl_expr_seq * names_with_default_values = _get_defaults (p , names_with_default );
1925
1918
if (!names_with_default_values ) {
1926
- return NULL ;
1919
+ return -1 ;
1927
1920
}
1928
- posdefaults = (asdl_expr_seq * )_PyPegen_join_sequences (
1921
+ * posdefaults = (asdl_expr_seq * )_PyPegen_join_sequences (
1929
1922
p ,
1930
1923
(asdl_seq * )slash_with_default_values ,
1931
1924
(asdl_seq * )names_with_default_values );
1932
- if (!posdefaults ) {
1933
- return NULL ;
1934
- }
1935
1925
}
1936
1926
else if (slash_with_default == NULL && names_with_default != NULL ) {
1937
- posdefaults = _get_defaults (p , names_with_default );
1938
- if (!posdefaults ) {
1939
- return NULL ;
1940
- }
1927
+ * posdefaults = _get_defaults (p , names_with_default );
1941
1928
}
1942
1929
else if (slash_with_default != NULL && names_with_default == NULL ) {
1943
- posdefaults = _get_defaults (p , slash_with_default -> names_with_defaults );
1944
- if (!posdefaults ) {
1945
- return NULL ;
1946
- }
1930
+ * posdefaults = _get_defaults (p , slash_with_default -> names_with_defaults );
1947
1931
}
1948
1932
else {
1949
- posdefaults = _Py_asdl_expr_seq_new (0 , p -> arena );
1950
- if (!posdefaults ) {
1951
- return NULL ;
1952
- }
1953
- }
1954
-
1955
- arg_ty vararg = NULL ;
1956
- if (star_etc != NULL && star_etc -> vararg != NULL ) {
1957
- vararg = star_etc -> vararg ;
1933
+ * posdefaults = _Py_asdl_expr_seq_new (0 , p -> arena );
1958
1934
}
1935
+ return * posdefaults == NULL ? -1 : 0 ;
1936
+ }
1959
1937
1960
- asdl_arg_seq * kwonlyargs ;
1938
+ static int
1939
+ _make_kwargs (Parser * p , StarEtc * star_etc ,
1940
+ asdl_arg_seq * * kwonlyargs ,
1941
+ asdl_expr_seq * * kwdefaults ) {
1961
1942
if (star_etc != NULL && star_etc -> kwonlyargs != NULL ) {
1962
- kwonlyargs = _get_names (p , star_etc -> kwonlyargs );
1963
- if (!kwonlyargs ) {
1964
- return NULL ;
1965
- }
1943
+ * kwonlyargs = _get_names (p , star_etc -> kwonlyargs );
1966
1944
}
1967
1945
else {
1968
- kwonlyargs = _Py_asdl_arg_seq_new (0 , p -> arena );
1969
- if (!kwonlyargs ) {
1970
- return NULL ;
1971
- }
1946
+ * kwonlyargs = _Py_asdl_arg_seq_new (0 , p -> arena );
1947
+ }
1948
+
1949
+ if (* kwonlyargs == NULL ) {
1950
+ return -1 ;
1972
1951
}
1973
1952
1974
- asdl_expr_seq * kwdefaults ;
1975
1953
if (star_etc != NULL && star_etc -> kwonlyargs != NULL ) {
1976
- kwdefaults = _get_defaults (p , star_etc -> kwonlyargs );
1977
- if (!kwdefaults ) {
1978
- return NULL ;
1979
- }
1954
+ * kwdefaults = _get_defaults (p , star_etc -> kwonlyargs );
1980
1955
}
1981
1956
else {
1982
- kwdefaults = _Py_asdl_expr_seq_new (0 , p -> arena );
1983
- if (!kwdefaults ) {
1984
- return NULL ;
1985
- }
1957
+ * kwdefaults = _Py_asdl_expr_seq_new (0 , p -> arena );
1958
+ }
1959
+
1960
+ if (* kwdefaults == NULL ) {
1961
+ return -1 ;
1962
+ }
1963
+
1964
+ return 0 ;
1965
+ }
1966
+
1967
+ /* Constructs an arguments_ty object out of all the parsed constructs in the parameters rule */
1968
+ arguments_ty
1969
+ _PyPegen_make_arguments (Parser * p , asdl_arg_seq * slash_without_default ,
1970
+ SlashWithDefault * slash_with_default , asdl_arg_seq * plain_names ,
1971
+ asdl_seq * names_with_default , StarEtc * star_etc )
1972
+ {
1973
+ asdl_arg_seq * posonlyargs ;
1974
+ if (_make_posonlyargs (p , slash_without_default , slash_with_default , & posonlyargs ) == -1 ) {
1975
+ return NULL ;
1976
+ }
1977
+
1978
+ asdl_arg_seq * posargs ;
1979
+ if (_make_posargs (p , plain_names , names_with_default , & posargs ) == -1 ) {
1980
+ return NULL ;
1981
+ }
1982
+
1983
+ asdl_expr_seq * posdefaults ;
1984
+ if (_make_posdefaults (p ,slash_with_default , names_with_default , & posdefaults ) == -1 ) {
1985
+ return NULL ;
1986
+ }
1987
+
1988
+ arg_ty vararg = NULL ;
1989
+ if (star_etc != NULL && star_etc -> vararg != NULL ) {
1990
+ vararg = star_etc -> vararg ;
1991
+ }
1992
+
1993
+ asdl_arg_seq * kwonlyargs ;
1994
+ asdl_expr_seq * kwdefaults ;
1995
+ if (_make_kwargs (p , star_etc , & kwonlyargs , & kwdefaults ) == -1 ) {
1996
+ return NULL ;
1986
1997
}
1987
1998
1988
1999
arg_ty kwarg = NULL ;
@@ -1994,6 +2005,7 @@ _PyPegen_make_arguments(Parser *p, asdl_arg_seq *slash_without_default,
1994
2005
kwdefaults , kwarg , posdefaults , p -> arena );
1995
2006
}
1996
2007
2008
+
1997
2009
/* Constructs an empty arguments_ty object, that gets used when a function accepts no
1998
2010
* arguments. */
1999
2011
arguments_ty
0 commit comments