2009-03-20 conditions (draft)

comparation = { dpcomparation | lvcomparation | stringcomparation }
  dpcomparation = dpexpression  "<" | "<=" | ">" | ">=" | "==" | "!=" dpexpression 
  lvcomparation = lvexpression  "<" | "<=" | ">" | ">=" | "==" | "!=" lvexpression 
  stringcomparation = """ string """ "<" | "<=" | ">" | ">=" | "==" | "!=" """ string """

logicexpression = ["!"] logicterm { "&&"  ["!"] logicterm }
  logicterm = logicfactor { "||" logicfactor } 
    logicfactor = comparation | logicfunction | logicconstant | "(" logicexpression ")"  
      logicfunction = name "(" logicexpression {"," logicexpression} ")"
         name    = "a"|..|"z" {"a"|..|"z"|"0"|..|"9"}
      logicconstant = name

dpcondition = logicexpression "?"  dpexpression ":" dpexpression

lvcondition = logicexpression "?"  lvexpression ":" lvexpression

stringcondition = logicexpression "?" """ string """ ":" """ string """