summaryrefslogtreecommitdiffstats
path: root/doc/expression.html
blob: 5fda4915593dbc7682165c906a259f475f064107 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="Content-Language" content="en"><title>Expressions</title>

</head>
<body>
<h1>Expressions</h1>
<p>Rsyslog supports expressions at a growing number of places. So
far, they are supported for filtering messages.</p>
<p></p>
<h2>Formal Definition</h2>

<p>Below is the formal definition of expression format (in ABNF, RFC 2234):<br>
</p><pre>expr     := e_and *("or" e_and)<br>e_and    := e_cmp *("and" e_cmp)<br>e_cmp    := val 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<br>cmp_op   := "==" / "!=" / "&lt;&gt;" / "&lt;" / "&gt;" / "&lt;=" / "&gt;=" <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
<a href="http://www.rsyslog.com/">rsyslog</a>
project.<br>
Copyright © 2008 by <a href="http://www.gerhards.net/rainer">Rainer
Gerhards</a> and
<a href="http://www.adiscon.com/">Adiscon</a>.
Released under the GNU GPL version 3 or higher.</font></p>
</body></html>