contesto *)
| LET <vvar> BE <string-set> IN <set> (* assegnamento a value-var
in contesto*)
- | RELATION <refine_op> <quoted-constant-string> <set> ATTR <vvar-list>
+ | RELATION <refine_op> <quoted-constant-string-path> <set> ATTR <vvar-list>
(* unione insieme risorse in
relazione specificata con le
risorse in set, ognuna con
| <set> INTERSECT <set> (* intersezione *)
| <set> DIFF <set> (* differenza *)
-<refine_op> := <quoted-constant-string-set> (* relazione (proprieta')
- strutturata *)
+<refine_op> := "" (* relazione (proprieta') *)
| SUB (* proprieta' e
sotto-proprieta' *)
| SUPER (* proprieta' e
super-proprieta' *)
-<quoted-constant-string-set> := ""
- | <quoted-constant-string>
- | <quoted-constant-string> <quoted-constant-string-set>
- (* insieme di stringhe *)
+<quoted-constant-string-path> := <quoted-constant-string>
+ (* relazione (proprieta') *)
+ | <quoted-constant-string> "/" <quoted-constant-string-path>
+ (* insieme di stringhe:
+ proprieta' strutturata *)
<vvar-list> := <vvar>
| <vvar> , <vvar-list>
insiemi stringhe *)
| EX <bool> (* existential on attributes
of references *)
-<string-set> := {} (* insieme vuoto*)
+<string-set> := ( <string-set> ) (* parentesizzazione *)
+ | {} (* insieme vuoto*)
| <quoted-constant-string> (* stringa singoletto *)
| {<quoted-constant-string-list>}(* insieme stringhe *)
| REFOF <set> (* insieme riferimenti *)