52 |
|
|
53 |
%pos int |
%pos int |
54 |
%verbose |
%verbose |
55 |
%arg (currentDir, error) : S.pathname * (pos * pos -> string -> unit) |
%arg (context, error, recParse, doMember) : |
56 |
|
S.context * |
57 |
|
(pos * pos -> string -> unit) * |
58 |
|
(S.pathname -> S.group) * |
59 |
|
(S.pathname * S.cm_symbol option -> S.members) |
60 |
%start description |
%start description |
61 |
%eop EOF |
%eop EOF |
62 |
%noshift EOF |
%noshift EOF |
81 |
description : alias (alias) |
description : alias (alias) |
82 |
| group (group) |
| group (group) |
83 |
|
|
84 |
alias : ALIAS pathname (S.alias pathname) |
alias : ALIAS pathname (recParse pathname) |
85 |
|
|
86 |
group : GROUP |
group : GROUP |
87 |
opt_perms exports IS members (S.group |
opt_perms exports IS members (S.group |
122 |
members : (* empty *) (S.emptyMembers) |
members : (* empty *) (S.emptyMembers) |
123 |
| member members (S.members (member, members)) |
| member members (S.members (member, members)) |
124 |
|
|
125 |
member : pathname (S.member (pathname, NONE)) |
member : pathname (doMember (pathname, NONE)) |
126 |
| pathname COLON sym (S.member (pathname, SOME sym)) |
| pathname COLON sym (doMember (pathname, SOME sym)) |
127 |
| IF exp guarded_members (S.guarded_members |
| IF exp guarded_members (S.guarded_members |
128 |
(exp, guarded_members)) |
(exp, guarded_members)) |
129 |
| ERROR (S.error_member ERROR) |
| ERROR (S.error_member ERROR) |
170 |
| FUNSIG ML_ID (S.ml_funsig ML_ID) |
| FUNSIG ML_ID (S.ml_funsig ML_ID) |
171 |
|
|
172 |
pathname : FILE_STANDARD (S.file_standard |
pathname : FILE_STANDARD (S.file_standard |
173 |
(FILE_STANDARD, currentDir)) |
(FILE_STANDARD, context)) |
174 |
| FILE_NATIVE (S.file_native |
| FILE_NATIVE (S.file_native |
175 |
(FILE_NATIVE, currentDir)) |
(FILE_NATIVE, context)) |