LinterCheckAstNode - 범위가 지정됨, 전역
LinterCheckAstNode API는 linter 검사에서 AST(추상 구문 트리) 노드 세부 정보를 가져오는 메서드를 제공합니다.
이 API는 (com.glide.instance_scan) 플러그인에 인스턴스 스캔 포함되어 있으며 sn_instance_scan 네임스페이스에서 실행됩니다. 자세한 내용은 Instance Scan 단원을 참조하십시오.
이 클래스의 메서드를 사용하여 Linter 검사 양식의 스크립트 필드에 코드를 추가하여 AST 노드 유형에 대한 Linter 검사를 실행합니다. 자세한 내용은 고급 linter 검사 스크립트를 참조하세요.
linter 검사를 생성하여 스크립트의 문제를 식별합니다. 레코드에서 Linter 검사가 실행되면 해당 코드에 대한 추상 구문 트리가 생성됩니다. 추상 구문 트리를 사용하여 코드의 문제를 분석할 수 있습니다.
인스턴스 스캔 engine.rootNode 객체를 사용하여 이 API의 메서드에 액세스합니다.
LinterCheckAstNode - getNameIdentifier()
이름 노드 유형의 문자열 값을 검색합니다. 이름 노드는 함수 또는 변수 이름과 같이 키워드가 아닌 단순 식별자를 나타냅니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 | linter 객체가 name 노드 유형이면, 이름을 문자열로 반환합니다. 그렇지 않으면 Null입니다. |
다음 예제에서는 linter 검사에서 Findings API incrementWithNode() 메서드를 사용합니다. 린터 검사 양식의 스크립트 필드에서 이 메서드를 사용합니다.
(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()
액세스한 노드의 상위 노드 객체를 가져옵니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 객체 | 액세스한 노드의 상위 노드 객체입니다. |
다음 예제에서는 linter 검사에서 Findings API incrementWithNode() 메서드를 사용합니다. 린터 검사 양식의 스크립트 필드에서 이 메서드를 사용합니다.
(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()
액세스한 노드의 유형을 가져옵니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 | 액세스한 노드의 유형 이름입니다. 예를 들어, 소스의 함수 호출은 유형 이름이 CALL인 노드로 토큰화됩니다. |
다음 예제에서는 linter 검사에서 Findings API incrementWithNode() 메서드를 사용합니다. 린터 검사 양식의 스크립트 필드에서 이 메서드를 사용합니다.
(function(engine) {
engine.rootNode.visit(function(node) {
if (node.getTypeName() === "NAME" &&
node.getNameIdentifier() === "soughtFunction" &&
node.getParent().getTypeName() === "CALL") {
engine.finding.incrementWithNode(node);
}
});
})(engine);
LinterCheckAstNode - 방문(함수 콜백 함수)
이 노드에서 시작하여 하위 트리의 각 노드에 액세스하고 각 노드에서 지정된 콜백 함수를 실행합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 콜백 함수 | 기능 | 이 노드의 하위 트리에 있는 각 노드에서 실행할 콜백 함수입니다. 이 콜백 함수는 방문 할 노드인 노드를 매개변수로 사용합니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 예제에서는 linter 검사에서 Findings API incrementWithNode() 메서드를 사용합니다. 린터 검사 양식의 스크립트 필드에서 이 메서드를 사용합니다.
(function(engine) {
engine.rootNode.visit(function(node) {
if (node.getTypeName() === "NAME" &&
node.getNameIdentifier() === "soughtFunction" &&
node.getParent().getTypeName() === "CALL") {
engine.finding.incrementWithNode(node);
}
});
})(engine);