EXEC SQL BEGIN DECLARE SECTION; と EXEC SQL END DECLARE SECTION; で囲まれたホスト変数定義部分の中でVARCHARを宣言したいとき、以下のようにしてしまうとコンパイル時に意味不明なparse errorが出ます。
VARCHAR a[128], b[128];
これは、以下のようにaとbを分けて定義すると解決出来ます。ecpgによるCのコード生成時に問題になるっぽいですね。
VARCHAR a[128];
VARCHAR b[128];