Correctly cast uid and gid sentinel values.
[fwd] / grammar
CommitLineData
ec4bb216 1Basic syntax
2 file ::= empty | file stmt [`;']
3 stmt ::= option-stmt | fw-stmt
4 fw-stmt ::= `fw' source options [`to'|`->'] target options
5 options ::= `{' option-seq `}'
6 option-seq ::= empty | option-stmt [`;'] option-seq
7
8Option syntax
9 option-stmt ::= q-option
10 q-option ::= option
11 | prefix `.' q-option
12 | prefix `{' option-seq `}'
13 prefix ::= word
14
15File source and target
16 source ::= file
17 target ::= file
18 file ::= `file' [`.'] fspec [`,' fspec]
19 fspec ::= fd-spec | name-spec | null-spec
20 fd-spec ::= [[`:']`fd'[`:']] number|`stdin'|`stdout'
21 name-spec ::= [[`:']`file'[`:']] file-name
22 file-name ::= path-seq | [ path-seq ]
23 path-seq ::= path-elt | path-seq path-elt
24 path-elt ::= `/' | word
25 null-spec ::= [`:']`null'[`:']
26
27Exec source and target
28 source ::= exec
29 target ::= exec
30 exec ::= `exec' [`.'] cmd-spec
31 cmd-spec ::= shell-cmd | [prog-name] `[' argv0 arg-seq `]'
32 arg-seq ::= word | arg-seq word
33 shell-cmd ::= word
34 argv0 ::= word
35
36Socket source and target
37 source ::= socket-source
38 target ::= socket-target
39 socket-source ::= [`socket'[`.']] [[`:']addr-type[`:']] source-addr
40 socket-target ::= [`socket'[`.']] [[`:']addr-type[`:']] target-addr
41
42 inet-source-addr ::= [port] port
43 inet-target-addr ::= address [`:'] port
44 address ::= addr-elt | address addr-elt
45 addr-elt ::= `.' | word
46
47 unix-source-addr ::= file-name
48 unix-target-addr ::= file-name
49
50File attributes (`fattr')
51 prefix.fattr.mode [=] mode
52 prefix.fattr.owner [=] user
53 prefix.fattr.group [=] group
54
55File options
56 file.create [=] yes|no
57 file.open [=] no|truncate|append
58 file.fattr.*
59
60Exec options
61 exec.logging [=] yes|no
62 exec.dir [=] file-name
63 exec.root [=] file-name
64 exec.user [=] user
65 exec.group [=] group
66 exec.rlimit.limit[.hard|.soft] [=] value
67 exec.env.clear
68 exec.env.unset var
69 exec.env.[set] var [=] value
70
71Socket options
af638e66 72 socket.conn [=] number|unlimited|one-shot
ec4bb216 73 socket.logging [=] yes|no
74 socket.inet.[allow|deny] [from] address [/ address]
75 socket.unix.fattr.*