2012-07-17 61 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()