Полуэмпирические формулы
Posted on January 29, 2016 with tags: химия.
Полуэмпирические формулы могут содержать три оротогональных компонента: заряды фрагментов, функциональные группы и плейсхолдеры.
quantifier = nat > 1
signum = '+' | '-'
charge = '(' '+' + ')' | '(' '-' + ')' | '(' quantifier signum ')' | '(' signum quantifier ')'
isotope = '[' nat atom ']' | '[' atom ']'
placeholder = '[' [A..z][a..z]* `notElem` element table ']'
| '[' [A..z][a..z0..9]* ']'
atom = [A..Z][a..z]{0,2} `elem` element table
linker = '-' | '=' | '#'
halfempirical = linker{0,1} node linker{0,1} rest*
rest = node linker{0,1}
unchargednode = isotope quantifier{0,1}
| atom quantifier{0,1}
| '(' linker{0,1} unchargednode ')' quantifier{0,1}
node = isotope charge{0,1} quantifier{0,1}
| atom charge{0,1} quantifier{0,1}
| '(' halfempirical ')' charge{0,1} quantifier{0,1}