Interface XBoard to Ghostvie file-browser dialog
[xboard.git] / parser.l
old mode 100755 (executable)
new mode 100644 (file)
index bfa1a17..76ec89d
--- a/parser.l
+++ b/parser.l
@@ -244,8 +244,6 @@ extern void CopyBoard P((Board to, Board from));
 \r
     result = LegalityTest(boards[yyboardindex],\r
                          PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: might think we can e.p.!\r
-                         EP_UNKNOWN,\r
-                          initialRights, /* [HGM] assume all castlings allowed */\r
                           currentMoveString[1] - ONE,\r
                           currentMoveString[0] - AAA,\r
                           currentMoveString[3] - ONE,\r
@@ -306,8 +304,6 @@ extern void CopyBoard P((Board to, Board from));
 \r
     result = LegalityTest(boards[yyboardindex],\r
                          PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: might think we can e.p.!\r
-                         EP_UNKNOWN,\r
-                          initialRights, /* [HGM] assume all castlings allowed */\r
                           currentMoveString[1] - ONE,\r
                           currentMoveString[0] - AAA,\r
                           currentMoveString[3] - ONE,\r
@@ -360,8 +356,7 @@ extern void CopyBoard P((Board to, Board from));
       return IllegalMove;\r
 \r
 \r
-    Disambiguate(boards[yyboardindex],\r
-                PosFlags(yyboardindex), EP_UNKNOWN, &cl);\r
+    Disambiguate(boards[yyboardindex], PosFlags(yyboardindex), &cl);\r
 \r
     currentMoveString[0] = cl.ff + AAA;\r
     currentMoveString[1] = cl.rf + ONE;\r
@@ -415,8 +410,7 @@ extern void CopyBoard P((Board to, Board from));
     if(c != '=' && c != '+' && c != NULLCHAR && CharToPiece(c) == EmptySquare)\r
       return IllegalMove;\r
 \r
-    Disambiguate(boards[yyboardindex],\r
-                PosFlags(yyboardindex), EP_UNKNOWN, &cl);\r
+    Disambiguate(boards[yyboardindex], PosFlags(yyboardindex), &cl);\r
 \r
     currentMoveString[0] = cl.ff + AAA;\r
     currentMoveString[1] = cl.rf + ONE;\r
@@ -492,8 +486,6 @@ extern void CopyBoard P((Board to, Board from));
 \r
     result = LegalityTest(boards[yyboardindex],\r
                          PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: might think we can e.p.!\r
-                         EP_UNKNOWN,\r
-                          initialRights, /* [HGM] assume all castlings allowed */\r
                           currentMoveString[1] - ONE,\r
                           currentMoveString[0] - AAA,\r
                           currentMoveString[3] - ONE,\r
@@ -533,8 +525,6 @@ extern void CopyBoard P((Board to, Board from));
 \r
     result = LegalityTest(boards[yyboardindex],\r
                          PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: might think we can e.p.!\r
-                         EP_UNKNOWN,\r
-                          initialRights, /* [HGM] assume all castlings allowed */\r
                           currentMoveString[1] - ONE,\r
                           currentMoveString[0] - AAA,\r
                           currentMoveString[3] - ONE,\r
@@ -591,8 +581,7 @@ extern void CopyBoard P((Board to, Board from));
        cl.ftIn <  BOARD_LEFT     )\r
       return 0;\r
 \r
-    Disambiguate(boards[yyboardindex],\r
-                PosFlags(yyboardindex), EP_UNKNOWN, &cl);\r
+    Disambiguate(boards[yyboardindex], PosFlags(yyboardindex), &cl);\r
 \r
     currentMoveString[0] = cl.ff + AAA;\r
     currentMoveString[1] = cl.rf + ONE;\r
@@ -652,8 +641,7 @@ extern void CopyBoard P((Board to, Board from));
        cl.ftIn <  BOARD_LEFT     )\r
       return 0;\r
 \r
-    Disambiguate(boards[yyboardindex],\r
-                PosFlags(yyboardindex), EP_UNKNOWN, &cl);\r
+    Disambiguate(boards[yyboardindex], PosFlags(yyboardindex), &cl);\r
 \r
     currentMoveString[0] = cl.ff + AAA;\r
     currentMoveString[1] = cl.rf + ONE;\r
@@ -698,7 +686,7 @@ extern void CopyBoard P((Board to, Board from));
             ft = BOARD_LEFT+2;\r
        }\r
     }\r
