55 |
%arg (context, error, recParse, doMember) : |
%arg (context, error, recParse, doMember) : |
56 |
S.context * |
S.context * |
57 |
(pos * pos -> string -> unit) * |
(pos * pos -> string -> unit) * |
58 |
(S.pathname -> S.group) * |
(pos * pos -> S.pathname -> S.group) * |
59 |
(S.pathname * S.cm_symbol option -> S.members) |
(S.pathname * pos * pos * 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 (recParse pathname) |
alias : ALIAS pathname (recParse |
85 |
|
(pathnameleft, pathnameright) |
86 |
|
pathname) |
87 |
|
|
88 |
group : GROUP |
group : GROUP |
89 |
opt_perms exports IS members (S.group |
opt_perms exports IS members (S.group |
124 |
members : (* empty *) (S.emptyMembers) |
members : (* empty *) (S.emptyMembers) |
125 |
| member members (S.members (member, members)) |
| member members (S.members (member, members)) |
126 |
|
|
127 |
member : pathname (doMember (pathname, NONE)) |
member : pathname (doMember (pathname, |
128 |
| pathname COLON sym (doMember (pathname, SOME sym)) |
pathnameleft, |
129 |
|
pathnameright, |
130 |
|
NONE)) |
131 |
|
| pathname COLON sym (doMember (pathname, |
132 |
|
pathnameleft, |
133 |
|
pathnameright, |
134 |
|
SOME sym)) |
135 |
| IF exp guarded_members (S.guarded_members |
| IF exp guarded_members (S.guarded_members |
136 |
(exp, guarded_members)) |
(exp, guarded_members)) |
137 |
| ERROR (S.error_member ERROR) |
| ERROR (S.error_member ERROR) |