File: mmcif.lex

package info (click to toggle)
python-biopython 1.68%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 46,860 kB
  • ctags: 13,237
  • sloc: python: 160,306; xml: 93,216; ansic: 9,118; sql: 1,208; makefile: 155; sh: 63
file content (62 lines) | stat: -rw-r--r-- 959 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
%option noyywrap
COMMENT					#.*\n
NAME					_[^ \t\n]+
LOOP					[Ll][Oo][Oo][Pp]_
DATA					[Dd][Aa][Tt][Aa]_[^ \t\n]+
FREE_VALUE				[^ \t\n]+
SINGLE_QUOTE_VALUE		'[^'\n]*'
DOUBLE_QUOTE_VALUE		\"[^"\n]*\"
SEMICOLON_VALUE			^;(.*\n[^;])*.*\n;	

/* 
Number code of the tokens is:

NAME 			(eg. _entity.id)		1
LOOP 			(loop_)					2
DATA			(eg. data_something)	3
SEMICOLON 		(eg. ;value\n;)	 		4	
DOUBLE QUOTE 	(eg. "value")			5
SINGLE QUOTE 	(eg. 'value')			6
FREE 			(eg. value )			7

*/

%%

{COMMENT}					/* ignore */			

{NAME}						{ return 1; }	

{LOOP}						{ return 2; }					

{DATA}						{ return 3;	}

{SEMICOLON_VALUE}			{ return 4; }	

{DOUBLE_QUOTE_VALUE}		{ return 5; }	

{SINGLE_QUOTE_VALUE}		{ return 6; }	

{FREE_VALUE}				{ return 7; }	

[ \t\n]+					/* ignore */

%%					


void mmcif_set_file(FILE *fp)
{
	yyin=fp;
}	

int mmcif_get_token(void)
{
	extern int yylex(void);
	return yylex();
}

char *mmcif_get_string(void)
{
	return yytext;
}