Skip to main content
Version: 3.8

NASL AST Node Path 协议 v1.1(相对路径)

1. 介绍

  • 版本号:1.1
  • 别名:JSON Path 协议
  • 提案人:赵雨森
  • 评审人:NASL 技术委员会全体成员

(1) 背景

NASL AST Node Path 协议 v1.0 从 app 开头表达一个逻辑节点路径有时过长,需要一种相对路径的表达方式。

2. 协议描述

(1) 定义

继承 NASL AST Node Path 协议 v1.0,补充定义一种相对路径的表达方式。

(2) 语法

(2.1) 语法定义

grammar NANPv1

entry NANP:
(step+=Step | ('.' step+=Step)) ('.' step+=Step)*;
Step:
key=ID ('[' expr=(INDEX | FindExpr) ']')?;
FindExpr:
key=ID value=VALUE;

terminal INDEX: /\d+/;
terminal VALUE: /=[^=.[\]]+/;
terminal ID: /[a-zA-Z_][\w_]*/;

(2.2) 语法说明

.开头时,表示相对路径。

类似文件路径的./some/path

(2.3) 语法示例

app.logics[0]
app.logics[name=logic1]
.body[2]
.params[name=param1]
.body[2].consequent[3].left.property

3. 协议生态

目前以下设施使用了该协议:

  • LCAP IDE
    • 渲染层
    • ...
  • NL2NASL 服务
  • ...