-    if(gameInfo.variant == VariantFischeRandom) {\r
+    if(PosFlags(0) & F_FRC_TYPE_CASTLING) {
         if (WhiteOnMove(yyboardindex)) {\r
             ff = initialRights[2];\r
             ft = initialRights[1];\r
@@ -718,8 +706,6 @@ extern void CopyBoard P((Board to, Board from));
     }\r
     return (int) LegalityTest(boards[yyboardindex],\r
                              PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: e.p.!\r
-                             EP_UNKNOWN,\r
-                              castlingRights[yyboardindex], /* [HGM] use true castling rights */\r
                              rf, ff, rt, ft, NULLCHAR);\r
 }\r
 \r
@@ -755,7 +741,7 @@ extern void CopyBoard P((Board to, Board from));
             ft = BOARD_RGHT-2;\r
        }\r
     }\r
-    if(gameInfo.variant == VariantFischeRandom) {\r
+    if(PosFlags(0) & F_FRC_TYPE_CASTLING) {
         if (WhiteOnMove(yyboardindex)) {\r
             ff = initialRights[2];\r
             ft = initialRights[0];\r
@@ -775,8 +761,6 @@ extern void CopyBoard P((Board to, Board from));
 \r
     return (int) LegalityTest(boards[yyboardindex],\r
                              PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: e.p.!\r
-                             EP_UNKNOWN,\r
-                              castlingRights[yyboardindex], /* [HGM] use true castling rights */\r
                              rf, ff, rt, ft, NULLCHAR);\r
 }\r
 \r
@@ -849,11 +833,11 @@ extern void CopyBoard P((Board to, Board from));
     return (int) GameIsDrawn;\r
 }\r
 \r
-(([Ww](hite)?)|([Bb](lack)?))" "([Mm]ate(s|ed)?)|([Ww][io]n(s)?.*)  {\r
+(([Ww](hite)?)|([Bb](lack)?))" "(([Mm]ates)|([Ww][io]n(s)?)) { \r
     return (int) (ToUpper(yytext[0]) == 'W' ? WhiteWins : BlackWins);\r
 }\r
 \r
-(([Ww](hite)?)|([Bb](lack)?))" "([Mm]ate(s|ed)?)|([Ll]os[tes]+.*)  {\r
+(([Ww](hite)?)|([Bb](lack)?))" "(([Mm]ated)|([Ll]os[tes]+)) { \r
     return (int) (ToUpper(yytext[0]) == 'W' ? BlackWins : WhiteWins);\r
 }\r
 \r
@@ -988,7 +972,7 @@ int yyoffset()
 static void output(ch)\r
      int ch;\r
 {\r
-    fprintf(stderr, "PARSER BUG: unmatched character '%c' (0%o)\n",\r
+    if(appData.debugMode) fprintf(debugFP, "PARSER BUG: unmatched character '%c' (0%o)\n",\r
            ch, ch);\r
 }\r
 \r
@@ -1000,7 +984,7 @@ static void unput(ch)
        StringToLex--;\r
     } else {\r
        if (unputCount >= UNPUT_BUF_SIZE)\r
-         fprintf(stderr, "PARSER BUG: unput buffer overflow '%c' (0%o)\n",\r
+         if(appData.debugMode) fprintf(debugFP, "PARSER BUG: unput buffer overflow '%c' (0%o)\n",\r
                  ch, ch);\r
        unputBuffer[unputCount++] = ch;\r
     }\r