ec4bb216 |
1 | Basic 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 | |
8 | Option syntax |
9 | option-stmt ::= q-option |
10 | q-option ::= option |
11 | | prefix `.' q-option |
12 | | prefix `{' option-seq `}' |
13 | prefix ::= word |
14 | |
15 | File 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 | |
27 | Exec 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 | |
36 | Socket 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 | |
50 | File attributes (`fattr') |
51 | prefix.fattr.mode [=] mode |
52 | prefix.fattr.owner [=] user |
53 | prefix.fattr.group [=] group |
54 | |
55 | File options |
56 | file.create [=] yes|no |
57 | file.open [=] no|truncate|append |
58 | file.fattr.* |
59 | |
60 | Exec 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 | |
71 | Socket 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.* |