Update docco for new options.
[fwd] / grammar
CommitLineData
ec4bb216 1Basic syntax
1c2054c7 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
ec4bb216 7
8Option syntax
1c2054c7 9 OPTION-STMT ::= Q-OPTION
10 Q-OPTION ::= OPTION
11 | PREFIX `.' Q-OPTION
12 | PREFIX `{' OPTION-SEQ `}'
13 PREFIX ::= WORD
ec4bb216 14
15File source and target
1c2054c7 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'[`:']
ec4bb216 26
27Exec source and target
1c2054c7 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
ec4bb216 35
36Socket source and target
1c2054c7 37 SOURCE ::= SOCKET-SOURCE
38 TARGET ::= SOCKET-TARGET
39 SOCKET-SOURCE ::= [`socket'[`.']] [[`:']ADDR-TYPE[`:']] SOURCE-ADDR
40 SOCKET-TARGET ::= [`socket'[`.']] [[`:']ADDR-TYPE[`:']] TARGET-ADDR
ec4bb216 41
1c2054c7 42 INET-SOURCE-ADDR ::= [`port'] PORT
43 INET-TARGET-ADDR ::= ADDRESS [`:'] PORT
44 ADDRESS ::= ADDR-ELT | ADDRESS ADDR-ELT
45 ADDR-ELT ::= `.' | WORD
ec4bb216 46
1c2054c7 47 UNIX-SOURCE-ADDR ::= FILE-NAME
48 UNIX-TARGET-ADDR ::= FILE-NAME
ec4bb216 49
50File attributes (`fattr')
1c2054c7 51 PREFIX.fattr.mode [=] MODE
52 PREFIX.fattr.owner [=] USER
53 PREFIX.fattr.group [=] GROUP
ec4bb216 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
1c2054c7 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
ec4bb216 67 exec.env.clear
1c2054c7 68 exec.env.unset VAR
69 exec.env.[set] VAR [=] VALUE
ec4bb216 70
71Socket options
1c2054c7 72 socket.conn [=] NUMBER|unlimited|one-shot
ec4bb216 73 socket.logging [=] yes|no
1c2054c7 74
75 socket.inet.source.[allow|deny] priv-port
76 socket.inet.source.[allow|deny] [host] ADDR [/ ADDR]
77 socket.inet.source.addr [=] any|ADDR
78 socket.inet.dest.addr [=] any|ADDR
79
80 socket.unix.source.fattr.*