X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xshogi%2Fparser.y;fp=xshogi%2Fparser.y;h=0d2784b680f74a659cf543bf64033205b2ac665e;hb=1aca00e04580e7b3effefa535edb469876ecce74;hp=33f8212fddbe3f526fe8571918c873619214f648;hpb=8ae7e7d1b257ef36d8a9fd1cd88807954ef10764;p=gnushogi.git diff --git a/xshogi/parser.y b/xshogi/parser.y index 33f8212..0d2784b 100644 --- a/xshogi/parser.y +++ b/xshogi/parser.y @@ -15,7 +15,7 @@ * Modified implementation of ISS mode for XShogi: Matthias Mutz * Current maintainer: Michael C. Vanier * - * XShogi borrows its piece bitmaps from CRANES Shogi. + * XShogi borrows some of its piece bitmaps from CRANES Shogi. * * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. * Enhancements Copyright 1992 Free Software Foundation, Inc. @@ -92,7 +92,8 @@ extern void MakeMove(ShogiMove *move_type, int from_x, int from_y, %} %start goal -%token PROMOTE DROPS PIECE SQUARE NUMBER COMMENT COLON +%token PROMOTE DROPS PIECE SQUARE NUMBER COMMENT COLON +%token BLACK_WINS WHITE_WINS DRAW %union { int val; char* string; } @@ -170,12 +171,28 @@ extern void MakeMove(ShogiMove *move_type, int from_x, int from_y, strcpy(moveList[currentMove], currentMoveString); MakeMove(&move_type, from_x, from_y, to_x, to_y); } + | BLACK_WINS + { + loaded_game_finished = 1; + DisplayMessage("Black wins", False); + } + | WHITE_WINS + { + loaded_game_finished = 1; + DisplayMessage("White wins", False); + } + | DRAW + { + loaded_game_finished = 1; + DisplayMessage("Draw", False); + } ; promotion: | PROMOTE - { move_type = (BlackOnMove(currentMove) ? BlackPromotion : WhitePromotion); - strcat(currentMoveString,"+"); } + { move_type = (BlackOnMove(currentMove) + ? BlackPromotion : WhitePromotion); + strcat(currentMoveString,"+"); } ; %%