LetExp([ VarDec(N,true,NONE, IntExp(8)), TypeDec[ (intArray, ArrayTy(int))], VarDec(row,true,NONE, ArrayExp(intArray, VarExp( SimpleVar(N)), IntExp(0))), VarDec(col,true,NONE, ArrayExp(intArray, VarExp( SimpleVar(N)), IntExp(0))), VarDec(diag1,true,NONE, ArrayExp(intArray, OpExp(MinusOp, OpExp(PlusOp, VarExp( SimpleVar(N)), VarExp( SimpleVar(N))), IntExp(1)), IntExp(0))), VarDec(diag2,true,NONE, ArrayExp(intArray, OpExp(MinusOp, OpExp(PlusOp, VarExp( SimpleVar(N)), VarExp( SimpleVar(N))), IntExp(1)), IntExp(0))), FunctionDec[ (printboard,[], NONE, SeqExp[ ForExp( i,false, IntExp(0), OpExp(MinusOp, VarExp( SimpleVar(N)), IntExp(1)), SeqExp[ ForExp( j,false, IntExp(0), OpExp(MinusOp, VarExp( SimpleVar(N)), IntExp(1)), CallExp(print,[ IfExp( OpExp(EqOp, VarExp( SubscriptVar( SimpleVar(col), VarExp( SimpleVar(i)))), VarExp( SimpleVar(j))), StringExp(" O"), StringExp(" ."))])), CallExp(print,[ StringExp(" ")])]), CallExp(print,[ StringExp(" ")])]), (try,[ (c,false,int)], NONE, IfExp( OpExp(EqOp, VarExp( SimpleVar(c)), VarExp( SimpleVar(N))), CallExp(printboard,[]), ForExp( r,false, IntExp(0), OpExp(MinusOp, VarExp( SimpleVar(N)), IntExp(1)), IfExp( IfExp( IfExp( OpExp(EqOp, VarExp( SubscriptVar( SimpleVar(row), VarExp( SimpleVar(r)))), IntExp(0)), OpExp(EqOp, VarExp( SubscriptVar( SimpleVar(diag1), OpExp(PlusOp, VarExp( SimpleVar(r)), VarExp( SimpleVar(c))))), IntExp(0)), IntExp(0)), OpExp(EqOp, VarExp( SubscriptVar( SimpleVar(diag2), OpExp(MinusOp, OpExp(PlusOp, VarExp( SimpleVar(r)), IntExp(7)), VarExp( SimpleVar(c))))), IntExp(0)), IntExp(0)), SeqExp[ AssignExp( SubscriptVar( SimpleVar(row), VarExp( SimpleVar(r))), IntExp(1)), AssignExp( SubscriptVar( SimpleVar(diag1), OpExp(PlusOp, VarExp( SimpleVar(r)), VarExp( SimpleVar(c)))), IntExp(1)), AssignExp( SubscriptVar( SimpleVar(diag2), OpExp(MinusOp, OpExp(PlusOp, VarExp( SimpleVar(r)), IntExp(7)), VarExp( SimpleVar(c)))), IntExp(1)), AssignExp( SubscriptVar( SimpleVar(col), VarExp( SimpleVar(c))), VarExp( SimpleVar(r))), CallExp(try,[ OpExp(PlusOp, VarExp( SimpleVar(c)), IntExp(1))]), AssignExp( SubscriptVar( SimpleVar(row), VarExp( SimpleVar(r))), IntExp(0)), AssignExp( SubscriptVar( SimpleVar(diag1), OpExp(PlusOp, VarExp( SimpleVar(r)), VarExp( SimpleVar(c)))), IntExp(0)), AssignExp( SubscriptVar( SimpleVar(diag2), OpExp(MinusOp, OpExp(PlusOp, VarExp( SimpleVar(r)), IntExp(7)), VarExp( SimpleVar(c)))), IntExp(0))]))))]], CallExp(try,[ IntExp(0)]))