BNF Grammar of
Health Examination Automatic Logic System (HEALS) CDSS Rules
By Kuan-Liang Kuo ([email protected]) May 10, 2006
Rev.: Sep. 6, 2009
declaration ::= limit_declaration | range_declaration | clause_declaration | rule_declaration
limit_declaration ::= limitdef limit_name limit range_declaration ::= rangedef range_name range clause_declaration ::= clausedef clause_name clauses rule_declaration ::= ruledef rule_name rules
limit_name ::= symbol range_name ::= symbol clause_name ::= symbol rule_name ::= symbol
limit ::= symbol comparison_operator value
range ::= symbol left_bracket low separator high right_bracket
clauses ::= clause_constraint
| clauses || clause_constraint
rules ::= rule_constraint
| rules && rule_constraint
comparison_operator ::=
== | != | > | >= | <= | <
negation_operator ::= !
symbol ::= symbol_head symbol_tail_chars value ::= decimal | symbol | string
low ::= value
separator ::= , | space high ::= value
left_bracket ::= ( | [
right_bracket ::= ) | ]
clause_constraint ::= clause_name
| limit_name
| range_name
| negation_operator clause_constraint
rule_constraint ::= rule_name | clause_name
| limit_name
| range_name
| negation_operator clause_constraint
symbol_head ::= letter | underline
symbol_tail_char ::= letter | digit | underline
symbol_tail_chars ::= symbol_tail_char | symbol_tail_chars symbol_tail_char
letter ::= A | B | .. | Z | a | b | .. | z underline ::= _
digit ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 decimal ::= digits[dot digits]
digits ::= digit | digits digit dot ::= .
String ::= quote char_list quote Quote ::= “
char_list ::= any combination of valid characters