Language: C++

#include <iostream>
#include <cstdio>
#include <string>
#include <string.h>
using namespace std;
#define maxn 10005
char a[maxn],b[maxn];
struct Node
{
    int out;
    int l,r;
    Node()
    {
        out=l=r=-1;
    }
}x[maxn],y[maxn];
//int Build(string cur,int id,int f)
//{
//    蟒コ遶狗ャャ荳?「玲?
//    if(f==0)
//    {
//        if(cur=="")return -1;
//        int t=1;
//        string t1,t2;
//        for(int i=1; i<cur.size(); i++)
//        {
//            if(cur[i]=='(')
//            {
//                t++;
//            }
//            else if(cur[i]==',')
//            {
//                if(t==1)
//                {
//                    x[id].l=Build(t1,id+1,f);
//                    for(int j=i+1; j<cur.size()-1; j++)
//                    {
//                        t2+=cur[j];
//                    }
//                    x[id].r=Build(t2,id+2,f);
//                    break;
//                }
//            }
//            else if(cur[i]==')')
//            {
//                t--;
//            }
//            t1+=cur[i];
//        }
//    }
//    蟒コ遶狗ャャ荳?「玲?
//    else
//    {
//        if(cur=="")return -1;
//        int t=1;
//        string t1,t2;
//        for(int i=1; i<cur.size(); i++)
//        {
//            if(cur[i]=='(')
//            {
//                t++;
//            }
//            else if(cur[i]==',')
//            {
//                if(t==1)
//                {
//                    y[id].l=Build(t1,id+1,f);
//                    for(int j=i+1; j<cur.size()-1; j++)
//                    {
//                        t2+=cur[j];
//                    }
//                    y[id].r=Build(t2,id+2,f);
//                    break;
//                }
//            }
//            else if(cur[i]==')')
//            {
//                t--;
//            }
//            t1+=cur[i];
//        }
//    }
//    return id;
//}
void Out(int ix,int iy,char ch)
{
    if(ch=='i')//荳?    {
        if(ix==-1||iy==-1)
        {
            return;
        }
        printf("(");
        if(x[ix].l!=-1&&y[iy].l!=-1)
        {
            Out(x[ix].l,y[iy].l,ch);
        }
        printf(",");
        if(x[ix].r!=-1&&y[iy].r!=-1)
        {
            Out(x[ix].r,y[iy].r,ch);
        }
        printf(")");
    }
    else
    {
        if(ix!=-1&&iy!=-1)//蜷梧慮驛ス譛?        {
            printf("(");
            Out(x[ix].l,y[iy].l,ch);
            printf(",");
            Out(x[ix].r,y[iy].r,ch);
            printf(")");
        }
        if(ix==-1&&iy!=-1)//iy譛?        {
            printf("(");
            Out(-1,y[iy].l,ch);
            printf(",");
            Out(-1,y[iy].r,ch);
            printf(")");
        }
        if(ix!=-1&&iy==-1)//ix譛?        {
            printf("(");
            Out(x[ix].l,-1,ch);
            printf(",");
            Out(x[ix].r,-1,ch);
            printf(")");
        }
    }
}

int main()
{
    char ch;
    while(scanf("%c%s%s",&ch,a,b)!=EOF)
    {
        getchar();
        for(int i=0; i<maxn; i++)
        {
            x[i].out=x[i].l=x[i].r=-1;
            y[i].out=y[i].l=y[i].r=-1;
        }
        string s1=a;
        string s2=b;
//        Build(s1,0,0);
//        Build(s2,0,1);
        Out(0,0,ch);
        printf("\n");
    }
    return 0;
}

Compiler output:
a.cc:104:5: error: expected unqualified-id before 'else'
  104 |     else
      |     ^~~~
a.cc:113:9: error: expected unqualified-id before 'if'
  113 |         if(ix==-1&&iy!=-1)//iy譛?        {
      |         ^~
a.cc:115:16: error: expected constructor, destructor, or type conversion before '(' token
  115 |             Out(-1,y[iy].l,ch);
      |                ^
a.cc:116:19: error: expected constructor, destructor, or type conversion before '(' token
  116 |             printf(",");
      |                   ^
a.cc:117:16: error: expected constructor, destructor, or type conversion before '(' token
  117 |             Out(-1,y[iy].r,ch);
      |                ^
a.cc:118:19: error: expected constructor, destructor, or type conversion before '(' token
  118 |             printf(")");
      |                   ^
a.cc:119:9: error: expected declaration before '}' token
  119 |         }
      |         ^
a.cc:120:9: error: expected unqualified-id before 'if'
  120 |         if(ix!=-1&&iy==-1)//ix譛?        {
      |         ^~
a.cc:122:16: error: expected constructor, destructor, or type conversion before '(' token
  122 |             Out(x[ix].l,-1,ch);
      |                ^
a.cc:123:19: error: expected constructor, destructor, or type conversion before '(' token
  123 |             printf(",");
      |                   ^
a.cc:124:16: error: expected constructor, destructor, or type conversion before '(' token
  124 |             Out(x[ix].r,-1,ch);
      |                ^
a.cc:125:19: error: expected constructor, destructor, or type conversion before '(' token
  125 |             printf(")");
      |                   ^
a.cc:126:9: error: expected declaration before '}' token
  126 |         }
      |         ^
a.cc:127:5: error: expected declaration before '}' token
  127 |     }
      |     ^
a.cc:128:1: error: expected declaration before '}' token
  128 | }
      | ^