X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=parser.l;h=53b568f29b2a8930df326612e3c62607345016b5;hb=e54045072f6e157b46a33104b8094cf9857f875d;hp=348bd1599b30e44157614a66e0d17bcc8c2f7b5c;hpb=d6a5884d9a6af414ed26d5b70a1b3dcf131b1e9c;p=xboard.git diff --git a/parser.l b/parser.l index 348bd15..53b568f 100644 --- a/parser.l +++ b/parser.l @@ -232,7 +232,7 @@ extern void CopyBoard P((Board to, Board from)); currentMoveString[2] - AAA >= BOARD_RGHT || currentMoveString[0] - AAA < BOARD_LEFT || currentMoveString[2] - AAA < BOARD_LEFT ) - return 0; + return ImpossibleMove; piece = boards[yyboardindex] [currentMoveString[1] - ONE][currentMoveString[0] - AAA]; @@ -300,7 +300,7 @@ extern void CopyBoard P((Board to, Board from)); currentMoveString[2] - AAA >= BOARD_RGHT || currentMoveString[0] - AAA < BOARD_LEFT || currentMoveString[2] - AAA < BOARD_LEFT ) - return 0; + return ImpossibleMove; result = LegalityTest(boards[yyboardindex], PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: might think we can e.p.! @@ -325,7 +325,7 @@ extern void CopyBoard P((Board to, Board from)); return (int) result; } -[a-l][0-9]((=?\(?[A-Z]\)?)|=)? { +[a-l][0-9]((=?\(?[A-Za-z]\)?)|=)? { /* * Pawn move, possibly with promotion */ @@ -343,14 +343,14 @@ extern void CopyBoard P((Board to, Board from)); cl.ffIn = yytext[0] - AAA; cl.rtIn = yytext[1] - ONE; cl.ftIn = yytext[0] - AAA; - c = cl.promoCharIn = yytext[2+skip]; + c = cl.promoCharIn = ToLower(yytext[2+skip]); /* [HGM] do not allow values beyond board size */ if(cl.rtIn >= BOARD_HEIGHT || cl.rtIn < 0 || cl.ffIn >= BOARD_RGHT || cl.ftIn < BOARD_LEFT ) - return 0; + return ImpossibleMove; if(c != '=' && c != '+' && c != NULLCHAR && CharToPiece(c) == EmptySquare) return IllegalMove; @@ -405,7 +405,7 @@ extern void CopyBoard P((Board to, Board from)); cl.ffIn < BOARD_LEFT || cl.ftIn >= BOARD_RGHT || cl.ftIn < BOARD_LEFT ) - return 0; + return ImpossibleMove; if(c != '=' && c != '+' && c != NULLCHAR && CharToPiece(c) == EmptySquare) return IllegalMove; @@ -455,7 +455,7 @@ extern void CopyBoard P((Board to, Board from)); currentMoveString[2] - AAA >= BOARD_RGHT || currentMoveString[0] - AAA < BOARD_LEFT || currentMoveString[2] - AAA < BOARD_LEFT ) - return 0; + return ImpossibleMove; if (gameInfo.variant == VariantXiangqi && /* [HGM] In Xiangqi rank stays same */ currentMoveString[0] != currentMoveString[2] ) { @@ -579,7 +579,7 @@ extern void CopyBoard P((Board to, Board from)); cl.rtIn < 0 || cl.ftIn >= BOARD_RGHT || cl.ftIn < BOARD_LEFT ) - return 0; + return ImpossibleMove; Disambiguate(boards[yyboardindex], PosFlags(yyboardindex), &cl); @@ -639,7 +639,7 @@ extern void CopyBoard P((Board to, Board from)); cl.rtIn < 0 || cl.ftIn >= BOARD_RGHT || cl.ftIn < BOARD_LEFT ) - return 0; + return ImpossibleMove; Disambiguate(boards[yyboardindex], PosFlags(yyboardindex), &cl); @@ -777,7 +777,7 @@ extern void CopyBoard P((Board to, Board from)); /* [HGM] do not allow values beyond board size */ if(currentMoveString[3] - ONE >= BOARD_HEIGHT || currentMoveString[2] - AAA >= BOARD_WIDTH ) - return 0; + return ImpossibleMove; if (WhiteOnMove(yyboardindex)) { currentMoveString[0] = ToUpper(yytext[0]);