2012-07-17 63 views
0

我想解析並獲取大括號內的內容,實際上如下所示。字符串解析目標C

-(void)testfunction 
{ 
    //do something 
    integer myVal = 0; 
    NSString *testString = @"Test"; 

    myVal = [someObject test]; 
    if(myVal >10) 
    { 
     NSLog(@"Test Succeed"); 
    } 
    else 
    { 
     NSLog(@"Test Succeed"); 
     if(testString) 
     { 
      NSLog("Still"); 
     } 
    } 
} 

我期待輸出作爲testFunction中的所有文本。

有沒有更簡單的邏輯來解析?

我正在使用NSString並開發用於MAC OS而不是iPhone。

問候, Nirav

+0

我建議您嘗試搜索編譯器教程,並瞭解解析代碼如何在編譯器中工作。 – 2012-07-17 08:44:06

+0

我瞭解編譯器!正在考慮是否有更簡單的Mac-OS解決方案或客觀的C – Nirav 2012-07-17 08:50:46

+0

它是否應該能夠處理包含'{}'的註釋,字符串等?那麼你可能需要一個適當的解析器。如果函數總是以'{}'作爲行中的第一個字符開始,那麼您可能會得到一些正則表達式/子字符串破解。它將用於什麼? – 2012-07-17 10:02:25

回答

1

你必須做的是建立識別功能的啓動程序,直到它到達右括號中,編譯器基本上是讀取它。

最簡單的方法可能是使用正則表達式來查找函數頭,然後逐行讀取(或char char)計算開始和結束大括號。請記住,您閱讀的代碼可能並不總是格式良好,並且右括號實際上可能在代碼和/或評論之前和之後的中間。

+0

感謝Joachim。我幾乎實施了同樣的事情。我正在計算開始和結束括號。不管怎麼說,多謝拉。 – Nirav 2012-07-17 10:13:34

1

解析NSString的基本構造塊是類。

更基本的是純C風格的strtok()