1parentheses_expr(_,char,char_literal(A)) -->
    2	char_literal(A).
    3
    4parentheses_expr(_,string,string_literal(A)) -->
    5	string_literal(A).
    6
    7
    8parentheses_expr(Data,Type1,anonymous_function(Type1,Params1,Body1)) -->
    9        anonymous_function_(Data,[
   10			type(Data,Type1),
   11			parameters(Data,Params1),
   12			statements(Data,Type1,Body1)
   13        ]).
   14
   15parentheses_expr(Data,bool,"true") -->
   16	true_(Data).
   17parentheses_expr(Data,bool,"false") -->
   18	false_(Data).
   19
   20parentheses_expr(Data,[array,Type],initializer_list(A)) -->
   21	initializer_list_(Data,[
   22		initializer_list_(Data,Type,A),
   23		type(Data,Type)
   24	]).
   25
   26parentheses_expr(Data,[dict,Type1],dict(A)) -->
   27	dict_(Data,[
   28		dict_(Data,Type1,A),
   29		type(Data,Type1)
   30	]).
   31
   32parentheses_expr(Data,Type,var_name(A)) -->
   33	var_name_(Data,Type,A).
   34
   35parentheses_expr(_,int,an_int(A)) -->
   36	an_int(A).
   37parentheses_expr(_,double,a_double(A)) -->
   38	a_double(A).
   39
   40parentheses_expr(Data,Type,parentheses(A)) -->
   41	"(",ws,expr(Data,Type,A),ws,")".
   42
   43parentheses_expr(Data,Type, function_call(Name,Params1,Params2)) -->
   44    function_call_(Data,[
   45		function_name(Data,Type,Name,Params2),
   46		function_call_parameters(Data,Params1,Params2)
   47	]),
   48	{reserved_words(Name)}