diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2008-02-22 07:03:50 +0000 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2008-02-22 07:03:50 +0000 |
commit | e45f50b55e2bcc64909d2a22698060a6eb6c2f5f (patch) | |
tree | 08e6d036da2a782b376c8f834734c5a16ceef549 | |
parent | 32675e1b3732c23cb1255f494520ddc6262fc2ea (diff) | |
download | rsyslog-e45f50b55e2bcc64909d2a22698060a6eb6c2f5f.tar.gz rsyslog-e45f50b55e2bcc64909d2a22698060a6eb6c2f5f.tar.xz rsyslog-e45f50b55e2bcc64909d2a22698060a6eb6c2f5f.zip |
begin to add ABNF for config file as whole
-rw-r--r-- | doc/expression.html | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/doc/expression.html b/doc/expression.html index b10b5c3d..05f2b789 100644 --- a/doc/expression.html +++ b/doc/expression.html @@ -9,7 +9,7 @@ far, they are supported for filtering messages.</p><p>C-like comments (/* some c <h2>Formal Definition</h2> <p>Below is the formal definition of expression format (in ABNF, RFC 2234):<br> -</p><pre>if_stmt := "if" expr "then" # an aid, not part of expression itself<br><br>expr := e_and *("or" e_and)<br>e_and := e_cmp *("and" e_cmp)<br>e_cmp := val 0*1(cmp_op val)<br>val := term *(("+" / "-") term)<br>term := factor *(("*" / "/" / "%") factor)<br>factor := ["not"] ["-"] terminal<br>terminal := var / constant / function / ( "(" expr ")" )<br>function := name "(" *("," expr) ")"<br>var := "$" varname<br>varname := msgvar / sysvar<br>msgvar := name<br>sysvar := "$" name<br>name := alpha *(alnum)<br>constant := string / number<br>string := simpstr / tplstr ; tplstr will be implemented in next phase<br>simpstr := "'" *char "'" ; use your imagination for char ;)<br>tplstr := '"' template '"' ; not initially implemented<br>number := ["-"] 1*digit ; 0nn = octal, 0xnn = hex, nn = decimal<br>cmp_op := "==" / "!=" / "<>" / "<" / ">" / "<=" / ">=" / "contains" / "startswith"<br>digit := %x30-39<br>alpha := "a" ... "z" # all letters<br>alnum :* alpha / digit / "_"<br></pre> +</p><pre>; The stuff immediately below here is a quick shot at how the config<br>; file ABNF *at whole* may look like. That is not really related to<br>; expressions, but for the time being I put it here. It will later be<br>; moved to a more appropriate place. -- rgerhards, 2008-02-22<br>if_stmt := "if" expr "then"<br><br>; and now the actual expression<br>expr := e_and *("or" e_and)<br>e_and := e_cmp *("and" e_cmp)<br>e_cmp := val 0*1(cmp_op val)<br>val := term *(("+" / "-") term)<br>term := factor *(("*" / "/" / "%") factor)<br>factor := ["not"] ["-"] terminal<br>terminal := var / constant / function / ( "(" expr ")" )<br>function := name "(" *("," expr) ")"<br>var := "$" varname<br>varname := msgvar / sysvar<br>msgvar := name<br>sysvar := "$" name<br>name := alpha *(alnum)<br>constant := string / number<br>string := simpstr / tplstr ; tplstr will be implemented in next phase<br>simpstr := "'" *char "'" ; use your imagination for char ;)<br>tplstr := '"' template '"' ; not initially implemented<br>number := ["-"] 1*digit ; 0nn = octal, 0xnn = hex, nn = decimal<br>cmp_op := "==" / "!=" / "<>" / "<" / ">" / "<=" / ">=" / "contains" / "startswith"<br>digit := %x30-39<br>alpha := "a" ... "z" # all letters<br>alnum :* alpha / digit / "_"<br></pre> <p>[<a href="rsyslog_conf.html">rsyslog.conf overview</a>] [<a href="manual.html">manual index</a>] [<a href="http://www.rsyslog.com/">rsyslog site</a>]</p> <p><font size="2">This documentation is part of the |