jweinst1
4/11/2016 - 5:25 PM

geeniparser.swift

let GeeniTrie:NSObject = [
    "i":[
        "need":[
            "a":[
                "**ARG**":"[request]"]]]]



func ParseSentence(statement:String) -> [String: String] {
    var datadict = [String:String]()
    var arguments = [String]()
    let words = statement.componentsSeparatedByString(" ")
    var current = GeeniTrie
    for word in words {
        if let template = current.valueForKey(word) {
            current = template as! NSObject
        }
        else if let template = current.valueForKey("**ARG**") {
            arguments.append(word)
            current = template as! NSObject
        }
        else {
            datadict["Error"] = "Statement Not Recognized"
        }
    }
    datadict[current as! String] = arguments[0]
    return datadict
}
let start = NSDate()
ParseSentence("i need a tutor")
//["[request]": "tutor"]
NSDate().timeIntervalSinceDate(start)
//0.01180499792098999