2013-01-24 60 views
0

我希望能夠將輸入字符串標記爲一個數組(或者一些有效的方法,對建議開放),這將允許我輕鬆地解釋和修改給定的輸入。NSScanner到NSArray輸入計算

例如,假設我們正在處理一個計算器,輸入是

55+63.7/7-(6+5)/9+(3-6.5)/(5-2) 

我需要創建一個數組或一系列標記,這將是像

{"55","+","63.7","/","7","-","(","6","+","5","... } 

最佳實踐?我試過尋找parseKit和NSScanner,兩者似乎都很合理,但我想要一個例子,如果可能的話,截斷讓這個東西正常工作所需的時間。

編輯:

基本上就是我要的是簡單的設定「分析器」的邏輯......

如果我要建立一個完整的解析器/掃描器我自己,我可以,用僞代碼像

char c 
NSMutableString temp 
NSMutableArray parsed 
For each c in input { 
    if is_number(c) 
     while is_number(c) 
      add c to temp 
     parsed addObject:temp 
     reset temp 
    if is_operation(c) //single character operations like +, -, /, 
     add c to temp 
     parsed addObject:temp 
     reset temp 
    if is_letter(c) 
     while is_letter(c) 
      add c to temp 
     if is_keyword(temp) //like sin, cos, tan 
      parsed addObject:temp 
     else 
      input misunderstood //not necessary, really, just useful 
     reset temp 
    } 
+0

有什麼不對的parsekit主頁上的例子嗎? –

+0

目前還不清楚你要求什麼。請更準確地說明您需要什麼信息才能做出決定。 –

+0

@CarlNorum我寧願不必下載第三方應用程序來完成這個任務......我希望NSScanner足夠了,或者另一個選項,不需要添加我不確定的九個框架將永久支持... – Meshach

回答

0

我認爲你是對的。你想要的頂級構建是一個簡單的遞歸體面分析器。我剛剛創建了一個儘可能簡單的Bencoding解析器。也許你可以得到一對夫婦的想法

https://github.com/mmick66/KDBencoding