3 Stimmen

Analysieren von Java-Quelldateien mit Python

Ich habe eine Menge Java-Quellcodedateien. Ich muss ein Python-Skript schreiben, das die Quelldateien durchläuft und alle Zeichenfolgenliterale sowie ihren Speicherort identifiziert.

Das Problem ist, dass die Zeichenfolgen in verschiedenen Formen vorliegen könnten, wie zum Beispiel:

  1. Zeichenfolgenliteral - "Hallo Welt"
  2. Kombination von Literalen - "Hallo" + "Welt"

Ich habe ein paar Ideen gefunden, um dies zu erreichen:

  1. Gehe zeilenweise durch die Quelldateien und suche nach " und verwende dies, um den Speicherort einer Zeichenfolge zu identifizieren
  2. Verwende einen regulären Ausdruck

Haben Sie Kommentare zu den von mir vorgeschlagenen Methoden oder einer anderen Methode, an die ich nicht gedacht habe?

Falls Sie sich fragen, wir führen eine Internationalisierung in unserem Codebasis durch. Deshalb versuche ich, diesen Prozess zu automatisieren.

3voto

igni Punkte 138

Die Verwendung des re-Moduls ist die schnellste Lösung.

Sie können re.finditer() verwenden, das jedes übereinstimmende regex mit dem Inhalt und der Position zurückgibt

>>> für m in re.finditer(r"\w+ly", text):
...     print '%02d-%02d: %s' % (m.start(), m.end(), m.group(0))

2voto

Mike Pennington Punkte 40377

Eine weitere Option ist PLY, das ein reines Python Lex / Yacc ist. Es wurde von David Beazley geschrieben... er hat einige Folien, die die Funktionalität demonstrieren. Dies würde eine BNF-Grammatik erfordern, um die Syntax zu quantifizieren, die Sie analysieren. Ich bin mir nicht sicher, ob Sie so weit gehen möchten.

Wenn Sie keine BNF verwenden möchten, ist pyparsing eine weitere Option.

2voto

Andreas Jung Punkte 1

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X