24. April 2019, 00:11:52
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

[Info] krllint - Tool zur Code-Analyse von KRL


normal_post Autor Thema: [Info] krllint - Tool zur Code-Analyse von KRL  (Gelesen 2135 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

06. Oktober 2018, 19:44:30
Gelesen 2135 mal
Offline

d4nuu8


Hallo Forum

ich würde euch gerne ein kleines Projekt von mir vorstellen, welches ich vor kurzem angefangen habe.

Das ganze nennt sich krllint und soll dazu dienen KRL zu analysieren und ggfs. zu korrigieren.

Was kann krllint bisher:
  • Überprüfung der Einrücktiefe des Codes
  • Überprüfung auf Großschreibung von Schlüsselwörtern der Sprache
  • Überprüfung auf überflüssige Leerzeichen
  • Überprüfung der Verwendung eines einheitlichen Zeichens zur Einrückung des Codes (Leerzeichen oder Tab)

Bei allen genannten Punkten ist krllint in der Lage (falls gewünscht) den Code automatisch zu korrigieren.

Ich erstelle diesen Eintrag mit der Hoffnung, dass der ein oder andere krllint vielleicht ganz nett findet und verwenden möchte. Aktuell befindet sich krllint noch in einer sehr frühen Phase und kann, wie ihr seht, noch nicht all zu viel.


Finden könnt ihr krllint hier. Dort findet ihr auch eine kleine Beschreibung zur Installation und der wichtigsten Funktionen.

Für alle die noch kein Python installiert haben: hier findet ihr eine Anleitung zur Installation.



Ich freue würde mich über Anmerkungen, Wünsche, Kritik, etc. sehr freuen.

Bei Fragen - einfach raus damit.



d4nuu8

Heute um 00:11:52
Antwort #1

Werbung

Gast

07. Oktober 2018, 12:28:19
Antwort #1
Offline

Otto Sieben


Moin,
keine Ahnung, ich falsch mache, ich kriege das Script nicht ans Laufen.
WIN7 // Python 3.7 , krllint installiert
Im Idle  :



>>> import krllint
>>> krllint --help
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    krllint --help
TypeError: bad operand type for unary -: '_Helper'
>>> krllint cell.src
SyntaxError: invalid syntax


Grüße
  • gefällt mir    Danke
never touch a running system

07. Oktober 2018, 12:59:31
Antwort #2
Offline

d4nuu8


>>> import krllint
>>> krllint --help
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    krllint --help
TypeError: bad operand type for unary -: '_Helper'
>>> krllint cell.src
SyntaxError: invalid syntax

Du kannst krllint direkt aus der Windows CMD / Powershell starten. Einzige Voraussetzung hierfür ist, dass bei der Installation von Python die Option "add python to PATH" (oder so ähnlich) gesetzt wurde.

Edit: Hast du pip zur Installation genutzt? Sonst funktioniert die beschriebene Methode nicht. Würde ich dir empfehlen. Vereinfacht das ganze und bringt alles mit was man braucht.

Einfach in einer CMD "pip install krllint" eingeben. Zur Installation braucht die CMD einmalig Admin-Rechte. Danach funktioniert krllint ohne spezielle Rechte.
« Letzte Änderung: 07. Oktober 2018, 13:19:49 von d4nuu8 »
  • gefällt mir    Danke

07. Oktober 2018, 13:30:44
Antwort #3
Offline

Otto Sieben


Moin,
ich hatte krllint mittels pip installiert, auch ist Python im Enviroment gesetzt.
Der Aufruf im CMD funktioniert, zumindest gibt es keine Fehlermeldung.  Allerdings bekomme ich nichts zurück.
Es gibt immer nur einen Zeilenvorschub und das war's dann. Getestet wie vorher. Also --help und eine Datei.
Grüße
  • gefällt mir    Danke
never touch a running system

07. Oktober 2018, 13:55:27
Antwort #4
Offline

Otto Sieben


Ich bin's nochmal...
Habe eben mal ein --fix auf eine modifizierte Cell() losgelassen, die überflüssigen Leerzeichen vor dem LOOP waren dann weg.
Also irgendwas geht da schon. :supi:
Rufe ich nur mit Dateinamen auf, müßte doch aber der Reporter (den ich auch schon REPORTER = TextReporter in der config gesetzt habe) was ausgeben? Oder habe ich da was missverstanden?
« Letzte Änderung: 07. Oktober 2018, 14:13:37 von Otto Sieben »
  • gefällt mir    Danke
never touch a running system

Heute um 00:11:52
Antwort #5

Werbung

Gast

07. Oktober 2018, 19:08:14
Antwort #5
Offline

d4nuu8


Also wenn du krllint nur eine einzelne Datei übergibst, ohne sonstige Parameter, erhältst du als Ausgabe alles was krllint zu bemängeln hat (siehe Only_Test.png).

Wenn du jetzt noch zusätzlich die Option "fix" aktivierst, wird die angegebene Datei direkt korrigiert (kein Backup der Datei oder so was).

Zum Beispiel die angehängte "diry.src" kopieren und in "clean.src" umbenennen. Dann:
krllint --fix clean.src
Wenn du jetzt "clean.src" nochmal prüfst, dann bekommst du aktuell keine Ausgabe, weil es nichts mehr zu bemängeln gibt.

Ich habe aber schon aufgenommen, in der nächsten Version eine Ausgabe der insgesamt gefunden "Fehler" als Abschluss auszugeben. ;)

07. Oktober 2018, 19:29:31
Antwort #6
Offline

Otto Sieben


Moin,
ich sehe , dass Du auf ner LINUX Maschine arbeitest. Im Windows-CMD bekomme ich keine Ausgabe zu sehen...
Das --fix funktioniert aber, wie schon erwähnt.
Grüße
  • gefällt mir    Danke
never touch a running system

07. Oktober 2018, 21:33:42
Antwort #7
Offline

d4nuu8


Mh, ich hab's gerade mal auf einer Windows 7 VM probiert. Bei mir funktioniert es ohne Probleme. Habe auch mal zwischen farbiger, und schwarz-weiß Ausgabe gewechselt. Sogar wenn ich den Reporter auf irgendwas nicht vorhandenes Stelle, bekomme ich eine Ausgabe.

Ich schreib dir morgen mal eine PN. Vielleicht fällt mir noch irgendwas ein. :huh:


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH