fixed parser error for knight move
authorH.G. Muller <h.g.muller@hccnet.nl>
Sun, 12 Jul 2009 01:20:56 +0000 (18:20 -0700)
committerArun Persaud <arun@nubati.net>
Sun, 12 Jul 2009 01:20:56 +0000 (18:20 -0700)
The parser had a strange quirk: it recognized bd2 as a valid Knight move
(Nb1-d2) while this SAN format should be reserved for Pawn moves only.

parser.l

index 29a2fa9..0d60813 100755 (executable)
--- a/parser.l
+++ b/parser.l
@@ -470,9 +470,13 @@ extern void CopyBoard P((Board to, Board from));
     if (WhiteOnMove(yyboardindex)) {\r
         if (yytext[2+skip] == ONE) return (int) ImpossibleMove;\r
        currentMoveString[1] = yytext[2+skip] - 1;\r
+       if(boards[yyboardindex][currentMoveString[1]-ONE][currentMoveString[0]-AAA] != WhitePawn) \r
+               return ImpossibleMove;\r
     } else {\r
         currentMoveString[1] = currentMoveString[3] + 1;\r
         if (currentMoveString[3] == ONE+BOARD_HEIGHT-1) return (int) ImpossibleMove;\r
+       if(boards[yyboardindex][currentMoveString[1]-ONE][currentMoveString[0]-AAA] != BlackPawn) \r
+               return ImpossibleMove;\r
     }\r
     if (yyleng-skip > 3) {\r
        if (yytext[yyleng-1] == ')')\r