Codetalker.

ein Modul für dynamische, pythonische Sprachanalyse
Jetzt downloaden

Codetalker. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • MIT/X Consortium Lic...
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Jared Forsyth
  • Website des Verlags:
  • http://jaredforsyth.com/

Codetalker. Stichworte


Codetalker. Beschreibung

Ein Modul für dynamische, pythonische Sprachanalyse Das Ziel des Codetalkers ist es, eine schnelle Entwicklung von Parsers + Übersetzer zu ermöglichen, ohne die Leistung oder Flexibilität zu beeinträchtigen. Herden den Prozess: Tokenize: Erstellen Sie eine Liste von Tokensif , können Sie Ihr eigenes Token definieren - entweder auf Retoken oder StringTokenParse: Erstellen eines Parsreethe-Parse-Baums entspricht genau Ihren Regeln + Original-Token. Die Anrufestr (Baum) gibt den genauen Originalcode zurück. Einschließlich Whitespace, Kommentare usw. Dieser Schritt ist perfekt von Ihnen, wenn Sie Ihre automatisierten Änderungen an Ihrem Code (sagen, PrettyFication) vornehmen möchten, aber nicht vollständig Ihren Whitespace und Comments vollständig werfen wollen.abract Syntax-Baum http://docs.python.org/library/ast.htmlan AST wird verwendet, wenn Sie nur um die Syntax - Whitespace usw. kümmern, usw. spielt keine Rolle. Dies ist der Fall während der Zusammenstellung oder in einigen Fällen introspektion. Ich habe die AST-Implementierung von Codetalkers nach dem von Python modelliert. Codetalker macht die Parsetree -> AST-Konvertierung für Sie; Sie sagen es einfach, wie Sie Ihren Baum bevölkern, der Base auf einem bestimmten Knoten von Kindern.Translate: Sobald Sie das AST erhalten, möchten Sie etwas damit tun, richtig? Meistens ist es ", den Baum durchqueren und mit jedem Knoten etwas zu tun, abhängig von dem Typ". Hier kommt der Übersetzerklasse ein. Es bezeichnete eine schöne einfache Benutzeroberfläche, um ein Ast systematisch umzusetzen, was Sie wollen. Hier ist ein Beispiel für das Erstellen und Ausfüllen eines Übersetzers. rx = re.compile ('true | false | null') # -Regeln (Wert ist die Startregel) EF-Wert (Regel): Regel | dict_ | List_ | String | Tfn | Number Rule.pass_single = trueDef dict_ (Regel): Regel | ('{', , '}') Rule.Astattrs = {'Keys': String, 'Werte': Wert} dict_.astName = 'dict'def list_ (Regel): Regel | (', ']') rule.astattrs = {'Werte': } list_. asname = 'list'grammar = Grammatik (Start = Wert, Token = , ignorieren = , # Wir kümmern uns nicht um Whitespace ... ast_tokens = ) # Token, die wir in der abstrakten Syntaxbaum aufgenommen haben


Codetalker. Zugehörige Software