         }
 }
 
+// 以指定算子分隔的 many1 匹配
 func sepBy1<T, SepType, S:State>(p: Parsec<T, S>.Parser,
         sep:Parsec<SepType, S>.Parser)->Parsec<[T], S>.Parser {
     return {(state: S) throws ->[T] in

    }
}

postfix operator >? { }
postfix func >? <T, S:State>(x: Parsec<T, S>.Parser)  -> Parsec<T?, S>.Parser {
    return zeroOrOnce(x)
}

func sepBy<T, SepType, S:State>(p: Parsec<T, S>.Parser,
        sep:Parsec<SepType, S>.Parser)->Parsec<[T], S>.Parser {
        return {( state: S) throws -> [T] in

    }
}

// 匹配给定算子0到多次
func many<T, S:State >(p:Parsec<T, S>.Parser) -> Parsec<[T], S>.Parser {
    return {( state: S) throws -> [T] in
        var re = [T]()
