format text file

i have a text file in this format:

name1^A1^B1^
name2^A2^B2^
...
namex^Ax^Bx^
name1^AA1^
name2^AA2^
...
namex^AAx^
name1^AAA1^BBB1^
name2^AAA1^BBB2^
...
namex^AAAx^BBBx^
name1^AAAA1^
name2^AAAA2^
...
namex^AAAAx^

i want to generate a file:
name1^A1^B1^AA1^AAA1^BBB1^AAAA1^
name2^A2^B2^AA2^AAA2^BBB2^AAAA2^
...
namex^Ax^Bx^AAx^AAAx^BBBx^AAAAx^

All A? are different long strings.

thank you for your help.

awk -F\^ '{for(i=1;++i<=NF;)name[$1]=name[$1]($i==""?_:$i"^")}END{for(nm in name) print nm"^"name[nm]}' infile

it works great!