抽象语法宏表示

抽象语法宏表示ASN.1 宏提供了创建“模板”用来定义宏的方法,MIB对象就是采用宏定义模板来定义

下面是定义宏的方法,为此需要区分3个不同的概念

宏表示:ASN.1 提供的一种表示机制,用于定义宏

宏定义:用宏表示定义的一个宏,代表一个宏实例的集合

宏实例:用具体的值代替宏定义中的变量而产生的实例,代表一种具体的类型

宏定义的模板形式为MACRO::=BEGINTYPE NOTATION::=VALUE NOTATION::=END其中,macroname是宏的名字,必须全部大写

宏定义由类型表示(TYPE NOTATION)、值表示(VALUE NOTATION)和支持产生式(supporting syntax)3部分组成,而最后部分是任选的,是关于宏定义体中类型的详细语法说明

这3部分都由Backus-Naur规范说明

当用一个具体的值代替宏定义中的变量或参数时就产生了宏实例,它表示一个实际的 ASN.1 类型(称为返回的类型),并且规定了该类型可取的值的集合(称为返回的值)

可见宏定义可以看做是类型的类型,或者说是超类型

另一方面也可以把宏定义看做是类型的模板,用这种模板制造出形式相似、语义相关的许多数据类型

这就是宏定义的主要用处

以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。

相关