LinterCheckAstNode: Bereichsbezogen, global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • Die LinterCheckAstNode- API bietet Methoden zum Abrufen von AST-Knotendetails (Abstract Syntax Tree) in Linter-Prüfungen.

    Diese API ist im Plugin Instance Scan (com.glide.instance_scan) enthalten und wird im Namespace sn_instance_scan ausgeführt. Weitere Informationen finden Sie unter Instanzscan.

    Verwenden Sie die Methoden in dieser Klasse, um Linter-Prüfungen für AST-Knotentypen auszuführen, indem Sie dem Feld Skript im Formular „Linter-Prüfung“Code hinzufügen. Weitere Informationen finden Sie unter Skripts für erweiterte Linter-Prüfung.

    Erstellen Sie eine Linterprüfung, um Probleme in einem Skript zu identifizieren. Wenn eine Linter-Prüfung für einen Datensatz ausgeführt wird, wird eine abstrakte Syntaxstruktur für den zugehörigen Code generiert. Sie können die abstrakte Syntaxstruktur verwenden, um Probleme mit dem Code zu analysieren.

    Greifen Sie mit dem Objekt Instance Scan „engine.rootNode“ auf Methoden in dieser API zu.

    LinterCheckAstNode – getNameIdentifier()

    Ruft den Zeichenfolgenwert eines Namensknotentyps ab. Ein Namensknoten stellt einen einfachen Bezeichner dar, der kein Schlüsselwort ist, z. B. ein Funktions- oder Variablenname.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Wenn das Linter-Objekt ein Namensknotentyp ist, geben Sie den Namen als Zeichenfolge zurück. Andernfalls NULL.

    Im folgenden Beispiel wird die incrementWithNode()- Methode der Ergebnis -API in einer Linter-Prüfung verwendet. Verwenden Sie diese Methode im Feld Skript des Formulars „Linter Check“.

    (function(engine) {
      engine.rootNode.visit(function(node) {
        if (node.getTypeName() === "NAME" &&
            node.getNameIdentifier() === "soughtFunction" &&
            node.getParent().getTypeName() === "CALL") {
          engine.finding.incrementWithNode(node);
        } 
      });
    })(engine);

    LinterCheckAstNode – getParent()

    Ruft das übergeordnete Knotenobjekt des aufgerufenen Knotens ab.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    Objekt Übergeordnetes Knotenobjekt des aufgerufenen Knotens.

    Im folgenden Beispiel wird die incrementWithNode()- Methode der Ergebnis -API in einer Linter-Prüfung verwendet. Verwenden Sie diese Methode im Feld Skript des Formulars „Linter Check“.

    (function(engine) {
      engine.rootNode.visit(function(node) {
        if (node.getTypeName() === "NAME" &&
            node.getNameIdentifier() === "soughtFunction" &&
            node.getParent().getTypeName() === "CALL") {
          engine.finding.incrementWithNode(node);
        } 
      });
    })(engine);

    LinterCheckAstNode – getTypeName()

    Ruft den Typ des aufgerufenen Knotens ab.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Typname des aufgerufenen Knotens. Beispielsweise wird ein Funktionsaufruf in der Quelle als Knoten mit dem Typnamen CALLtokenisiert.

    Im folgenden Beispiel wird die incrementWithNode()- Methode der Ergebnis -API in einer Linter-Prüfung verwendet. Verwenden Sie diese Methode im Feld Skript des Formulars „Linter Check“.

    (function(engine) {
      engine.rootNode.visit(function(node) {
        if (node.getTypeName() === "NAME" &&
            node.getNameIdentifier() === "soughtFunction" &&
            node.getParent().getTypeName() === "CALL") {
          engine.finding.incrementWithNode(node);
        } 
      });
    })(engine);

    LinterCheckAstNode – Visit(Funktion CallbackFunktion)

    Greift auf jeden Knoten in der Unterstruktur zu, beginnend mit diesem Knoten, und führt auf jedem Knoten eine bestimmte Rückruffunktion aus.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    callbackFunction Funktion Rückruffunktion, die für jeden Knoten in der Unterstruktur dieses Knotens ausgeführt werden soll. Diese Rückruffunktion verwendet einen Knoten als Parameter, der der zu besuchende Knoten ist.
    Tabelle : 8. Rückgaben
    Typ Beschreibung
    Keine

    Im folgenden Beispiel wird die incrementWithNode()- Methode der Ergebnis -API in einer Linter-Prüfung verwendet. Verwenden Sie diese Methode im Feld Skript des Formulars „Linter Check“.

    (function(engine) {
      engine.rootNode.visit(function(node) {
        if (node.getTypeName() === "NAME" &&
            node.getNameIdentifier() === "soughtFunction" &&
            node.getParent().getTypeName() === "CALL") {
          engine.finding.incrementWithNode(node);
        } 
      });
    })(engine);