[SOLVED] CS flex /* DO NOT REMOVE THIS LINE */

$25

File Name: CS_flex_/*_DO_NOT_REMOVE_THIS_LINE______________________*/.zip
File Size: 546.36 KB

5/5 - (1 vote)

/* DO NOT REMOVE THIS LINE*/
/**/
/* Notation program */
/* @(#)lexer.l3.9 (C) Henry Thomas Release 3 Dated 12/10/91 */
/**/
%{
#include

#include chesstype.h
#includenotation.h

#define NCURLINE 1024
char curline [NCURLINE] ;

#define LARGE_BUF 4096
static char commbuf[LARGE_BUF];

int column = 0;
int lineno = 1;

#ifdef __STDC__
static char * comment(int closing);
#else
static char * comment();
#endif

%}

LEXSHORT [-+!?#]
LEXLONG[-+=/\^&*~<>_|#]

%%
[Oo0]-?[Oo0](-?[Oo0])? { /* roque */ ; parse_roque(yytext); }
[0-9]+[.]?{ /* move number */ parse_number(yytext); }
[A-Z]?([a-z]([1-8])?)?[-xX]?[a-z][1-8]=?[A-Z]?{ /* move */
(void) parse_move(yytext);
/*; fprintf(stderr,%s, ,yytext);*/
}

{LEXLONG}{LEXLONG}{LEXLONG} { /* comment */ ;
parse_comment(yytext); }
{LEXLONG}{LEXLONG}{ /* comment */ ;
parse_comment(yytext); }
{LEXSHORT}{LEXSHORT}{ /* comment */ ;
parse_comment(yytext); }
{LEXLONG} { /* comment */ ;
parse_comment(yytext); }
{LEXSHORT}{ /* comment */ ; parse_comment(yytext); }
(.){ /* comment */ ; parse_comment(yytext); }
(*){ /* comment */ ; parse_comment(yytext); }
(^){ /* comment */ ; parse_comment(yytext); }
[+]{ /* comment */ ; parse_comment(yytext); }
(){ /* comment */ ; parse_comment(yytext); }
[]{ /* comment */ ; parse_comment(yytext); }
o..o{ /* comment */ ; parse_comment(yytext); }
oo{ /* comment */ ; parse_comment(yytext); }
o/o { /* comment */ ; parse_comment(yytext); }
@^ { /* comment */ ; parse_comment(yytext); }
etc { /* comment */ ; parse_comment(etc); }
ep|e.p. { /* comment */ ; parse_comment(ep); }
$[a-z][a-z][a-z] { /* game comment */ ; parse_comment(yytext); }
@[a-z]+{{ /* keyword with arg */
yytext[yyleng -1] = ;
parse_keyword(yytext, comment(}));
}
@[a-z]+{ /* keyword without arg */
parse_keyword(yytext,NULL); }
[{ parse_text(comment(])); }
({ parse_text(comment())); }
{{ /* enter variation */ ; enter_variation(); }
}{ /* close variation */ ; exit_variation(); }
[,;.]{ /* skip , ; */ ; }
[ tv
f] { /* skip blanks */; }
.{ /* ignore bad characters */ (void) fprintf(stderr,I dont understand: %s
,yytext);}
%%

#ifdef FLEX_SCANNER
#undef yywrap
#endif
#ifdef __STDC__
int yywrap(void)
#else
int yywrap()
#endif
{
return(1);
}

/* this procedure store comments in the text array commbuf
Escape char are allowed for putting the end-of-comment symbol
in the buffer
*/
#ifdef __STDC__
static char * comment(int closing)
#else
static char * comment(closing)
char closing;
#endif
{
register char c;
register int i=0;

while ( ((c = input()) != closing)&& (c != 0) && (c != EOF)) {
commbuf[i] = c;
if (i

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] CS flex /* DO NOT REMOVE THIS LINE */
$25