Formal grammar for relational
expressions
For completeness, the following productions formalize the
process by which coNCePTuaL parses
relational expressions:
<rel_expr> |
::= |
<rel_disj_expr>
|
<rel_disj_expr> |
::= |
[<rel_disj_expr> ‘\/’] <rel_conj_expr>
|
<rel_conj_expr> |
::= |
[<rel_conj_expr> ‘/\’] <rel_primary_expr>
|
<rel_primary_expr> |
::= |
<eq_expr>
|
|
| |
‘(’ <rel_expr> ‘)’
|
<eq_expr> |
::= |
<expr>
‘=’
<expr>
|
|
| |
<expr>
‘<’ <expr>
|
|
| |
<expr>
‘>’ <expr>
|
|
| |
<expr>
‘<=’ <expr>
|
|
| |
<expr>
‘>=’ <expr>
|
|
| |
<expr>
‘<>’ <expr>
|
|
| |
<expr>
DIVIDES <expr>
|
|
| |
<expr>
IS EVEN
|
|
| |
<expr>
IS ODD
|
|
| |
<expr>
IS IN ‘[’ <expr>
‘,’
<expr>
‘]’
|
|
| |
<expr>
IS NOT IN
‘[’ <expr>
‘,’
<expr>
‘]’
|
Scott Pakin, pakin@lanl.gov