program Rcall_counter, rclass


local openbrackets 0

	// Remove string quotation to avoid open brackets that appear in quotations
	// ------------------------------------------------------------------------




	local line `"`macval(0)'"'

	// Count open brackets
	// ------------------------------------------------------------------------
	while strpos(`"`macval(line)'"',"{") != 0 {
		local br = strpos(`"`macval(line)'"',"{")
		local l1 = substr(`"`macval(line)'"',1, `br')
		local l2 = substr(`"`macval(line)'"',`br'+1,.)
		local openbrackets `++openbrackets'
		local line `"`macval(l2)'"'
	}

	// count closed brackets
	// ------------------------------------------------------------------------
	while strpos(`"`macval(0)'"',"}") != 0 {
		local br = strpos(`"`macval(l2)'"',"}")
		local l1 = substr(`"`macval(l2)'"',1, `br'+1)
		local l2 = substr(`"`macval(l2)'"',`br'+2,.)
		local openbrackets `--openbrackets'
		local 0 `"`macval(l2)'"'
	}

	return scalar Rcall_counter = `openbrackets'

end

*Rcall_counter	this is a line {} whatever comes next { {