@@ -1732,3 +1732,264 @@ yp_node_memsize(yp_node_t *node, yp_memsize_t *memsize) {
1732
1732
* memsize = (yp_memsize_t ) { .memsize = 0 , .node_count = 0 };
1733
1733
yp_node_memsize_node (node , memsize );
1734
1734
}
1735
+
1736
+ // Returns a string representation of the given node type.
1737
+ YP_EXPORTED_FUNCTION const char *
1738
+ yp_node_type_to_str (yp_node_type_t node_type )
1739
+ {
1740
+ switch (node_type ) {
1741
+ case YP_NODE_ALIAS_NODE :
1742
+ return "YP_NODE_ALIAS_NODE" ;
1743
+ case YP_NODE_ALTERNATION_PATTERN_NODE :
1744
+ return "YP_NODE_ALTERNATION_PATTERN_NODE" ;
1745
+ case YP_NODE_AND_NODE :
1746
+ return "YP_NODE_AND_NODE" ;
1747
+ case YP_NODE_ARGUMENTS_NODE :
1748
+ return "YP_NODE_ARGUMENTS_NODE" ;
1749
+ case YP_NODE_ARRAY_NODE :
1750
+ return "YP_NODE_ARRAY_NODE" ;
1751
+ case YP_NODE_ARRAY_PATTERN_NODE :
1752
+ return "YP_NODE_ARRAY_PATTERN_NODE" ;
1753
+ case YP_NODE_ASSOC_NODE :
1754
+ return "YP_NODE_ASSOC_NODE" ;
1755
+ case YP_NODE_ASSOC_SPLAT_NODE :
1756
+ return "YP_NODE_ASSOC_SPLAT_NODE" ;
1757
+ case YP_NODE_BACK_REFERENCE_READ_NODE :
1758
+ return "YP_NODE_BACK_REFERENCE_READ_NODE" ;
1759
+ case YP_NODE_BEGIN_NODE :
1760
+ return "YP_NODE_BEGIN_NODE" ;
1761
+ case YP_NODE_BLOCK_ARGUMENT_NODE :
1762
+ return "YP_NODE_BLOCK_ARGUMENT_NODE" ;
1763
+ case YP_NODE_BLOCK_NODE :
1764
+ return "YP_NODE_BLOCK_NODE" ;
1765
+ case YP_NODE_BLOCK_PARAMETER_NODE :
1766
+ return "YP_NODE_BLOCK_PARAMETER_NODE" ;
1767
+ case YP_NODE_BLOCK_PARAMETERS_NODE :
1768
+ return "YP_NODE_BLOCK_PARAMETERS_NODE" ;
1769
+ case YP_NODE_BREAK_NODE :
1770
+ return "YP_NODE_BREAK_NODE" ;
1771
+ case YP_NODE_CALL_NODE :
1772
+ return "YP_NODE_CALL_NODE" ;
1773
+ case YP_NODE_CALL_OPERATOR_AND_WRITE_NODE :
1774
+ return "YP_NODE_CALL_OPERATOR_AND_WRITE_NODE" ;
1775
+ case YP_NODE_CALL_OPERATOR_OR_WRITE_NODE :
1776
+ return "YP_NODE_CALL_OPERATOR_OR_WRITE_NODE" ;
1777
+ case YP_NODE_CALL_OPERATOR_WRITE_NODE :
1778
+ return "YP_NODE_CALL_OPERATOR_WRITE_NODE" ;
1779
+ case YP_NODE_CAPTURE_PATTERN_NODE :
1780
+ return "YP_NODE_CAPTURE_PATTERN_NODE" ;
1781
+ case YP_NODE_CASE_NODE :
1782
+ return "YP_NODE_CASE_NODE" ;
1783
+ case YP_NODE_CLASS_NODE :
1784
+ return "YP_NODE_CLASS_NODE" ;
1785
+ case YP_NODE_CLASS_VARIABLE_OPERATOR_AND_WRITE_NODE :
1786
+ return "YP_NODE_CLASS_VARIABLE_OPERATOR_AND_WRITE_NODE" ;
1787
+ case YP_NODE_CLASS_VARIABLE_OPERATOR_OR_WRITE_NODE :
1788
+ return "YP_NODE_CLASS_VARIABLE_OPERATOR_OR_WRITE_NODE" ;
1789
+ case YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE :
1790
+ return "YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE" ;
1791
+ case YP_NODE_CLASS_VARIABLE_READ_NODE :
1792
+ return "YP_NODE_CLASS_VARIABLE_READ_NODE" ;
1793
+ case YP_NODE_CLASS_VARIABLE_WRITE_NODE :
1794
+ return "YP_NODE_CLASS_VARIABLE_WRITE_NODE" ;
1795
+ case YP_NODE_CONSTANT_OPERATOR_AND_WRITE_NODE :
1796
+ return "YP_NODE_CONSTANT_OPERATOR_AND_WRITE_NODE" ;
1797
+ case YP_NODE_CONSTANT_OPERATOR_OR_WRITE_NODE :
1798
+ return "YP_NODE_CONSTANT_OPERATOR_OR_WRITE_NODE" ;
1799
+ case YP_NODE_CONSTANT_OPERATOR_WRITE_NODE :
1800
+ return "YP_NODE_CONSTANT_OPERATOR_WRITE_NODE" ;
1801
+ case YP_NODE_CONSTANT_PATH_NODE :
1802
+ return "YP_NODE_CONSTANT_PATH_NODE" ;
1803
+ case YP_NODE_CONSTANT_PATH_OPERATOR_AND_WRITE_NODE :
1804
+ return "YP_NODE_CONSTANT_PATH_OPERATOR_AND_WRITE_NODE" ;
1805
+ case YP_NODE_CONSTANT_PATH_OPERATOR_OR_WRITE_NODE :
1806
+ return "YP_NODE_CONSTANT_PATH_OPERATOR_OR_WRITE_NODE" ;
1807
+ case YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE :
1808
+ return "YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE" ;
1809
+ case YP_NODE_CONSTANT_PATH_WRITE_NODE :
1810
+ return "YP_NODE_CONSTANT_PATH_WRITE_NODE" ;
1811
+ case YP_NODE_CONSTANT_READ_NODE :
1812
+ return "YP_NODE_CONSTANT_READ_NODE" ;
1813
+ case YP_NODE_DEF_NODE :
1814
+ return "YP_NODE_DEF_NODE" ;
1815
+ case YP_NODE_DEFINED_NODE :
1816
+ return "YP_NODE_DEFINED_NODE" ;
1817
+ case YP_NODE_ELSE_NODE :
1818
+ return "YP_NODE_ELSE_NODE" ;
1819
+ case YP_NODE_EMBEDDED_STATEMENTS_NODE :
1820
+ return "YP_NODE_EMBEDDED_STATEMENTS_NODE" ;
1821
+ case YP_NODE_EMBEDDED_VARIABLE_NODE :
1822
+ return "YP_NODE_EMBEDDED_VARIABLE_NODE" ;
1823
+ case YP_NODE_ENSURE_NODE :
1824
+ return "YP_NODE_ENSURE_NODE" ;
1825
+ case YP_NODE_FALSE_NODE :
1826
+ return "YP_NODE_FALSE_NODE" ;
1827
+ case YP_NODE_FIND_PATTERN_NODE :
1828
+ return "YP_NODE_FIND_PATTERN_NODE" ;
1829
+ case YP_NODE_FLOAT_NODE :
1830
+ return "YP_NODE_FLOAT_NODE" ;
1831
+ case YP_NODE_FOR_NODE :
1832
+ return "YP_NODE_FOR_NODE" ;
1833
+ case YP_NODE_FORWARDING_ARGUMENTS_NODE :
1834
+ return "YP_NODE_FORWARDING_ARGUMENTS_NODE" ;
1835
+ case YP_NODE_FORWARDING_PARAMETER_NODE :
1836
+ return "YP_NODE_FORWARDING_PARAMETER_NODE" ;
1837
+ case YP_NODE_FORWARDING_SUPER_NODE :
1838
+ return "YP_NODE_FORWARDING_SUPER_NODE" ;
1839
+ case YP_NODE_GLOBAL_VARIABLE_OPERATOR_AND_WRITE_NODE :
1840
+ return "YP_NODE_GLOBAL_VARIABLE_OPERATOR_AND_WRITE_NODE" ;
1841
+ case YP_NODE_GLOBAL_VARIABLE_OPERATOR_OR_WRITE_NODE :
1842
+ return "YP_NODE_GLOBAL_VARIABLE_OPERATOR_OR_WRITE_NODE" ;
1843
+ case YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE :
1844
+ return "YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE" ;
1845
+ case YP_NODE_GLOBAL_VARIABLE_READ_NODE :
1846
+ return "YP_NODE_GLOBAL_VARIABLE_READ_NODE" ;
1847
+ case YP_NODE_GLOBAL_VARIABLE_WRITE_NODE :
1848
+ return "YP_NODE_GLOBAL_VARIABLE_WRITE_NODE" ;
1849
+ case YP_NODE_HASH_NODE :
1850
+ return "YP_NODE_HASH_NODE" ;
1851
+ case YP_NODE_HASH_PATTERN_NODE :
1852
+ return "YP_NODE_HASH_PATTERN_NODE" ;
1853
+ case YP_NODE_IF_NODE :
1854
+ return "YP_NODE_IF_NODE" ;
1855
+ case YP_NODE_IMAGINARY_NODE :
1856
+ return "YP_NODE_IMAGINARY_NODE" ;
1857
+ case YP_NODE_IN_NODE :
1858
+ return "YP_NODE_IN_NODE" ;
1859
+ case YP_NODE_INSTANCE_VARIABLE_OPERATOR_AND_WRITE_NODE :
1860
+ return "YP_NODE_INSTANCE_VARIABLE_OPERATOR_AND_WRITE_NODE" ;
1861
+ case YP_NODE_INSTANCE_VARIABLE_OPERATOR_OR_WRITE_NODE :
1862
+ return "YP_NODE_INSTANCE_VARIABLE_OPERATOR_OR_WRITE_NODE" ;
1863
+ case YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE :
1864
+ return "YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE" ;
1865
+ case YP_NODE_INSTANCE_VARIABLE_READ_NODE :
1866
+ return "YP_NODE_INSTANCE_VARIABLE_READ_NODE" ;
1867
+ case YP_NODE_INSTANCE_VARIABLE_WRITE_NODE :
1868
+ return "YP_NODE_INSTANCE_VARIABLE_WRITE_NODE" ;
1869
+ case YP_NODE_INTEGER_NODE :
1870
+ return "YP_NODE_INTEGER_NODE" ;
1871
+ case YP_NODE_INTERPOLATED_REGULAR_EXPRESSION_NODE :
1872
+ return "YP_NODE_INTERPOLATED_REGULAR_EXPRESSION_NODE" ;
1873
+ case YP_NODE_INTERPOLATED_STRING_NODE :
1874
+ return "YP_NODE_INTERPOLATED_STRING_NODE" ;
1875
+ case YP_NODE_INTERPOLATED_SYMBOL_NODE :
1876
+ return "YP_NODE_INTERPOLATED_SYMBOL_NODE" ;
1877
+ case YP_NODE_INTERPOLATED_X_STRING_NODE :
1878
+ return "YP_NODE_INTERPOLATED_X_STRING_NODE" ;
1879
+ case YP_NODE_KEYWORD_HASH_NODE :
1880
+ return "YP_NODE_KEYWORD_HASH_NODE" ;
1881
+ case YP_NODE_KEYWORD_PARAMETER_NODE :
1882
+ return "YP_NODE_KEYWORD_PARAMETER_NODE" ;
1883
+ case YP_NODE_KEYWORD_REST_PARAMETER_NODE :
1884
+ return "YP_NODE_KEYWORD_REST_PARAMETER_NODE" ;
1885
+ case YP_NODE_LAMBDA_NODE :
1886
+ return "YP_NODE_LAMBDA_NODE" ;
1887
+ case YP_NODE_LOCAL_VARIABLE_OPERATOR_AND_WRITE_NODE :
1888
+ return "YP_NODE_LOCAL_VARIABLE_OPERATOR_AND_WRITE_NODE" ;
1889
+ case YP_NODE_LOCAL_VARIABLE_OPERATOR_OR_WRITE_NODE :
1890
+ return "YP_NODE_LOCAL_VARIABLE_OPERATOR_OR_WRITE_NODE" ;
1891
+ case YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE :
1892
+ return "YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE" ;
1893
+ case YP_NODE_LOCAL_VARIABLE_READ_NODE :
1894
+ return "YP_NODE_LOCAL_VARIABLE_READ_NODE" ;
1895
+ case YP_NODE_LOCAL_VARIABLE_WRITE_NODE :
1896
+ return "YP_NODE_LOCAL_VARIABLE_WRITE_NODE" ;
1897
+ case YP_NODE_MATCH_PREDICATE_NODE :
1898
+ return "YP_NODE_MATCH_PREDICATE_NODE" ;
1899
+ case YP_NODE_MATCH_REQUIRED_NODE :
1900
+ return "YP_NODE_MATCH_REQUIRED_NODE" ;
1901
+ case YP_NODE_MISSING_NODE :
1902
+ return "YP_NODE_MISSING_NODE" ;
1903
+ case YP_NODE_MODULE_NODE :
1904
+ return "YP_NODE_MODULE_NODE" ;
1905
+ case YP_NODE_MULTI_WRITE_NODE :
1906
+ return "YP_NODE_MULTI_WRITE_NODE" ;
1907
+ case YP_NODE_NEXT_NODE :
1908
+ return "YP_NODE_NEXT_NODE" ;
1909
+ case YP_NODE_NIL_NODE :
1910
+ return "YP_NODE_NIL_NODE" ;
1911
+ case YP_NODE_NO_KEYWORDS_PARAMETER_NODE :
1912
+ return "YP_NODE_NO_KEYWORDS_PARAMETER_NODE" ;
1913
+ case YP_NODE_NUMBERED_REFERENCE_READ_NODE :
1914
+ return "YP_NODE_NUMBERED_REFERENCE_READ_NODE" ;
1915
+ case YP_NODE_OPTIONAL_PARAMETER_NODE :
1916
+ return "YP_NODE_OPTIONAL_PARAMETER_NODE" ;
1917
+ case YP_NODE_OR_NODE :
1918
+ return "YP_NODE_OR_NODE" ;
1919
+ case YP_NODE_PARAMETERS_NODE :
1920
+ return "YP_NODE_PARAMETERS_NODE" ;
1921
+ case YP_NODE_PARENTHESES_NODE :
1922
+ return "YP_NODE_PARENTHESES_NODE" ;
1923
+ case YP_NODE_PINNED_EXPRESSION_NODE :
1924
+ return "YP_NODE_PINNED_EXPRESSION_NODE" ;
1925
+ case YP_NODE_PINNED_VARIABLE_NODE :
1926
+ return "YP_NODE_PINNED_VARIABLE_NODE" ;
1927
+ case YP_NODE_POST_EXECUTION_NODE :
1928
+ return "YP_NODE_POST_EXECUTION_NODE" ;
1929
+ case YP_NODE_PRE_EXECUTION_NODE :
1930
+ return "YP_NODE_PRE_EXECUTION_NODE" ;
1931
+ case YP_NODE_PROGRAM_NODE :
1932
+ return "YP_NODE_PROGRAM_NODE" ;
1933
+ case YP_NODE_RANGE_NODE :
1934
+ return "YP_NODE_RANGE_NODE" ;
1935
+ case YP_NODE_RATIONAL_NODE :
1936
+ return "YP_NODE_RATIONAL_NODE" ;
1937
+ case YP_NODE_REDO_NODE :
1938
+ return "YP_NODE_REDO_NODE" ;
1939
+ case YP_NODE_REGULAR_EXPRESSION_NODE :
1940
+ return "YP_NODE_REGULAR_EXPRESSION_NODE" ;
1941
+ case YP_NODE_REQUIRED_DESTRUCTURED_PARAMETER_NODE :
1942
+ return "YP_NODE_REQUIRED_DESTRUCTURED_PARAMETER_NODE" ;
1943
+ case YP_NODE_REQUIRED_PARAMETER_NODE :
1944
+ return "YP_NODE_REQUIRED_PARAMETER_NODE" ;
1945
+ case YP_NODE_RESCUE_MODIFIER_NODE :
1946
+ return "YP_NODE_RESCUE_MODIFIER_NODE" ;
1947
+ case YP_NODE_RESCUE_NODE :
1948
+ return "YP_NODE_RESCUE_NODE" ;
1949
+ case YP_NODE_REST_PARAMETER_NODE :
1950
+ return "YP_NODE_REST_PARAMETER_NODE" ;
1951
+ case YP_NODE_RETRY_NODE :
1952
+ return "YP_NODE_RETRY_NODE" ;
1953
+ case YP_NODE_RETURN_NODE :
1954
+ return "YP_NODE_RETURN_NODE" ;
1955
+ case YP_NODE_SELF_NODE :
1956
+ return "YP_NODE_SELF_NODE" ;
1957
+ case YP_NODE_SINGLETON_CLASS_NODE :
1958
+ return "YP_NODE_SINGLETON_CLASS_NODE" ;
1959
+ case YP_NODE_SOURCE_ENCODING_NODE :
1960
+ return "YP_NODE_SOURCE_ENCODING_NODE" ;
1961
+ case YP_NODE_SOURCE_FILE_NODE :
1962
+ return "YP_NODE_SOURCE_FILE_NODE" ;
1963
+ case YP_NODE_SOURCE_LINE_NODE :
1964
+ return "YP_NODE_SOURCE_LINE_NODE" ;
1965
+ case YP_NODE_SPLAT_NODE :
1966
+ return "YP_NODE_SPLAT_NODE" ;
1967
+ case YP_NODE_STATEMENTS_NODE :
1968
+ return "YP_NODE_STATEMENTS_NODE" ;
1969
+ case YP_NODE_STRING_CONCAT_NODE :
1970
+ return "YP_NODE_STRING_CONCAT_NODE" ;
1971
+ case YP_NODE_STRING_NODE :
1972
+ return "YP_NODE_STRING_NODE" ;
1973
+ case YP_NODE_SUPER_NODE :
1974
+ return "YP_NODE_SUPER_NODE" ;
1975
+ case YP_NODE_SYMBOL_NODE :
1976
+ return "YP_NODE_SYMBOL_NODE" ;
1977
+ case YP_NODE_TRUE_NODE :
1978
+ return "YP_NODE_TRUE_NODE" ;
1979
+ case YP_NODE_UNDEF_NODE :
1980
+ return "YP_NODE_UNDEF_NODE" ;
1981
+ case YP_NODE_UNLESS_NODE :
1982
+ return "YP_NODE_UNLESS_NODE" ;
1983
+ case YP_NODE_UNTIL_NODE :
1984
+ return "YP_NODE_UNTIL_NODE" ;
1985
+ case YP_NODE_WHEN_NODE :
1986
+ return "YP_NODE_WHEN_NODE" ;
1987
+ case YP_NODE_WHILE_NODE :
1988
+ return "YP_NODE_WHILE_NODE" ;
1989
+ case YP_NODE_X_STRING_NODE :
1990
+ return "YP_NODE_X_STRING_NODE" ;
1991
+ case YP_NODE_YIELD_NODE :
1992
+ return "YP_NODE_YIELD_NODE" ;
1993
+ }
1994
+ return "\0" ;
1995
+ }
0 commit comments