LinterCheckAstNode - com escopo, global
A API LinterCheckAstNode fornece métodos para obter detalhes do nó da árvore de sintaxe abstrata (AST) em verificações de linter.
Esta API está incluída com o plug-in Instance Scan (com.glide.instance_scan) e é executada no namespace sn_instance_scan. Para obter mais informações, consulte Verificação de instância.
Use os métodos nesta classe para executar verificações de linter em tipos de nó AST adicionando código ao campo Script no formulário Verificação de linter. Para obter mais informações, consulte Scripts de verificação avançada de linter.
Crie uma verificação de linter para identificar problemas em um script. Quando uma verificação de linter é executada em um registro, uma árvore de sintaxe abstrata para seu código é gerada. Você pode usar a árvore de sintaxe abstrata para analisar problemas com o código.
Métodos de acesso nesta API usando o objeto Instance Scan Engine.rootNode.
LinterCheckAstNode – getNameIdentifier()
Recupera o valor da cadeia de caracteres de um tipo de nó de nome. Um nó de nome representa um identificador simples que não é uma palavra-chave, como uma função ou nome de variável.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Se o objeto linter for um tipo de nó de nome, retorne o nome como uma cadeia de caracteres. Caso contrário, nulo. |
O exemplo a seguir usa o método incrementWithNode() da API de descobertas em uma verificação de linter. Use este método no campo Script do formulário Verificação de Linter.
(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()
Obtém o objeto do nó primário do nó acessado.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Objeto | Objeto de nó primário do nó acessado. |
O exemplo a seguir usa o método incrementWithNode() da API de descobertas em uma verificação de linter. Use este método no campo Script do formulário Verificação de Linter.
(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()
Obtém o tipo do nó acessado.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Nome do tipo do nó acessado. Por exemplo, uma chamada de função na origem é tokenizada como um nó com o nome de tipo CALL. |
O exemplo a seguir usa o método incrementWithNode() da API de descobertas em uma verificação de linter. Use este método no campo Script do formulário Verificação de Linter.
(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(função callbackFunction)
Acessa cada nó na subárvore a partir deste nó e executa uma determinada função de retorno de chamada em cada nó.
| Nome | Tipo | Descrição |
|---|---|---|
| função de retorno de chamada | Função | Função de retorno de chamada a ser executada em cada nó na subárvore deste nó. Esta função de retorno de chamada usa um nó como um parâmetro que é o nó a ser visitado. |
| Tipo | Descrição |
|---|---|
| Nenhum |
O exemplo a seguir usa o método incrementWithNode() da API de descobertas em uma verificação de linter. Use este método no campo Script do formulário Verificação de Linter.
(function(engine) {
engine.rootNode.visit(function(node) {
if (node.getTypeName() === "NAME" &&
node.getNameIdentifier() === "soughtFunction" &&
node.getParent().getTypeName() === "CALL") {
engine.finding.incrementWithNode(node);
}
});
})(engine);