File: parse_options.mly

package info (click to toggle)
mldonkey 2.8.1-2etch1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 16,940 kB
  • ctags: 26,220
  • sloc: ml: 138,666; sh: 15,368; cpp: 12,076; ansic: 8,243; asm: 3,858; xml: 3,367; perl: 1,831; makefile: 259; python: 258
file content (46 lines) | stat: -rw-r--r-- 906 bytes parent folder | download
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
%{

open Type_options

%}
%token EOF 
%token <float> FLOAT 
%token <int64> INT 
%token <string> COMMENT 
%token <string> STRING 
%token <string> IDENT
%token <string> CHAR
%token EQUAL 
%token BEG_MOD 
%token END_MOD 
%token BEG_LIST 
%token END_LIST 
%token SEP_LIST 
%start main
%type <Type_options.file> main
%%
main:
  COMMENT main  { Comment ($1,$2) }  
| options main  { Options ($1,$2) }
| EOF    { Eof }
| END_MOD  { Eof }
;
options:
STRING EQUAL parse_options  { StringId ($1,$3) }
| IDENT EQUAL parse_options  { Id ($1,$3) }
;
parse_options:
BEG_MOD main       { ValModule $2 }
| BEG_LIST parse_list    { ValList $2 }
| IDENT        { ValIdent $1 }
| STRING      { ValString $1 }
| INT         { ValInt $1 }
| FLOAT        { ValFloat $1 }
| CHAR        { ValChar $1 }
;
parse_list:
parse_options SEP_LIST parse_list  { $1 :: $3 }
| parse_options END_LIST    { [ $1 ] }
| END_LIST        { [] }