Author: ctian
Date: Wed Sep 26 08:57:08 2007
New Revision: 59
Added:
trunk/smi/ipaddr.lisp
trunk/smi/null.lisp
trunk/smi/pdu.lisp
Modified:
trunk/asn.1/asn.1-domain.lisp
trunk/asn.1/asn.1.tab
trunk/asn.1/package.lisp
trunk/mib/build.lisp
trunk/mib/package.lisp
trunk/net-snmp.asd
trunk/smi/integer.lisp
trunk/smi/package.lisp
trunk/smi/sequence.lisp
trunk/smi/string.lisp
Log:
PDU support OK
Modified: trunk/asn.1/asn.1-domain.lisp
==============================================================================
--- trunk/asn.1/asn.1-domain.lisp (original)
+++ trunk/asn.1/asn.1-domain.lisp Wed Sep 26 08:57:08 2007
@@ -1,6 +1,6 @@
;;; This file was generated by Zebu (Version 3.5.5)
-(IN-PACKAGE "ASN.1")
+(IN-PACKAGE "COM.NETEASE.ASN.1")
(REQUIRE "zebu-package")
(USE-PACKAGE "ZEBU")
@@ -138,57 +138,57 @@
IDENTIFIER
BODY)
-(DEFUN ASSIGNMENT*0 (ASSIGNMENT ASSIGNMENT*)
+(DEFUN ASSIGNMENT*1 (ASSIGNMENT ASSIGNMENT*)
(MAKE-KB-SEQUENCE :FIRST ASSIGNMENT :REST ASSIGNMENT*))
-(DEFUN SYMBOL*\,1$1 (SYMBOL |Rest-SYMBOL*,1$|)
+(DEFUN SYMBOL*\,1$2 (SYMBOL |Rest-SYMBOL*,1$|)
(MAKE-KB-SEQUENCE :FIRST SYMBOL :REST |Rest-SYMBOL*,1$|))
-(DEFUN |Rest-SYMBOL*,1$2| (DUMMY SYMBOL |Rest-SYMBOL*,1$|)
+(DEFUN |Rest-SYMBOL*,1$3| (DUMMY SYMBOL |Rest-SYMBOL*,1$|)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST SYMBOL :REST |Rest-SYMBOL*,1$|))
-(DEFUN SYMBOLS-FROM-MODULE*3 (SYMBOLS-FROM-MODULE SYMBOLS-FROM-MODULE*)
+(DEFUN SYMBOLS-FROM-MODULE*4 (SYMBOLS-FROM-MODULE SYMBOLS-FROM-MODULE*)
(MAKE-KB-SEQUENCE :FIRST
SYMBOLS-FROM-MODULE
:REST
SYMBOLS-FROM-MODULE*))
-(DEFUN SYMBOL+\,1$4 (SYMBOL) (MAKE-KB-SEQUENCE :FIRST SYMBOL))
+(DEFUN SYMBOL+\,1$6 (SYMBOL) (MAKE-KB-SEQUENCE :FIRST SYMBOL))
-(DEFUN SYMBOL+\,1$5 (SYMBOL DUMMY SYMBOL+\,1$)
+(DEFUN SYMBOL+\,1$7 (SYMBOL DUMMY SYMBOL+\,1$)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST SYMBOL :REST SYMBOL+\,1$))
-(DEFUN GARBAGE+6 (GARBAGE) (MAKE-KB-SEQUENCE :FIRST GARBAGE))
+(DEFUN GARBAGE+8 (GARBAGE) (MAKE-KB-SEQUENCE :FIRST GARBAGE))
-(DEFUN GARBAGE+7 (GARBAGE GARBAGE+)
+(DEFUN GARBAGE+9 (GARBAGE GARBAGE+)
(MAKE-KB-SEQUENCE :FIRST GARBAGE :REST GARBAGE+))
-(DEFUN MODULE-REVISION*8 (MODULE-REVISION MODULE-REVISION*)
+(DEFUN MODULE-REVISION*10 (MODULE-REVISION MODULE-REVISION*)
(MAKE-KB-SEQUENCE :FIRST MODULE-REVISION :REST MODULE-REVISION*))
-(DEFUN IDENTIFIER+\,1$9 (IDENTIFIER)
+(DEFUN IDENTIFIER+\,1$11 (IDENTIFIER)
(MAKE-KB-SEQUENCE :FIRST IDENTIFIER))
-(DEFUN IDENTIFIER+\,1$10 (IDENTIFIER DUMMY IDENTIFIER+\,1$)
+(DEFUN IDENTIFIER+\,1$12 (IDENTIFIER DUMMY IDENTIFIER+\,1$)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST IDENTIFIER :REST IDENTIFIER+\,1$))
-(DEFUN MODULE-COMPLIANCE-BODY+11 (MODULE-COMPLIANCE-BODY)
+(DEFUN MODULE-COMPLIANCE-BODY+13 (MODULE-COMPLIANCE-BODY)
(MAKE-KB-SEQUENCE :FIRST MODULE-COMPLIANCE-BODY))
-(DEFUN MODULE-COMPLIANCE-BODY+12
+(DEFUN MODULE-COMPLIANCE-BODY+14
(MODULE-COMPLIANCE-BODY MODULE-COMPLIANCE-BODY+)
(MAKE-KB-SEQUENCE :FIRST
MODULE-COMPLIANCE-BODY
:REST
MODULE-COMPLIANCE-BODY+))
-(DEFUN OBJECT-TYPE-INDEX-VALUE+\,1$13 (OBJECT-TYPE-INDEX-VALUE)
+(DEFUN OBJECT-TYPE-INDEX-VALUE+\,1$15 (OBJECT-TYPE-INDEX-VALUE)
(MAKE-KB-SEQUENCE :FIRST OBJECT-TYPE-INDEX-VALUE))
-(DEFUN OBJECT-TYPE-INDEX-VALUE+\,1$14
+(DEFUN OBJECT-TYPE-INDEX-VALUE+\,1$16
(OBJECT-TYPE-INDEX-VALUE DUMMY OBJECT-TYPE-INDEX-VALUE+\,1$)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST
@@ -196,63 +196,63 @@
:REST
OBJECT-TYPE-INDEX-VALUE+\,1$))
-(DEFUN IDENTIFIER*\,1$15 (IDENTIFIER |Rest-IDENTIFIER*,1$|)
+(DEFUN IDENTIFIER*\,1$17 (IDENTIFIER |Rest-IDENTIFIER*,1$|)
(MAKE-KB-SEQUENCE :FIRST IDENTIFIER :REST |Rest-IDENTIFIER*,1$|))
-(DEFUN |Rest-IDENTIFIER*,1$16| (DUMMY IDENTIFIER |Rest-IDENTIFIER*,1$|)
+(DEFUN |Rest-IDENTIFIER*,1$18| (DUMMY IDENTIFIER |Rest-IDENTIFIER*,1$|)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST IDENTIFIER :REST |Rest-IDENTIFIER*,1$|))
-(DEFUN MODULE-COMPLIANCE-ITEM*17
+(DEFUN MODULE-COMPLIANCE-ITEM*19
(MODULE-COMPLIANCE-ITEM MODULE-COMPLIANCE-ITEM*)
(MAKE-KB-SEQUENCE :FIRST
MODULE-COMPLIANCE-ITEM
:REST
MODULE-COMPLIANCE-ITEM*))
-(DEFUN OBJ-ID-COMPONENT+18 (OBJ-ID-COMPONENT)
+(DEFUN OBJ-ID-COMPONENT+20 (OBJ-ID-COMPONENT)
(MAKE-KB-SEQUENCE :FIRST OBJ-ID-COMPONENT))
-(DEFUN OBJ-ID-COMPONENT+19 (OBJ-ID-COMPONENT OBJ-ID-COMPONENT+)
+(DEFUN OBJ-ID-COMPONENT+21 (OBJ-ID-COMPONENT OBJ-ID-COMPONENT+)
(MAKE-KB-SEQUENCE :FIRST OBJ-ID-COMPONENT :REST OBJ-ID-COMPONENT+))
-(DEFUN NUMBERS+\|1$20 (NUMBERS) (MAKE-KB-SEQUENCE :FIRST NUMBERS))
+(DEFUN NUMBERS+\|1$22 (NUMBERS) (MAKE-KB-SEQUENCE :FIRST NUMBERS))
-(DEFUN NUMBERS+\|1$21 (NUMBERS DUMMY NUMBERS+\|1$)
+(DEFUN NUMBERS+\|1$23 (NUMBERS DUMMY NUMBERS+\|1$)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST NUMBERS :REST NUMBERS+\|1$))
-(DEFUN SPLITED-NUMBERS+\|1$22 (SPLITED-NUMBERS)
+(DEFUN SPLITED-NUMBERS+\|1$24 (SPLITED-NUMBERS)
(MAKE-KB-SEQUENCE :FIRST SPLITED-NUMBERS))
-(DEFUN SPLITED-NUMBERS+\|1$23
+(DEFUN SPLITED-NUMBERS+\|1$25
(SPLITED-NUMBERS DUMMY SPLITED-NUMBERS+\|1$)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST SPLITED-NUMBERS :REST SPLITED-NUMBERS+\|1$))
-(DEFUN NAMED-NUMBER+\,1$24 (NAMED-NUMBER)
+(DEFUN NAMED-NUMBER+\,1$26 (NAMED-NUMBER)
(MAKE-KB-SEQUENCE :FIRST NAMED-NUMBER))
-(DEFUN NAMED-NUMBER+\,1$25 (NAMED-NUMBER DUMMY NAMED-NUMBER+\,1$)
+(DEFUN NAMED-NUMBER+\,1$27 (NAMED-NUMBER DUMMY NAMED-NUMBER+\,1$)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST NAMED-NUMBER :REST NAMED-NUMBER+\,1$))
-(DEFUN GARBAGE*26 (GARBAGE GARBAGE*)
+(DEFUN GARBAGE*28 (GARBAGE GARBAGE*)
(MAKE-KB-SEQUENCE :FIRST GARBAGE :REST GARBAGE*))
-(DEFUN NAME-AND-NUMBER-FORM27 (IDENTIFIER DUMMY NUMBER-FORM DUMMY1)
+(DEFUN NAME-AND-NUMBER-FORM29 (IDENTIFIER DUMMY NUMBER-FORM DUMMY1)
(DECLARE (IGNORE DUMMY1 DUMMY))
(MAKE-OBJ-ID-COMPONENT :NAME IDENTIFIER :VALUE NUMBER-FORM))
-(DEFUN OBJECT-IDENTIFIER-VALUE28 (DUMMY OBJ-ID-COMPONENT+ DUMMY1)
+(DEFUN OBJECT-IDENTIFIER-VALUE30 (DUMMY OBJ-ID-COMPONENT+ DUMMY1)
(DECLARE (IGNORE DUMMY1 DUMMY))
(MAKE-OBJECT-IDENTIFIER-VALUE :VALUE OBJ-ID-COMPONENT+))
-(DEFUN VALUE-ASSIGNMENT29 (IDENTIFIER TYPE DUMMY VALUE)
+(DEFUN VALUE-ASSIGNMENT37 (IDENTIFIER TYPE DUMMY VALUE)
(DECLARE (IGNORE DUMMY))
(MAKE-VALUE-ASSIGNMENT :NAME IDENTIFIER :TYPE TYPE :VALUE VALUE))
-(DEFUN VALUE-ASSIGNMENT30
+(DEFUN VALUE-ASSIGNMENT38
(IDENTIFIER DUMMY DUMMY1 STATUS DUMMY2 DESCRIPTION
OBJECT-IDENTITY-REFERENCE DUMMY3 OBJECT-IDENTIFIER-VALUE)
(DECLARE (IGNORE DUMMY3 DUMMY2 DUMMY1 DUMMY))
@@ -263,7 +263,7 @@
:VALUE
OBJECT-IDENTIFIER-VALUE))
-(DEFUN VALUE-ASSIGNMENT31
+(DEFUN VALUE-ASSIGNMENT39
(IDENTIFIER DUMMY DUMMY1 LAST-UPDATED DUMMY2 ORGANIZATION DUMMY3
CONTACT-INFO DUMMY4 DESCRIPTION MODULE-REVISION* DUMMY5
OBJECT-IDENTIFIER-VALUE)
@@ -275,7 +275,7 @@
:VALUE
OBJECT-IDENTIFIER-VALUE))
-(DEFUN VALUE-ASSIGNMENT32
+(DEFUN VALUE-ASSIGNMENT40
(IDENTIFIER DUMMY DUMMY1 TYPE OBJECT-TYPE-UNITS
OBJECT-TYPE-ACCESS DUMMY2 STATUS DUMMY3 DESCRIPTION
OBJECT-TYPE-INDEX OBJECT-TYPE-AUGMENTS OBJECT-TYPE-REFERENCE
@@ -288,7 +288,7 @@
:VALUE
OBJECT-IDENTIFIER-VALUE))
-(DEFUN VALUE-ASSIGNMENT33
+(DEFUN VALUE-ASSIGNMENT41
(IDENTIFIER DUMMY NOTIFICATION-TYPE-OBJECTS DUMMY1 STATUS DUMMY2
DESCRIPTION DUMMY3 OBJECT-IDENTIFIER-VALUE)
(DECLARE (IGNORE DUMMY3 DUMMY2 DUMMY1 DUMMY))
@@ -299,7 +299,7 @@
:VALUE
OBJECT-IDENTIFIER-VALUE))
-(DEFUN VALUE-ASSIGNMENT34
+(DEFUN VALUE-ASSIGNMENT42
(IDENTIFIER DUMMY DUMMY1 DUMMY2 IDENTIFIER+\,1$ DUMMY3 DUMMY4
STATUS DUMMY5 DESCRIPTION DUMMY6 OBJECT-IDENTIFIER-VALUE)
(DECLARE (IGNORE DUMMY6 DUMMY5 DUMMY4 DUMMY3 DUMMY2 DUMMY1 DUMMY))
@@ -310,7 +310,7 @@
:VALUE
OBJECT-IDENTIFIER-VALUE))
-(DEFUN VALUE-ASSIGNMENT35
+(DEFUN VALUE-ASSIGNMENT43
(IDENTIFIER DUMMY DUMMY1 STATUS DUMMY2 DESCRIPTION
MODULE-COMPLIANCE-BODY+ DUMMY3 OBJECT-IDENTIFIER-VALUE)
(DECLARE (IGNORE DUMMY3 DUMMY2 DUMMY1 DUMMY))
@@ -321,7 +321,7 @@
:VALUE
OBJECT-IDENTIFIER-VALUE))
-(DEFUN VALUE-ASSIGNMENT36
+(DEFUN VALUE-ASSIGNMENT44
(IDENTIFIER DUMMY DUMMY1 DUMMY2 IDENTIFIER+\,1$ DUMMY3 DUMMY4
STATUS DUMMY5 DESCRIPTION DUMMY6 OBJECT-IDENTIFIER-VALUE)
(DECLARE (IGNORE DUMMY6 DUMMY5 DUMMY4 DUMMY3 DUMMY2 DUMMY1 DUMMY))
@@ -332,13 +332,13 @@
:VALUE
OBJECT-IDENTIFIER-VALUE))
-(DEFUN ASSIGNMENT37 (TYPE-ASSIGNMENT)
+(DEFUN ASSIGNMENT45 (TYPE-ASSIGNMENT)
(MAKE-ASSIGNMENT :TYPE :TYPE :VALUE TYPE-ASSIGNMENT))
-(DEFUN ASSIGNMENT38 (VALUE-ASSIGNMENT)
+(DEFUN ASSIGNMENT46 (VALUE-ASSIGNMENT)
(MAKE-ASSIGNMENT :TYPE :VALUE :VALUE VALUE-ASSIGNMENT))
-(DEFUN SYMBOLS-FROM-MODULE39
+(DEFUN SYMBOLS-FROM-MODULE47
(SYMBOL+\,1$ DUMMY GLOBAL-MODULE-REFERENCE)
(DECLARE (IGNORE DUMMY))
(MAKE-SYMBOLS-FROM-MODULE :SYMBOLS
@@ -346,19 +346,19 @@
:GLOBAL-MODULE-REFERENCE
GLOBAL-MODULE-REFERENCE))
-(DEFUN IMPORTS40 (DUMMY SYMBOLS-FROM-MODULE* DUMMY1)
+(DEFUN IMPORTS48 (DUMMY SYMBOLS-FROM-MODULE* DUMMY1)
(DECLARE (IGNORE DUMMY1 DUMMY))
(MAKE-IMPORTS :VALID T :LIST SYMBOLS-FROM-MODULE*))
-(DEFUN EXPORTS41 (DUMMY SYMBOL*\,1$ DUMMY1)
+(DEFUN EXPORTS49 (DUMMY SYMBOL*\,1$ DUMMY1)
(DECLARE (IGNORE DUMMY1 DUMMY))
(MAKE-EXPORTS :LIST SYMBOL*\,1$))
-(DEFUN EXPORTS42 (DUMMY DUMMY1 DUMMY2)
+(DEFUN EXPORTS50 (DUMMY DUMMY1 DUMMY2)
(DECLARE (IGNORE DUMMY2 DUMMY1 DUMMY))
(MAKE-EXPORTS :ALL-EXPORTS T))
-(DEFUN MODULE-BODY43 (EXPORTS IMPORTS ASSIGNMENT*)
+(DEFUN MODULE-BODY51 (EXPORTS IMPORTS ASSIGNMENT*)
(MAKE-MODULE-BODY :ASSIGNMENT-LIST
ASSIGNMENT*
:EXPORTS
@@ -366,7 +366,7 @@
:IMPORTS
IMPORTS))
-(DEFUN MODULE-DEFINITION44
+(DEFUN MODULE-DEFINITION52
(MODULE-IDENTIFIER DUMMY DUMMY1 DUMMY2 MODULE-BODY DUMMY3)
(DECLARE (IGNORE DUMMY3 DUMMY2 DUMMY1 DUMMY))
(MAKE-MODULE-DEFINITION :IDENTIFIER
Modified: trunk/asn.1/asn.1.tab
==============================================================================
--- trunk/asn.1/asn.1.tab (original)
+++ trunk/asn.1/asn.1.tab Wed Sep 26 08:57:08 2007
@@ -698,20 +698,20 @@
2
-#88((MODULE-DEFINITION . #S(ZEBU::ZB-RULE :-NAME MODULE-DEFINITION :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-IDENTIFIER "DEFINITIONS" "::=" "BEGIN" MODULE-BODY "END") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE MODULE-DEFINITION :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL IDENTIFIER :-VALUE MODULE-IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL BODY :-VALUE MODULE-BODY))) :-BUILD-FN MODULE-DEFINITION44))))
+#88((MODULE-DEFINITION . #S(ZEBU::ZB-RULE :-NAME MODULE-DEFINITION :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-IDENTIFIER "DEFINITIONS" "::=" "BEGIN" MODULE-BODY "END") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE MODULE-DEFINITION :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL IDENTIFIER :-VALUE MODULE-IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL BODY :-VALUE MODULE-BODY))) :-BUILD-FN MODULE-DEFINITION52))))
(MODULE-IDENTIFIER . #S(ZEBU::ZB-RULE :-NAME MODULE-IDENTIFIER :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-REFERENCE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
(MODULE-REFERENCE . #S(ZEBU::ZB-RULE :-NAME MODULE-REFERENCE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-REFERENCE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(MODULE-BODY . #S(ZEBU::ZB-RULE :-NAME MODULE-BODY :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (EXPORTS IMPORTS ASSIGNMENT*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE MODULE-BODY :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL ASSIGNMENT-LIST :-VALUE ASSIGNMENT*) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL EXPORTS :-VALUE EXPORTS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL IMPORTS :-VALUE IMPORTS))) :-BUILD-FN MODULE-BODY43) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
-(EXPORTS . #S(ZEBU::ZB-RULE :-NAME EXPORTS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("EXPORTS" SYMBOL*\,1$ ";") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE EXPORTS :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL LIST :-VALUE SYMBOL*\,1$))) :-BUILD-FN EXPORTS41) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("EXPORTS" "ALL" ";") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE EXPORTS :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL ALL-EXPORTS :-VALUE T))) :-BUILD-FN EXPORTS42) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(MODULE-BODY . #S(ZEBU::ZB-RULE :-NAME MODULE-BODY :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (EXPORTS IMPORTS ASSIGNMENT*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE MODULE-BODY :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL ASSIGNMENT-LIST :-VALUE ASSIGNMENT*) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL EXPORTS :-VALUE EXPORTS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL IMPORTS :-VALUE IMPORTS))) :-BUILD-FN MODULE-BODY51) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(EXPORTS . #S(ZEBU::ZB-RULE :-NAME EXPORTS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("EXPORTS" SYMBOL*\,1$ ";") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE EXPORTS :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL LIST :-VALUE SYMBOL*\,1$))) :-BUILD-FN EXPORTS49) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("EXPORTS" "ALL" ";") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE EXPORTS :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL ALL-EXPORTS :-VALUE T))) :-BUILD-FN EXPORTS50) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
(SYMBOL . #S(ZEBU::ZB-RULE :-NAME SYMBOL :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (REFERENCE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(IMPORTS . #S(ZEBU::ZB-RULE :-NAME IMPORTS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("IMPORTS" SYMBOLS-FROM-MODULE* ";") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE IMPORTS :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALID :-VALUE T) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL LIST :-VALUE SYMBOLS-FROM-MODULE*))) :-BUILD-FN IMPORTS40) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
-(SYMBOLS-FROM-MODULE . #S(ZEBU::ZB-RULE :-NAME SYMBOLS-FROM-MODULE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL+\,1$ "FROM" GLOBAL-MODULE-REFERENCE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE SYMBOLS-FROM-MODULE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL SYMBOLS :-VALUE SYMBOL+\,1$) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL GLOBAL-MODULE-REFERENCE :-VALUE GLOBAL-MODULE-REFERENCE))) :-BUILD-FN SYMBOLS-FROM-MODULE39))))
+(IMPORTS . #S(ZEBU::ZB-RULE :-NAME IMPORTS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("IMPORTS" SYMBOLS-FROM-MODULE* ";") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE IMPORTS :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALID :-VALUE T) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL LIST :-VALUE SYMBOLS-FROM-MODULE*))) :-BUILD-FN IMPORTS48) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(SYMBOLS-FROM-MODULE . #S(ZEBU::ZB-RULE :-NAME SYMBOLS-FROM-MODULE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL+\,1$ "FROM" GLOBAL-MODULE-REFERENCE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE SYMBOLS-FROM-MODULE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL SYMBOLS :-VALUE SYMBOL+\,1$) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL GLOBAL-MODULE-REFERENCE :-VALUE GLOBAL-MODULE-REFERENCE))) :-BUILD-FN SYMBOLS-FROM-MODULE47))))
(GLOBAL-MODULE-REFERENCE . #S(ZEBU::ZB-RULE :-NAME GLOBAL-MODULE-REFERENCE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-REFERENCE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
(REFERENCE . #S(ZEBU::ZB-RULE :-NAME REFERENCE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-REFERENCE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(ASSIGNMENT . #S(ZEBU::ZB-RULE :-NAME ASSIGNMENT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-ASSIGNMENT) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE TYPE-ASSIGNMENT))) :-BUILD-FN ASSIGNMENT37) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (VALUE-ASSIGNMENT) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :VALUE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE VALUE-ASSIGNMENT))) :-BUILD-FN ASSIGNMENT38))))
+(ASSIGNMENT . #S(ZEBU::ZB-RULE :-NAME ASSIGNMENT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-ASSIGNMENT) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE TYPE-ASSIGNMENT))) :-BUILD-FN ASSIGNMENT45) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (VALUE-ASSIGNMENT) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :VALUE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE VALUE-ASSIGNMENT))) :-BUILD-FN ASSIGNMENT46))))
(TYPE-ASSIGNMENT . #S(ZEBU::ZB-RULE :-NAME TYPE-ASSIGNMENT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-REFERENCE "::=" TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-REFERENCE "MACRO" "::=" "BEGIN" GARBAGE+ "END") :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
(GARBAGE . #S(ZEBU::ZB-RULE :-NAME GARBAGE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (ANYTHING) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(VALUE-ASSIGNMENT . #S(ZEBU::ZB-RULE :-NAME VALUE-ASSIGNMENT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER TYPE "::=" VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE VALUE))) :-BUILD-FN VALUE-ASSIGNMENT29) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "OBJECT-IDENTITY" "STATUS" STATUS "DESCRIPTION" DESCRIPTION OBJECT-IDENTITY-REFERENCE "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-IDENTITY) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT30) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "MODULE-IDENTITY" "LAST-UPDATED" LAST-UPDATED "ORGANIZATION" ORGANIZATION "CONTACT-INFO" CONTACT-INFO "DESCRIPTION" DESCRIPTION MODULE-REVISION* "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :MODULE-IDENTITY) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT31) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "OBJECT-TYPE" "SYNTAX" TYPE OBJECT-TYPE-UNITS OBJECT-TYPE-ACCESS "STATUS" STATUS "DESCRIPTION" DESCRIPTION OBJECT-TYPE-INDEX OBJECT-TYPE-AUGMENTS OBJECT-TYPE-REFERENCE OBJECT-TYPE-DEFVAL "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT32) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "NOTIFICATION-TYPE" NOTIFICATION-TYPE-OBJECTS "STATUS" STATUS "DESCRIPTION" DESCRIPTION "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :NOTIFICATION-TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT33) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "NOTIFICATION-GROUP" "NOTIFICATIONS" "{" IDENTIFIER+\,1$ "}" "STATUS" STATUS "DESCRIPTION" DESCRIPTION "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :NOTIFICATION-GROUP) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT34) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "MODULE-COMPLIANCE" "STATUS" STATUS "DESCRIPTION" DESCRIPTION MODULE-COMPLIANCE-BODY+ "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :MODULE-COMPLIANCE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT35) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "OBJECT-GROUP" "OBJECTS" "{" IDENTIFIER+\,1$ "}" "STATUS" STATUS "DESCRIPTION" DESCRIPTION "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-GROUP) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT36))))
+(VALUE-ASSIGNMENT . #S(ZEBU::ZB-RULE :-NAME VALUE-ASSIGNMENT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER TYPE "::=" VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE VALUE))) :-BUILD-FN VALUE-ASSIGNMENT37) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "OBJECT-IDENTITY" "STATUS" STATUS "DESCRIPTION" DESCRIPTION OBJECT-IDENTITY-REFERENCE "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-IDENTITY) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT38) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "MODULE-IDENTITY" "LAST-UPDATED" LAST-UPDATED "ORGANIZATION" ORGANIZATION "CONTACT-INFO" CONTACT-INFO "DESCRIPTION" DESCRIPTION MODULE-REVISION* "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :MODULE-IDENTITY) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT39) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "OBJECT-TYPE" "SYNTAX" TYPE OBJECT-TYPE-UNITS OBJECT-TYPE-ACCESS "STATUS" STATUS "DESCRIPTION" DESCRIPTION OBJECT-TYPE-INDEX OBJECT-TYPE-AUGMENTS OBJECT-TYPE-REFERENCE OBJECT-TYPE-DEFVAL "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT40) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "NOTIFICATION-TYPE" NOTIFICATION-TYPE-OBJECTS "STATUS" STATUS "DESCRIPTION" DESCRIPTION "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :NOTIFICATION-TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT41) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "NOTIFICATION-GROUP" "NOTIFICATIONS" "{" IDENTIFIER+\,1$ "}" "STATUS" STATUS "DESCRIPTION" DESCRIPTION "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :NOTIFICATION-GROUP) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT42) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "MODULE-COMPLIANCE" "STATUS" STATUS "DESCRIPTION" DESCRIPTION MODULE-COMPLIANCE-BODY+ "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :MODULE-COMPLIANCE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT43) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "OBJECT-GROUP" "OBJECTS" "{" IDENTIFIER+\,1$ "}" "STATUS" STATUS "DESCRIPTION" DESCRIPTION "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-GROUP) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT44))))
(STATUS . #S(ZEBU::ZB-RULE :-NAME STATUS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
(DESCRIPTION . #S(ZEBU::ZB-RULE :-NAME DESCRIPTION :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (STRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
(LAST-UPDATED . #S(ZEBU::ZB-RULE :-NAME LAST-UPDATED :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (STRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
@@ -747,9 +747,9 @@
(OBJECT-IDENTIFIER-TYPE . #S(ZEBU::ZB-RULE :-NAME OBJECT-IDENTIFIER-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("OBJECT" "IDENTIFIER") :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
(VALUE . #S(ZEBU::ZB-RULE :-NAME VALUE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (BUILTIN-VALUE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
(BUILTIN-VALUE . #S(ZEBU::ZB-RULE :-NAME BUILTIN-VALUE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJECT-IDENTIFIER-VALUE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(OBJECT-IDENTIFIER-VALUE . #S(ZEBU::ZB-RULE :-NAME OBJECT-IDENTIFIER-VALUE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("{" OBJ-ID-COMPONENT+ "}") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE OBJECT-IDENTIFIER-VALUE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJ-ID-COMPONENT+))) :-BUILD-FN OBJECT-IDENTIFIER-VALUE28))))
+(OBJECT-IDENTIFIER-VALUE . #S(ZEBU::ZB-RULE :-NAME OBJECT-IDENTIFIER-VALUE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("{" OBJ-ID-COMPONENT+ "}") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE OBJECT-IDENTIFIER-VALUE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJ-ID-COMPONENT+))) :-BUILD-FN OBJECT-IDENTIFIER-VALUE30))))
(OBJ-ID-COMPONENT . #S(ZEBU::ZB-RULE :-NAME OBJ-ID-COMPONENT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAME-AND-NUMBER-FORM) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAME-FORM) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NUMBER-FORM) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(NAME-AND-NUMBER-FORM . #S(ZEBU::ZB-RULE :-NAME NAME-AND-NUMBER-FORM :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "(" NUMBER-FORM ")") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE OBJ-ID-COMPONENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE NUMBER-FORM))) :-BUILD-FN NAME-AND-NUMBER-FORM27))))
+(NAME-AND-NUMBER-FORM . #S(ZEBU::ZB-RULE :-NAME NAME-AND-NUMBER-FORM :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "(" NUMBER-FORM ")") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE OBJ-ID-COMPONENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE NUMBER-FORM))) :-BUILD-FN NAME-AND-NUMBER-FORM29))))
(NAME-FORM . #S(ZEBU::ZB-RULE :-NAME NAME-FORM :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
(NUMBER-FORM . #S(ZEBU::ZB-RULE :-NAME NUMBER-FORM :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
(CHOICE-TYPE . #S(ZEBU::ZB-RULE :-NAME CHOICE-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("CHOICE" "{" GARBAGE+ "}") :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
@@ -768,22 +768,22 @@
(TAG . #S(ZEBU::ZB-RULE :-NAME TAG :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("[" CLASS CLASS-NUMBER "]") :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
(CLASS-NUMBER . #S(ZEBU::ZB-RULE :-NAME CLASS-NUMBER :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SIGNED-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
(CLASS . #S(ZEBU::ZB-RULE :-NAME CLASS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("UNIVERSAL") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("APPLICATION") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("PRIVATE") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
-(GARBAGE* . #S(ZEBU::ZB-RULE :-NAME GARBAGE* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (GARBAGE GARBAGE*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE GARBAGE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE GARBAGE*))) :-BUILD-FN GARBAGE*26))))
-(NAMED-NUMBER+\,1$ . #S(ZEBU::ZB-RULE :-NAME NAMED-NUMBER+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAMED-NUMBER) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NAMED-NUMBER))) :-BUILD-FN NAMED-NUMBER+\,1$24) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAMED-NUMBER "," NAMED-NUMBER+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NAMED-NUMBER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE NAMED-NUMBER+\,1$))) :-BUILD-FN NAMED-NUMBER+\,1$25))))
-(SPLITED-NUMBERS+\|1$ . #S(ZEBU::ZB-RULE :-NAME SPLITED-NUMBERS+\|1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SPLITED-NUMBERS) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SPLITED-NUMBERS))) :-BUILD-FN SPLITED-NUMBERS+\|1$22) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SPLITED-NUMBERS "|" SPLITED-NUMBERS+\|1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SPLITED-NUMBERS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE SPLITED-NUMBERS+\|1$))) :-BUILD-FN SPLITED-NUMBERS+\|1$23))))
-(NUMBERS+\|1$ . #S(ZEBU::ZB-RULE :-NAME NUMBERS+\|1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (NUMBERS) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NUMBERS))) :-BUILD-FN NUMBERS+\|1$20) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NUMBERS "|" NUMBERS+\|1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NUMBERS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE NUMBERS+\|1$))) :-BUILD-FN NUMBERS+\|1$21))))
-(OBJ-ID-COMPONENT+ . #S(ZEBU::ZB-RULE :-NAME OBJ-ID-COMPONENT+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJ-ID-COMPONENT) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJ-ID-COMPONENT))) :-BUILD-FN OBJ-ID-COMPONENT+18) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJ-ID-COMPONENT OBJ-ID-COMPONENT+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJ-ID-COMPONENT) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE OBJ-ID-COMPONENT+))) :-BUILD-FN OBJ-ID-COMPONENT+19))))
-(MODULE-COMPLIANCE-ITEM* . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-ITEM* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-ITEM MODULE-COMPLIANCE-ITEM*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-COMPLIANCE-ITEM) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE MODULE-COMPLIANCE-ITEM*))) :-BUILD-FN MODULE-COMPLIANCE-ITEM*17))))
-(|Rest-IDENTIFIER*,1$| . #S(ZEBU::ZB-RULE :-NAME |Rest-IDENTIFIER*,1$| :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("," IDENTIFIER |Rest-IDENTIFIER*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-IDENTIFIER*,1$|))) :-BUILD-FN |Rest-IDENTIFIER*,1$16|))))
-(IDENTIFIER*\,1$ . #S(ZEBU::ZB-RULE :-NAME IDENTIFIER*\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER |Rest-IDENTIFIER*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-IDENTIFIER*,1$|))) :-BUILD-FN IDENTIFIER*\,1$15))))
-(OBJECT-TYPE-INDEX-VALUE+\,1$ . #S(ZEBU::ZB-RULE :-NAME OBJECT-TYPE-INDEX-VALUE+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJECT-TYPE-INDEX-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJECT-TYPE-INDEX-VALUE))) :-BUILD-FN OBJECT-TYPE-INDEX-VALUE+\,1$13) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJECT-TYPE-INDEX-VALUE "," OBJECT-TYPE-INDEX-VALUE+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJECT-TYPE-INDEX-VALUE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE OBJECT-TYPE-INDEX-VALUE+\,1$))) :-BUILD-FN OBJECT-TYPE-INDEX-VALUE+\,1$14))))
-(MODULE-COMPLIANCE-BODY+ . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-BODY+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-BODY) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-COMPLIANCE-BODY))) :-BUILD-FN MODULE-COMPLIANCE-BODY+11) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-BODY MODULE-COMPLIANCE-BODY+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-COMPLIANCE-BODY) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE MODULE-COMPLIANCE-BODY+))) :-BUILD-FN MODULE-COMPLIANCE-BODY+12))))
-(IDENTIFIER+\,1$ . #S(ZEBU::ZB-RULE :-NAME IDENTIFIER+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER))) :-BUILD-FN IDENTIFIER+\,1$9) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "," IDENTIFIER+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE IDENTIFIER+\,1$))) :-BUILD-FN IDENTIFIER+\,1$10))))
-(MODULE-REVISION* . #S(ZEBU::ZB-RULE :-NAME MODULE-REVISION* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-REVISION MODULE-REVISION*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-REVISION) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE MODULE-REVISION*))) :-BUILD-FN MODULE-REVISION*8))))
-(GARBAGE+ . #S(ZEBU::ZB-RULE :-NAME GARBAGE+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (GARBAGE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE GARBAGE))) :-BUILD-FN GARBAGE+6) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (GARBAGE GARBAGE+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE GARBAGE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE GARBAGE+))) :-BUILD-FN GARBAGE+7))))
-(SYMBOL+\,1$ . #S(ZEBU::ZB-RULE :-NAME SYMBOL+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL))) :-BUILD-FN SYMBOL+\,1$4) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL "," SYMBOL+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE SYMBOL+\,1$))) :-BUILD-FN SYMBOL+\,1$5))))
-(SYMBOLS-FROM-MODULE* . #S(ZEBU::ZB-RULE :-NAME SYMBOLS-FROM-MODULE* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOLS-FROM-MODULE SYMBOLS-FROM-MODULE*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOLS-FROM-MODULE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE SYMBOLS-FROM-MODULE*))) :-BUILD-FN SYMBOLS-FROM-MODULE*3))))
-(|Rest-SYMBOL*,1$| . #S(ZEBU::ZB-RULE :-NAME |Rest-SYMBOL*,1$| :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("," SYMBOL |Rest-SYMBOL*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-SYMBOL*,1$|))) :-BUILD-FN |Rest-SYMBOL*,1$2|))))
-(SYMBOL*\,1$ . #S(ZEBU::ZB-RULE :-NAME SYMBOL*\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL |Rest-SYMBOL*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-SYMBOL*,1$|))) :-BUILD-FN SYMBOL*\,1$1))))
-(ASSIGNMENT* . #S(ZEBU::ZB-RULE :-NAME ASSIGNMENT* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (ASSIGNMENT ASSIGNMENT*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE ASSIGNMENT) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE ASSIGNMENT*))) :-BUILD-FN ASSIGNMENT*0))))
+(GARBAGE* . #S(ZEBU::ZB-RULE :-NAME GARBAGE* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (GARBAGE GARBAGE*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE GARBAGE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE GARBAGE*))) :-BUILD-FN GARBAGE*28))))
+(NAMED-NUMBER+\,1$ . #S(ZEBU::ZB-RULE :-NAME NAMED-NUMBER+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAMED-NUMBER) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NAMED-NUMBER))) :-BUILD-FN NAMED-NUMBER+\,1$26) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAMED-NUMBER "," NAMED-NUMBER+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NAMED-NUMBER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE NAMED-NUMBER+\,1$))) :-BUILD-FN NAMED-NUMBER+\,1$27))))
+(SPLITED-NUMBERS+\|1$ . #S(ZEBU::ZB-RULE :-NAME SPLITED-NUMBERS+\|1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SPLITED-NUMBERS) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SPLITED-NUMBERS))) :-BUILD-FN SPLITED-NUMBERS+\|1$24) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SPLITED-NUMBERS "|" SPLITED-NUMBERS+\|1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SPLITED-NUMBERS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE SPLITED-NUMBERS+\|1$))) :-BUILD-FN SPLITED-NUMBERS+\|1$25))))
+(NUMBERS+\|1$ . #S(ZEBU::ZB-RULE :-NAME NUMBERS+\|1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (NUMBERS) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NUMBERS))) :-BUILD-FN NUMBERS+\|1$22) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NUMBERS "|" NUMBERS+\|1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NUMBERS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE NUMBERS+\|1$))) :-BUILD-FN NUMBERS+\|1$23))))
+(OBJ-ID-COMPONENT+ . #S(ZEBU::ZB-RULE :-NAME OBJ-ID-COMPONENT+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJ-ID-COMPONENT) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJ-ID-COMPONENT))) :-BUILD-FN OBJ-ID-COMPONENT+20) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJ-ID-COMPONENT OBJ-ID-COMPONENT+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJ-ID-COMPONENT) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE OBJ-ID-COMPONENT+))) :-BUILD-FN OBJ-ID-COMPONENT+21))))
+(MODULE-COMPLIANCE-ITEM* . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-ITEM* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-ITEM MODULE-COMPLIANCE-ITEM*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-COMPLIANCE-ITEM) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE MODULE-COMPLIANCE-ITEM*))) :-BUILD-FN MODULE-COMPLIANCE-ITEM*19))))
+(|Rest-IDENTIFIER*,1$| . #S(ZEBU::ZB-RULE :-NAME |Rest-IDENTIFIER*,1$| :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("," IDENTIFIER |Rest-IDENTIFIER*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-IDENTIFIER*,1$|))) :-BUILD-FN |Rest-IDENTIFIER*,1$18|))))
+(IDENTIFIER*\,1$ . #S(ZEBU::ZB-RULE :-NAME IDENTIFIER*\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER |Rest-IDENTIFIER*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-IDENTIFIER*,1$|))) :-BUILD-FN IDENTIFIER*\,1$17))))
+(OBJECT-TYPE-INDEX-VALUE+\,1$ . #S(ZEBU::ZB-RULE :-NAME OBJECT-TYPE-INDEX-VALUE+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJECT-TYPE-INDEX-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJECT-TYPE-INDEX-VALUE))) :-BUILD-FN OBJECT-TYPE-INDEX-VALUE+\,1$15) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJECT-TYPE-INDEX-VALUE "," OBJECT-TYPE-INDEX-VALUE+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJECT-TYPE-INDEX-VALUE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE OBJECT-TYPE-INDEX-VALUE+\,1$))) :-BUILD-FN OBJECT-TYPE-INDEX-VALUE+\,1$16))))
+(MODULE-COMPLIANCE-BODY+ . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-BODY+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-BODY) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-COMPLIANCE-BODY))) :-BUILD-FN MODULE-COMPLIANCE-BODY+13) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-BODY MODULE-COMPLIANCE-BODY+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-COMPLIANCE-BODY) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE MODULE-COMPLIANCE-BODY+))) :-BUILD-FN MODULE-COMPLIANCE-BODY+14))))
+(IDENTIFIER+\,1$ . #S(ZEBU::ZB-RULE :-NAME IDENTIFIER+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER))) :-BUILD-FN IDENTIFIER+\,1$11) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "," IDENTIFIER+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE IDENTIFIER+\,1$))) :-BUILD-FN IDENTIFIER+\,1$12))))
+(MODULE-REVISION* . #S(ZEBU::ZB-RULE :-NAME MODULE-REVISION* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-REVISION MODULE-REVISION*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-REVISION) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE MODULE-REVISION*))) :-BUILD-FN MODULE-REVISION*10))))
+(GARBAGE+ . #S(ZEBU::ZB-RULE :-NAME GARBAGE+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (GARBAGE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE GARBAGE))) :-BUILD-FN GARBAGE+8) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (GARBAGE GARBAGE+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE GARBAGE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE GARBAGE+))) :-BUILD-FN GARBAGE+9))))
+(SYMBOL+\,1$ . #S(ZEBU::ZB-RULE :-NAME SYMBOL+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL))) :-BUILD-FN SYMBOL+\,1$6) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL "," SYMBOL+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE SYMBOL+\,1$))) :-BUILD-FN SYMBOL+\,1$7))))
+(SYMBOLS-FROM-MODULE* . #S(ZEBU::ZB-RULE :-NAME SYMBOLS-FROM-MODULE* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOLS-FROM-MODULE SYMBOLS-FROM-MODULE*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOLS-FROM-MODULE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE SYMBOLS-FROM-MODULE*))) :-BUILD-FN SYMBOLS-FROM-MODULE*4))))
+(|Rest-SYMBOL*,1$| . #S(ZEBU::ZB-RULE :-NAME |Rest-SYMBOL*,1$| :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("," SYMBOL |Rest-SYMBOL*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-SYMBOL*,1$|))) :-BUILD-FN |Rest-SYMBOL*,1$3|))))
+(SYMBOL*\,1$ . #S(ZEBU::ZB-RULE :-NAME SYMBOL*\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL |Rest-SYMBOL*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-SYMBOL*,1$|))) :-BUILD-FN SYMBOL*\,1$2))))
+(ASSIGNMENT* . #S(ZEBU::ZB-RULE :-NAME ASSIGNMENT* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (ASSIGNMENT ASSIGNMENT*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE ASSIGNMENT) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE ASSIGNMENT*))) :-BUILD-FN ASSIGNMENT*1))))
)
\ No newline at end of file
Modified: trunk/asn.1/package.lisp
==============================================================================
--- trunk/asn.1/package.lisp (original)
+++ trunk/asn.1/package.lisp Wed Sep 26 08:57:08 2007
@@ -8,6 +8,7 @@
(:export update-syntax
ber-encode
ber-decode
+ ber-decode-value
ber-encode-type
ber-encode-length
ber-decode-type
@@ -17,12 +18,17 @@
Obj-Id-Component-p
Obj-Id-Component-name
Obj-Id-Component-value
+ Module-Body-Assignment
Module-Body-Assignment-list
+ Value-Assignment
Value-Assignment-name
Value-Assignment-value
+ Module-Definition
Module-Definition-body
+ Assignment
Assignment-type
Assignment-value
+ Object-Identifier-Value
Object-Identifier-Value-value))
(in-package :asn.1)
Modified: trunk/mib/build.lisp
==============================================================================
--- trunk/mib/build.lisp (original)
+++ trunk/mib/build.lisp Wed Sep 26 08:57:08 2007
@@ -99,18 +99,18 @@
nil)
nil)))
-(defun parse (name)
- (let ((l (parse% name)))
+(defun parse (pathname)
+ (mapcar #'parse-value-assignment
+ (parse-value-assignments (parse-mib pathname))))
+
+(defun read-mib (pathname)
+ (let ((l (parse pathname)))
(dolist (i l (list-length l))
(let ((oid (car i)) (name (cdr i)))
(insert-node (resolve-parent oid) (car (last oid)) name)))))
-(defun parse% (name)
- (mapcar #'parse-value-assignment
- (parse-value-assignments (parse-mib (mib-pathname name)))))
-
(defun build-mib-tree ()
(dolist (i *mib-list* t)
(format t "Parsing ~A" i)
- (parse i)
+ (read-mib (mib-pathname i))
(format t ".~%")))
Modified: trunk/mib/package.lisp
==============================================================================
--- trunk/mib/package.lisp (original)
+++ trunk/mib/package.lisp Wed Sep 26 08:57:08 2007
@@ -8,7 +8,7 @@
tree-id tree-name tree-object tree-node
insert-node resolve
reset-mib-tree build-mib-tree
+ read-mib parse
#+lispworks browser))
(in-package :mib)
-
Modified: trunk/net-snmp.asd
==============================================================================
--- trunk/net-snmp.asd (original)
+++ trunk/net-snmp.asd Wed Sep 26 08:57:08 2007
@@ -16,8 +16,7 @@
:cl-ppcre ; for oid resolve
:ironclad ; for v3 support
:net-telent-date ; for time conv
- #-win32
- :iolib ; for network
+ #-win32 :iolib ; for network
:zebu ; for mib parse
:zebu-compiler) ; for asn.1 syntax compile
:components (;; ASN.1
@@ -28,10 +27,13 @@
;; SMI
(:module smi
:components ((:file "package")
+ (:file "null" :depends-on ("package"))
(:file "integer" :depends-on ("package"))
(:file "string" :depends-on ("package"))
(:file "sequence" :depends-on ("package"))
- (:file "oid" :depends-on ("package")))
+ (:file "ipaddr" :depends-on ("package"))
+ (:file "oid" :depends-on ("package"))
+ (:file "pdu" :depends-on ("package")))
:depends-on (asn.1))
;; MIB
(:module mib
Modified: trunk/smi/integer.lisp
==============================================================================
--- trunk/smi/integer.lisp (original)
+++ trunk/smi/integer.lisp Wed Sep 26 08:57:08 2007
@@ -6,7 +6,9 @@
(if (zerop n) (values acc l)
(multiple-value-bind (q r) (floor n 256)
(iter q (cons r acc) (1+ l))))))
- (multiple-value-bind (v l) (iter value nil 0)
+ (multiple-value-bind (v l) (if (zerop value)
+ (values (list 0) 1)
+ (iter value nil 0))
(nconc (ber-encode-type 0 0 2)
(ber-encode-length l)
v))))
Added: trunk/smi/ipaddr.lisp
==============================================================================
--- (empty file)
+++ trunk/smi/ipaddr.lisp Wed Sep 26 08:57:08 2007
@@ -0,0 +1,2 @@
+(in-package :smi)
+
Added: trunk/smi/null.lisp
==============================================================================
--- (empty file)
+++ trunk/smi/null.lisp Wed Sep 26 08:57:08 2007
@@ -0,0 +1,17 @@
+(in-package :smi)
+
+;;; NULL (:null)
+(defmethod ber-encode ((value (eql nil)))
+ (declare (ignore value))
+ (nconc (ber-encode-type 0 0 5)
+ (ber-encode-length 0)))
+
+(defmethod ber-decode-value ((stream stream) (type (eql :null)) length)
+ (declare (type stream stream)
+ (type fixnum length)
+ (ignore type))
+ (assert (zerop length))
+ nil)
+
+(eval-when (:load-toplevel :execute)
+ (install-asn.1-type :null 0 0 5))
Modified: trunk/smi/package.lisp
==============================================================================
--- trunk/smi/package.lisp (original)
+++ trunk/smi/package.lisp Wed Sep 26 08:57:08 2007
@@ -3,7 +3,14 @@
(defpackage com.netease.smi
(:nicknames smi)
(:use :common-lisp :asn.1)
- (:export object-id oid make-object-id))
+ (:export object-id oid make-object-id rev-ids rev-names
+ get-request-pdu
+ get-next-request-pdu
+ response-pdu
+ set-request-pdu
+ inform-request-pdu
+ snmpv2-trap-pdu
+ report-pdu))
(in-package :smi)
Added: trunk/smi/pdu.lisp
==============================================================================
--- (empty file)
+++ trunk/smi/pdu.lisp Wed Sep 26 08:57:08 2007
@@ -0,0 +1,103 @@
+(in-package :smi)
+
+(defclass pdu ()
+ ((request-id :type (unsigned-byte 32)
+ :reader request-id
+ :initform 0
+ :initarg :request-id)
+ (error-status :type integer
+ :reader error-status
+ :initform 0
+ :initarg :error-status)
+ (error-index :type integer
+ :reader error-index
+ :initform 0
+ :initarg :error-index)
+ (variable-bindings :type list
+ :reader variable-bindings
+ :initform nil
+ :initarg :variable-bindings))
+ (:documentation "SNMP Generate PDU Class"))
+
+(defmethod print-object ((obj pdu) stream)
+ (with-slots (request-id error-status error-index variable-bindings) obj
+ (print-unreadable-object (obj stream :type t)
+ (format stream "(~D (~D ~D)) ~A"
+ request-id error-status error-index variable-bindings))))
+
+(defclass get-request-pdu (pdu) () (:documentation "SNMP Get-Request PDU"))
+(defclass get-next-request-pdu (pdu) () (:documentation "SNMP Get-Next-Request PDU"))
+(defclass response-pdu (pdu) () (:documentation "SNMP Response PDU"))
+(defclass set-request-pdu (pdu) () (:documentation "SNMP Set-Request PDU"))
+(defclass inform-request-pdu (pdu) () (:documentation "SNMP Inform-Request PDU"))
+(defclass snmpv2-trap-pdu (pdu) () (:documentation "SNMP V2 Trap PDU"))
+(defclass report-pdu (pdu) () (:documentation "SNMP Report PDU"))
+
+(defun ber-encode-pdu (value tag)
+ (declare (type pdu value)
+ (type fixnum tag))
+ (with-slots (request-id error-status error-index variable-bindings) value
+ (let ((sub-encode (apply #'nconc
+ (map 'list #'ber-encode (nconc (list request-id
+ error-status
+ error-index)
+ (list variable-bindings))))))
+ (nconc (ber-encode-type 2 1 tag)
+ (ber-encode-length (length sub-encode))
+ sub-encode))))
+
+(defmethod ber-encode ((value get-request-pdu)) (ber-encode-pdu value 0))
+(defmethod ber-encode ((value get-next-request-pdu)) (ber-encode-pdu value 1))
+(defmethod ber-encode ((value response-pdu)) (ber-encode-pdu value 2))
+(defmethod ber-encode ((value set-request-pdu)) (ber-encode-pdu value 3))
+(defmethod ber-encode ((value inform-request-pdu)) (ber-encode-pdu value 6))
+(defmethod ber-encode ((value snmpv2-trap-pdu)) (ber-encode-pdu value 7))
+(defmethod ber-encode ((value report-pdu)) (ber-encode-pdu value 8))
+
+(defun ber-decode-pdu (stream length class)
+ (declare (type stream stream)
+ (type fixnum length))
+ (let ((data (ber-decode-value stream :sequence length)))
+ (destructuring-bind (request-id error-status error-index variable-bindings) data
+ (make-instance class
+ :request-id request-id
+ :error-status error-status
+ :error-index error-index
+ :variable-bindings variable-bindings))))
+
+(defmethod ber-decode-value ((stream stream) (type (eql :get-request-pdu)) length)
+ (declare (type fixnum length) (ignore type))
+ (ber-decode-pdu stream length 'get-request-pdu))
+
+(defmethod ber-decode-value ((stream stream) (type (eql :get-next-request-pdu)) length)
+ (declare (type fixnum length) (ignore type))
+ (ber-decode-pdu stream length 'get-request-pdu))
+
+(defmethod ber-decode-value ((stream stream) (type (eql :response-pdu)) length)
+ (declare (type fixnum length) (ignore type))
+ (ber-decode-pdu stream length 'response-pdu))
+
+(defmethod ber-decode-value ((stream stream) (type (eql :set-request-pdu)) length)
+ (declare (type fixnum length) (ignore type))
+ (ber-decode-pdu stream length 'set-request-pdu))
+
+(defmethod ber-decode-value ((stream stream) (type (eql :inform-request-pdu)) length)
+ (declare (type fixnum length) (ignore type))
+ (ber-decode-pdu stream length 'inform-request-pdu))
+
+(defmethod ber-decode-value ((stream stream) (type (eql :snmpv2-trap-pdu)) length)
+ (declare (type fixnum length) (ignore type))
+ (ber-decode-pdu stream length 'snmpv2-trap-pdu))
+
+(defmethod ber-decode-value ((stream stream) (type (eql :report-pdu)) length)
+ (declare (type fixnum length) (ignore type))
+ (ber-decode-pdu stream length 'report-pdu))
+
+(eval-when (:load-toplevel :execute)
+ (install-asn.1-type :get-request-pdu 2 1 0)
+ (install-asn.1-type :get-next-request-pdu 2 1 1)
+ (install-asn.1-type :response-pdu 2 1 2)
+ (install-asn.1-type :set-request-pdu 2 1 3)
+ (install-asn.1-type :inform-request-pdu 2 1 6)
+ (install-asn.1-type :snmpv2-trap-pdu 2 1 7)
+ (install-asn.1-type :report-pdu 2 1 8))
Modified: trunk/smi/sequence.lisp
==============================================================================
--- trunk/smi/sequence.lisp (original)
+++ trunk/smi/sequence.lisp Wed Sep 26 08:57:08 2007
@@ -1,9 +1,5 @@
(in-package :smi)
-;;;;;;;;;;;;;;;;;;;;;;;
-;;;; Special Types ;;;;
-;;;;;;;;;;;;;;;;;;;;;;;
-
;;; SEQUENCE (:sequence)
(defmethod ber-encode ((value sequence))
@@ -31,19 +27,5 @@
(cons (ber-decode-value stream sub-type sub-length) acc)))))))
(iter length nil)))
-;;; NULL (:null)
-(defmethod ber-encode ((value (eql nil)))
- (declare (ignore value))
- (nconc (ber-encode-type 0 0 5)
- (ber-encode-length 0)))
-
-(defmethod ber-decode-value ((stream stream) (type (eql :null)) length)
- (declare (type stream stream)
- (type fixnum length)
- (ignore type))
- (assert (zerop length))
- nil)
-
(eval-when (:load-toplevel :execute)
- (install-asn.1-type :null 0 0 5)
(install-asn.1-type :sequence 0 1 16))
Modified: trunk/smi/string.lisp
==============================================================================
--- trunk/smi/string.lisp (original)
+++ trunk/smi/string.lisp Wed Sep 26 08:57:08 2007
@@ -2,7 +2,7 @@
;;; OCTET STRING (:octet-string)
-(defmethod ber-encode ((value simple-base-string))
+(defmethod ber-encode ((value string))
(nconc (ber-encode-type 0 0 4)
(ber-encode-length (length value))
(map 'list #'char-code value)))