     if ass == .Right {
       prec = prec - 1
     }
-    while let ifx = getInfix(stream) {
+    while let ifx = infixOps.get(stream) {
       if ifx.prec > prec {
         lft = ifx.parse(self, stream, lft)!
       } else {
-        putBack(ifx)
+        infixOps.putBack(ifx)
         break
       }
     }

  }
}

class OperatorPrecedence<T> : Parser {
  typealias Target = T
  typealias ParseFunc  = CharStream -> T?

  let opFormat: CharStream -> String?

  var term: ParseFunc?
  private var infixParsers: [String:Infix<T>]

  init(opFormat: CharStream -> String?) {
    self.opFormat = opFormat
    term = nil
    infixParsers = [:]
  }

  func parse(stream:CharStream) -> T? {

  }

  func addInfix(name:String, _ ifx:Infix<T>) {
    infixOps.dict[name] = ifx
  }

  private func Term(stream:CharStream) -> T? {
