OCLint ASTMatcher-Regel. Passende NS_ENUM

9

Ich versuche, eine OCLint-Regel zu erstellen, die den beiden Deklarationen typedef enum und typedef NS_ENUM entspricht, mit wenig Erfolg. Ich habe eine Objective-C-Datei (TestClass.m) mit folgenden enum-Deklarationen:

%Vor%

Dumping der AST mit diesem Befehl:

%Vor%

Gibt mir diese Ausgabe mit folgendem Inhalt:

%Vor%

Ich habe eine ASTMatcherRule (ObjCNsEnumRule), in der ich versuche, sowohl typedef enum als auch typedef NS_ENUM zu finden. Hier ist der Code dafür:

%Vor%

Beim Ausführen dieser Regel erhalte ich jedoch nur die Ausgabe für die Deklaration typedef enum .

%Vor%

Was mache ich hier falsch? Beide Enums werden im AST-Dump angezeigt, in der OCLint-Regel jedoch nur eins.

Bearbeiten

Ich denke, dass das mit dem AST Dump zu tun haben mag, der die EnumDecl für die NS_ENUM wie in einer anderen Quelldatei definiert (wahrscheinlich wegen des NS_ENUM Makros) anzeigt, da ich die Typedef, aber nicht die enumdecl.

    
danielbeard 20.04.2015, 17:29
quelle

1 Antwort

0

Es sieht nicht so aus, als ob es momentan eine Möglichkeit gibt, dies in Oklint zu tun. Makros unterliegen keinen Oclint-Regeln für die Regeln ASTVisitor oder ASTMatcher . Siehe hier: Ссылка

Ich habe dies als eine einfache SourceCodeReaderRule implementiert, wie folgt:

%Vor%     
danielbeard 14.08.2015, 18:03
quelle