Author: ctian Date: Wed Sep 19 08:35:54 2007 New Revision: 45
Added: trunk/asn.1/asn.1-domain.lisp trunk/asn.1/asn.1.tab trunk/asn.1/smi.lisp trunk/asn.1/syntax.lisp Modified: trunk/asn.1/ber.lisp trunk/asn.1/mib-parse.lisp trunk/asn.1/mib.lisp trunk/asn.1/stream-test.lisp Log: Commit Changes: code reorgnize
Added: trunk/asn.1/asn.1-domain.lisp ============================================================================== --- (empty file) +++ trunk/asn.1/asn.1-domain.lisp Wed Sep 19 08:35:54 2007 @@ -0,0 +1,445 @@ +;;; This file was generated by Zebu (Version 3.5.5) + +(IN-PACKAGE "ASN.1") +(REQUIRE "zebu-package") +(USE-PACKAGE "ZEBU") + +(DEFSTRUCT (OBJECT-IDENTIFIER-VALUE + (:INCLUDE KB-DOMAIN) + (:PRINT-FUNCTION + (LAMBDA + (ITEM STREAM LEVEL &AUX + (%R (OBJECT-IDENTIFIER-VALUE-VALUE ITEM))) + (DECLARE (IGNORE LEVEL)) + (FORMAT STREAM + "{~a}" + (LET ((OBJ-ID-COMPONENTS+ %R)) + (IF (NULL OBJ-ID-COMPONENTS+) + "" + (ZEBU::KB-SEQUENCE-PRINT OBJ-ID-COMPONENTS+ + NIL + NIL))))))) + VALUE) + +(DEFSTRUCT (VALUE-ASSIGNMENT + (:INCLUDE KB-DOMAIN) + (:PRINT-FUNCTION + (LAMBDA + (ITEM STREAM LEVEL &AUX + (%R (VALUE-ASSIGNMENT-NAME ITEM)) + (%S (VALUE-ASSIGNMENT-TYPE ITEM)) + (%T (VALUE-ASSIGNMENT-VALUE ITEM))) + (DECLARE (IGNORE LEVEL)) + (FORMAT STREAM "~a ~a::=~a" %R %S %T)))) + NAME + TYPE + VALUE) + +(DEFSTRUCT (OBJECT-TYPE-ASSIGNMENT + (:INCLUDE VALUE-ASSIGNMENT) + (:PRINT-FUNCTION + (LAMBDA + (ITEM STREAM LEVEL &AUX + (%R (OBJECT-TYPE-ASSIGNMENT-NAME ITEM)) + (%S (OBJECT-TYPE-ASSIGNMENT-SYNTAX ITEM)) + (%T (OBJECT-TYPE-ASSIGNMENT-MAX-ACCESS ITEM)) + (%U (OBJECT-TYPE-ASSIGNMENT-STATUS ITEM)) + (%V (OBJECT-TYPE-ASSIGNMENT-DESCRIPTION ITEM)) + (%W (OBJECT-TYPE-ASSIGNMENT-INDEX ITEM)) + (%X (OBJECT-TYPE-ASSIGNMENT-VALUE ITEM))) + (DECLARE (IGNORE LEVEL)) + (FORMAT STREAM + "~a OBJECT-TYPESYNTAX ~a MAX-ACCESS ~a STATUS ~a DESCRIPTION ~s ~a::=~a" + %R + %S + %T + %U + %V + %W + %X)))) + SYNTAX + MAX-ACCESS + STATUS + DESCRIPTION + INDEX) + +(DEFSTRUCT (ASSIGNMENT + (:INCLUDE KB-DOMAIN) + (:PRINT-FUNCTION + (LAMBDA + (ITEM STREAM LEVEL &AUX (%R (ASSIGNMENT-VALUE ITEM))) + (DECLARE (IGNORE LEVEL)) + (FORMAT STREAM + "~a" + (LET ((TYPE-ASSIGNMENT %R)) + (ZEBU::KB-SEQUENCE-PRINT TYPE-ASSIGNMENT + NIL + NIL)))))) + TYPE + VALUE) + +(DEFSTRUCT (SYMBOLS-FROM-MODULE + (:INCLUDE KB-DOMAIN) + (:PRINT-FUNCTION + (LAMBDA + (ITEM STREAM LEVEL &AUX + (%R (SYMBOLS-FROM-MODULE-SYMBOLS ITEM)) + (%S + (SYMBOLS-FROM-MODULE-GLOBAL-MODULE-REFERENCE ITEM))) + (DECLARE (IGNORE LEVEL)) + (FORMAT STREAM + "~a FROM ~a" + (LET ((SYMBOL+,1$ %R)) + (IF (NULL SYMBOL+,1$) + "" + (LET ((*KB-SEQUENCE-SEPARATOR* ",")) + (DECLARE (SPECIAL + *KB-SEQUENCE-SEPARATOR*)) + (ZEBU::KB-SEQUENCE-PRINT SYMBOL+,1$ + NIL + NIL)))) + %S)))) + SYMBOLS + GLOBAL-MODULE-REFERENCE) + +(DEFSTRUCT (IMPORTS + (:INCLUDE KB-DOMAIN) + (:PRINT-FUNCTION + (LAMBDA (ITEM STREAM LEVEL &AUX (%R (IMPORTS-LIST ITEM))) + (DECLARE (IGNORE LEVEL)) + (FORMAT STREAM + "IMPORTS ~a;" + (LET ((SYMBOLS-FROM-MODULE* %R)) + (ZEBU::KB-SEQUENCE-PRINT SYMBOLS-FROM-MODULE* + NIL + NIL)))))) + (LIST NIL :TYPE (OR NULL KB-SEQUENCE)) + VALID) + +(DEFSTRUCT (EXPORTS + (:INCLUDE KB-DOMAIN) + (:PRINT-FUNCTION + (LAMBDA (ITEM STREAM LEVEL &AUX (%R (EXPORTS-LIST ITEM))) + (DECLARE (IGNORE LEVEL)) + (COND ((KB-SEQUENCE-P %R) + (FORMAT STREAM + "EXPORTS ~a;" + (LET ((SYMBOL*,1$ %R)) + (LET + ((*KB-SEQUENCE-SEPARATOR* ",")) + (DECLARE + (SPECIAL *KB-SEQUENCE-SEPARATOR*)) + (ZEBU::KB-SEQUENCE-PRINT + SYMBOL*,1$ + NIL + NIL))))) + (T (FORMAT STREAM "EXPORTSALL;")))))) + (LIST NIL :TYPE (OR NULL KB-SEQUENCE)) + ALL-EXPORTS) + +(DEFSTRUCT (MODULE-BODY + (:INCLUDE KB-DOMAIN) + (:PRINT-FUNCTION + (LAMBDA + (ITEM STREAM LEVEL &AUX + (%R (MODULE-BODY-EXPORTS ITEM)) + (%S (MODULE-BODY-IMPORTS ITEM)) + (%T (MODULE-BODY-ASSIGNMENT-LIST ITEM))) + (DECLARE (IGNORE LEVEL)) + (FORMAT STREAM + "~a ~a ~a" + %R + %S + (LET ((ASSIGNMENT* %T)) + (ZEBU::KB-SEQUENCE-PRINT ASSIGNMENT* + NIL + NIL)))))) + EXPORTS + IMPORTS + (ASSIGNMENT-LIST NIL :TYPE (OR NULL KB-SEQUENCE))) + +(DEFSTRUCT (MODULE-DEFINITION + (:INCLUDE KB-DOMAIN) + (:PRINT-FUNCTION + (LAMBDA + (ITEM STREAM LEVEL &AUX + (%R (MODULE-DEFINITION-IDENTIFIER ITEM)) + (%S (MODULE-DEFINITION-BODY ITEM))) + (DECLARE (IGNORE LEVEL)) + (FORMAT STREAM "~a DEFINITIONS::=BEGIN ~a END" %R %S)))) + IDENTIFIER + BODY) + +(DEFUN ASSIGNMENT*0 (ASSIGNMENT ASSIGNMENT*) + (MAKE-KB-SEQUENCE :FIRST ASSIGNMENT :REST ASSIGNMENT*)) + +(DEFUN SYMBOL*,1$1 (SYMBOL |Rest-SYMBOL*,1$|) + (MAKE-KB-SEQUENCE :FIRST SYMBOL :REST |Rest-SYMBOL*,1$|)) + +(DEFUN |Rest-SYMBOL*,1$2| (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*) + (MAKE-KB-SEQUENCE :FIRST + SYMBOLS-FROM-MODULE + :REST + SYMBOLS-FROM-MODULE*)) + +(DEFUN SYMBOL+,1$4 (SYMBOL) (MAKE-KB-SEQUENCE :FIRST SYMBOL)) + +(DEFUN SYMBOL+,1$5 (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+7 (GARBAGE GARBAGE+) + (MAKE-KB-SEQUENCE :FIRST GARBAGE :REST GARBAGE+)) + +(DEFUN MODULE-REVISION*8 (MODULE-REVISION MODULE-REVISION*) + (MAKE-KB-SEQUENCE :FIRST MODULE-REVISION :REST MODULE-REVISION*)) + +(DEFUN IDENTIFIER+,1$9 (IDENTIFIER) + (MAKE-KB-SEQUENCE :FIRST IDENTIFIER)) + +(DEFUN IDENTIFIER+,1$10 (IDENTIFIER DUMMY IDENTIFIER+,1$) + (DECLARE (IGNORE DUMMY)) + (MAKE-KB-SEQUENCE :FIRST IDENTIFIER :REST IDENTIFIER+,1$)) + +(DEFUN MODULE-COMPLIANCE-GROUP+11 (MODULE-COMPLIANCE-GROUP) + (MAKE-KB-SEQUENCE :FIRST MODULE-COMPLIANCE-GROUP)) + +(DEFUN MODULE-COMPLIANCE-GROUP+12 + (MODULE-COMPLIANCE-GROUP MODULE-COMPLIANCE-GROUP+) + (MAKE-KB-SEQUENCE :FIRST + MODULE-COMPLIANCE-GROUP + :REST + MODULE-COMPLIANCE-GROUP+)) + +(DEFUN OBJ-ID-COMPONENTS+13 (OBJ-ID-COMPONENTS) + (MAKE-KB-SEQUENCE :FIRST OBJ-ID-COMPONENTS)) + +(DEFUN OBJ-ID-COMPONENTS+14 (OBJ-ID-COMPONENTS OBJ-ID-COMPONENTS+) + (MAKE-KB-SEQUENCE :FIRST OBJ-ID-COMPONENTS :REST OBJ-ID-COMPONENTS+)) + +(DEFUN NAMED-NUMBER+,1$15 (NAMED-NUMBER) + (MAKE-KB-SEQUENCE :FIRST NAMED-NUMBER)) + +(DEFUN NAMED-NUMBER+,1$16 (NAMED-NUMBER DUMMY NAMED-NUMBER+,1$) + (DECLARE (IGNORE DUMMY)) + (MAKE-KB-SEQUENCE :FIRST NAMED-NUMBER :REST NAMED-NUMBER+,1$)) + +(DEFUN GARBAGE*17 (GARBAGE GARBAGE*) + (MAKE-KB-SEQUENCE :FIRST GARBAGE :REST GARBAGE*)) + +(DEFUN OBJECT-IDENTIFIER-VALUE18 (DUMMY OBJ-ID-COMPONENTS+ DUMMY1) + (DECLARE (IGNORE DUMMY1 DUMMY)) + (MAKE-OBJECT-IDENTIFIER-VALUE :VALUE OBJ-ID-COMPONENTS+)) + +(DEFUN VALUE-ASSIGNMENT19 (VALUE-REFERENCE TYPE DUMMY VALUE) + (DECLARE (IGNORE DUMMY)) + (MAKE-VALUE-ASSIGNMENT :NAME VALUE-REFERENCE :TYPE TYPE :VALUE VALUE)) + +(DEFUN VALUE-ASSIGNMENT20 + (VALUE-REFERENCE DUMMY DUMMY1 TYPE DUMMY2 OBJECT-TYPE-ACCESS + DUMMY3 OBJECT-TYPE-STATUS DUMMY4 STRING OBJECT-TYPE-INDEX + DUMMY5 OBJECT-IDENTIFIER-VALUE) + (DECLARE (IGNORE DUMMY5 DUMMY4 DUMMY3 DUMMY2 DUMMY1 DUMMY)) + (MAKE-OBJECT-TYPE-ASSIGNMENT :NAME + VALUE-REFERENCE + :TYPE + :OBJECT-TYPE + :SYNTAX + TYPE + :MAX-ACCESS + OBJECT-TYPE-ACCESS + :STATUS + OBJECT-TYPE-STATUS + :DESCRIPTION + STRING + :INDEX + OBJECT-TYPE-INDEX + :VALUE + OBJECT-IDENTIFIER-VALUE)) + +(DEFUN ASSIGNMENT21 (TYPE-ASSIGNMENT) + (MAKE-ASSIGNMENT :TYPE :TYPE :VALUE TYPE-ASSIGNMENT)) + +(DEFUN ASSIGNMENT22 (VALUE-ASSIGNMENT) + (MAKE-ASSIGNMENT :TYPE :VALUE :VALUE VALUE-ASSIGNMENT)) + +(DEFUN SYMBOLS-FROM-MODULE23 + (SYMBOL+,1$ DUMMY GLOBAL-MODULE-REFERENCE) + (DECLARE (IGNORE DUMMY)) + (MAKE-SYMBOLS-FROM-MODULE :SYMBOLS + SYMBOL+,1$ + :GLOBAL-MODULE-REFERENCE + GLOBAL-MODULE-REFERENCE)) + +(DEFUN IMPORTS24 (DUMMY SYMBOLS-FROM-MODULE* DUMMY1) + (DECLARE (IGNORE DUMMY1 DUMMY)) + (MAKE-IMPORTS :VALID T :LIST SYMBOLS-FROM-MODULE*)) + +(DEFUN EXPORTS25 (DUMMY SYMBOL*,1$ DUMMY1) + (DECLARE (IGNORE DUMMY1 DUMMY)) + (MAKE-EXPORTS :LIST SYMBOL*,1$)) + +(DEFUN EXPORTS26 (DUMMY DUMMY1 DUMMY2) + (DECLARE (IGNORE DUMMY2 DUMMY1 DUMMY)) + (MAKE-EXPORTS :ALL-EXPORTS T)) + +(DEFUN MODULE-BODY27 (EXPORTS IMPORTS ASSIGNMENT*) + (MAKE-MODULE-BODY :ASSIGNMENT-LIST + ASSIGNMENT* + :EXPORTS + EXPORTS + :IMPORTS + IMPORTS)) + +(DEFUN MODULE-DEFINITION28 + (MODULE-IDENTIFIER DUMMY DUMMY1 DUMMY2 MODULE-BODY DUMMY3) + (DECLARE (IGNORE DUMMY3 DUMMY2 DUMMY1 DUMMY)) + (MAKE-MODULE-DEFINITION :IDENTIFIER + MODULE-IDENTIFIER + :BODY + MODULE-BODY)) + + +(EVAL-WHEN (:COMPILE-TOPLEVEL) + (UNLESS (MEMBER "zebu-regex" *MODULES* :TEST #'EQUAL) + (WARN "Load the Zebu Compiler!"))) +(DECLAIM (SPECIAL ZEBU::*REGEX-GROUPS* ZEBU::*REGEX-GROUPINGS*)) +(DEFUN TYPE-REFERENCE + (STRING &OPTIONAL (ZEBU::START 0) (ZEBU::END (LENGTH STRING))) + (WHEN (PROGN + (SETF ZEBU::*REGEX-GROUPINGS* 1) + (BLOCK ZEBU::FINAL-RETURN + (BLOCK ZEBU::COMPARE + (LET ((ZEBU::INDEX ZEBU::START) (LENGTH ZEBU::END)) + (SETF (SVREF ZEBU::*REGEX-GROUPS* 0) + (LIST ZEBU::INDEX NIL)) + (LET ((ZEBU::RANGE + #*0000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)) + (IF (>= ZEBU::INDEX LENGTH) + (RETURN-FROM ZEBU::COMPARE NIL)) + (IF (= 1 + (SBIT ZEBU::RANGE + (CHAR-CODE (CHAR STRING ZEBU::INDEX)))) + (INCF ZEBU::INDEX) + (RETURN-FROM ZEBU::COMPARE NIL))) + (LET ((ZEBU::OINDEX ZEBU::INDEX)) + (BLOCK ZEBU::COMPARE + (DO () + (NIL) + (LET ((ZEBU::RANGE + #*0000000000000000000000000000000000000000000001001111111111000000011111111111111111111111111000000111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)) + (IF (>= ZEBU::INDEX LENGTH) + (RETURN-FROM ZEBU::COMPARE NIL)) + (IF (= 1 + (SBIT + ZEBU::RANGE + (CHAR-CODE (CHAR STRING ZEBU::INDEX)))) + (INCF ZEBU::INDEX) + (RETURN-FROM ZEBU::COMPARE NIL))))) + (DO ((ZEBU::START ZEBU::INDEX (1- ZEBU::START))) + ((< ZEBU::START ZEBU::OINDEX) NIL) + (LET ((ZEBU::INDEX ZEBU::START)) + (BLOCK ZEBU::COMPARE + (SETF (CADR (SVREF ZEBU::*REGEX-GROUPS* 0)) + ZEBU::INDEX) + (RETURN-FROM ZEBU::FINAL-RETURN T))))))))) + (SECOND (SVREF ZEBU::*REGEX-GROUPS* 0)))) + +(DEFUN SIGNED-NUMBER + (STRING &OPTIONAL (ZEBU::START 0) (ZEBU::END (LENGTH STRING))) + (WHEN (PROGN + (SETF ZEBU::*REGEX-GROUPINGS* 1) + (BLOCK ZEBU::FINAL-RETURN + (BLOCK ZEBU::COMPARE + (LET ((ZEBU::INDEX ZEBU::START) (LENGTH ZEBU::END)) + (SETF (SVREF ZEBU::*REGEX-GROUPS* 0) + (LIST ZEBU::INDEX NIL)) + (PROGN + (BLOCK ZEBU::COMPARE + (IF (AND (< ZEBU::INDEX LENGTH) + (EQL (CHAR STRING ZEBU::INDEX) #-)) + (INCF ZEBU::INDEX) + (RETURN-FROM ZEBU::COMPARE NIL))) + T) + (LET ((ZEBU::OINDEX ZEBU::INDEX)) + (BLOCK ZEBU::COMPARE + (DO () + (NIL) + (LET ((ZEBU::RANGE + #*0000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)) + (IF (>= ZEBU::INDEX LENGTH) + (RETURN-FROM ZEBU::COMPARE NIL)) + (IF (= 1 + (SBIT + ZEBU::RANGE + (CHAR-CODE (CHAR STRING ZEBU::INDEX)))) + (INCF ZEBU::INDEX) + (RETURN-FROM ZEBU::COMPARE NIL))))) + (DO ((ZEBU::START ZEBU::INDEX (1- ZEBU::START))) + ((< ZEBU::START ZEBU::OINDEX) NIL) + (LET ((ZEBU::INDEX ZEBU::START)) + (BLOCK ZEBU::COMPARE + (LET ((ZEBU::RANGE + #*0000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)) + (IF (>= ZEBU::INDEX LENGTH) + (RETURN-FROM ZEBU::COMPARE NIL)) + (IF (= 1 + (SBIT + ZEBU::RANGE + (CHAR-CODE + (CHAR STRING ZEBU::INDEX)))) + (INCF ZEBU::INDEX) + (RETURN-FROM ZEBU::COMPARE NIL))) + (SETF (CADR (SVREF ZEBU::*REGEX-GROUPS* 0)) + ZEBU::INDEX) + (RETURN-FROM ZEBU::FINAL-RETURN T))))))))) + (SECOND (SVREF ZEBU::*REGEX-GROUPS* 0)))) + +(DEFUN ANYTHING + (STRING &OPTIONAL (ZEBU::START 0) (ZEBU::END (LENGTH STRING))) + (WHEN (PROGN + (SETF ZEBU::*REGEX-GROUPINGS* 1) + (BLOCK ZEBU::FINAL-RETURN + (BLOCK ZEBU::COMPARE + (LET ((ZEBU::INDEX ZEBU::START) (LENGTH ZEBU::END)) + (SETF (SVREF ZEBU::*REGEX-GROUPS* 0) + (LIST ZEBU::INDEX NIL)) + (LET ((ZEBU::OINDEX ZEBU::INDEX)) + (BLOCK ZEBU::COMPARE + (DO () + (NIL) + (LET ((ZEBU::RANGE + #*1111111111111111111111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111)) + (IF (>= ZEBU::INDEX LENGTH) + (RETURN-FROM ZEBU::COMPARE NIL)) + (IF (= 1 + (SBIT + ZEBU::RANGE + (CHAR-CODE (CHAR STRING ZEBU::INDEX)))) + (INCF ZEBU::INDEX) + (RETURN-FROM ZEBU::COMPARE NIL))))) + (DO ((ZEBU::START ZEBU::INDEX (1- ZEBU::START))) + ((< ZEBU::START ZEBU::OINDEX) NIL) + (LET ((ZEBU::INDEX ZEBU::START)) + (BLOCK ZEBU::COMPARE + (LET ((ZEBU::RANGE + #*1111111111111111111111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111)) + (IF (>= ZEBU::INDEX LENGTH) + (RETURN-FROM ZEBU::COMPARE NIL)) + (IF (= 1 + (SBIT + ZEBU::RANGE + (CHAR-CODE + (CHAR STRING ZEBU::INDEX)))) + (INCF ZEBU::INDEX) + (RETURN-FROM ZEBU::COMPARE NIL))) + (SETF (CADR (SVREF ZEBU::*REGEX-GROUPS* 0)) + ZEBU::INDEX) + (RETURN-FROM ZEBU::FINAL-RETURN T))))))))) + (SECOND (SVREF ZEBU::*REGEX-GROUPS* 0))))
Added: trunk/asn.1/asn.1.tab ============================================================================== --- (empty file) +++ trunk/asn.1/asn.1.tab Wed Sep 19 08:35:54 2007 @@ -0,0 +1,573 @@ + +(:FILE "/home/binghe/cl-net-snmp/asn.1/asn.1.zb" :NAME "ASN.1" :DOMAIN-FILE "asn.1-domain.lisp" :PACKAGE "ASN.1" :GRAMMAR "zebu-mg" :IDENTIFIER-START-CHARS "abcdefghijklmnopqrstuvwxyz" :IDENTIFIER-CONTINUE-CHARS "-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" :CASE-SENSITIVE T :LEX-CATS ((TYPE-REFERENCE "[A-Z][a-zA-Z0-9-]*") (SIGNED-NUMBER "-?[0-9]+") (ANYTHING "[^ ]+")) :DOMAIN (KB-DOMAIN :SUBTYPE (OBJECT-IDENTIFIER-VALUE :SLOTS (VALUE)) :SUBTYPE (VALUE-ASSIGNMENT :SLOTS (NAME TYPE VALUE) :SUBTYPE (OBJECT-TYPE-ASSIGNMENT :SLOTS (SYNTAX MAX-ACCESS STATUS DESCRIPTION INDEX))) :SUBTYPE (ASSIGNMENT :SLOTS (TYPE VALUE)) :SUBTYPE (SYMBOLS-FROM-MODULE :SLOTS (SYMBOLS GLOBAL-MODULE-REFERENCE)) :SUBTYPE (IMPORTS :SLOTS ((LIST KB-SEQUENCE) VALID)) :SUBTYPE (EXPORTS :SLOTS ((LIST KB-SEQUENCE) ALL-EXPORTS)) :SUBTYPE (MODULE-BODY :SLOTS (EXPORTS IMPORTS (ASSIGNMENT-LIST KB-SEQUENCE))) :SUBTYPE (MODULE-DEFINITION :SLOTS (IDENTIFIER BODY))) :DOMAIN-FILE "/home/binghe/cl-net-snmp/asn.1/asn.1-domain.lisp") +#124(ZEBU::THE-EMPTY-STRING ZEBU::AUGMENTED-START ZEBU::THE-END-G-SYMBOL MODULE-DEFINITION MODULE-IDENTIFIER "DEFINITIONS" "::=" "BEGIN" MODULE-BODY "END" MODULE-REFERENCE TYPE-REFERENCE EXPORTS IMPORTS ASSIGNMENT* "EXPORTS" SYMBOL*,1$ ";" "ALL" SYMBOL REFERENCE "IMPORTS" SYMBOLS-FROM-MODULE* SYMBOLS-FROM-MODULE SYMBOL+,1$ "FROM" GLOBAL-MODULE-REFERENCE VALUE-REFERENCE IDENTIFIER ASSIGNMENT TYPE-ASSIGNMENT VALUE-ASSIGNMENT TYPE "MACRO" GARBAGE+ GARBAGE ANYTHING VALUE "OBJECT-IDENTITY" "STATUS" "DESCRIPTION" STRING OBJECT-IDENTIFIER-VALUE "MODULE-IDENTITY" "LAST-UPDATED" "ORGANIZATION" "CONTACT-INFO" MODULE-REVISION* "OBJECT-TYPE" "SYNTAX" "MAX-ACCESS" OBJECT-TYPE-ACCESS OBJECT-TYPE-STATUS OBJECT-TYPE-INDEX "NOTIFICATION-TYPE" "NOTIFICATION-GROUP" "NOTIFICATIONS" "{" IDENTIFIER+,1$ "}" "MODULE-COMPLIANCE" "MODULE" "MANDATORY-GROUPS" MODULE-COMPLIANCE-GROUP+ "OBJECT-GROUP" "OBJECTS" MODULE-REVISION "REVISION" "INDEX" MODULE-COMPLIANCE-GROUP "GROUP" BUILTIN-TYPE NAMED-TYPE OBJECT-IDENTIFIER-TYPE CHOICE-TYPE STRING-TYPE INTEGER-TYPE SEQUENCE-OF-TYPE SEQUENCE-TYPE TEXTUAL-CONVENTION-TYPE TAGGED-TYPE "TEXTUAL-CONVENTION" TEXTUAL-CONVENTION-DISPLAY-HINT TEXTUAL-CONVENTION-REFERENCE "DISPLAY-HINT" "REFERENCE" "OBJECT" "IDENTIFIER" BUILTIN-VALUE OBJ-ID-COMPONENTS+ OBJ-ID-COMPONENTS NAME-AND-NUMBER-FORM NAME-FORM NUMBER-FORM "(" ")" SIGNED-NUMBER "CHOICE" "OCTET" "STRING" STRING-OPTIONS "DisplayString" "SIZE" NUMBERS "|" ".." "INTEGER" NAMED-NUMBER+,1$ NAMED-NUMBER "SEQUENCE" GARBAGE* "OF" TAG "IMPLICIT" "EXPLICIT" "[" CLASS CLASS-NUMBER "]" "UNIVERSAL" "APPLICATION" "PRIVATE" "," |Rest-SYMBOL*,1$| ) + + +#63(5 6 7 9 11 15 17 18 21 25 28 33 36 38 39 40 41 43 44 45 46 48 49 50 54 55 56 57 59 60 61 62 64 65 67 68 70 81 84 85 86 87 94 95 96 97 98 99 101 102 104 105 106 109 111 113 114 115 118 119 120 121 122 ) + +#108((1 . 1)(3 . 6)(4 . 1)(10 . 1)(8 . 3)(8 . 0)(12 . 3)(12 . 3)(12 . 0)(19 . 1)(13 . 3)(13 . 0)(23 . 3)(26 . 1)(20 . 1)(20 . 1)(27 . 1)(29 . 1)(29 . 1)(30 . 3)(30 . 6)(35 . 1)(31 . 4)(31 . 8)(31 . 13)(31 . 13)(31 . 8)(31 . 12)(31 . 14)(31 . 12)(51 . 1)(52 . 1)(66 . 4)(53 . 2)(53 . 0)(69 . 4)(32 . 1)(32 . 1)(71 . 1)(71 . 1)(71 . 1)(71 . 1)(71 . 1)(71 . 1)(71 . 1)(71 . 1)(72 . 1)(79 . 9)(82 . 2)(82 . 0)(83 . 2)(83 . 0)(73 . 2)(37 . 1)(88 . 1)(42 . 3)(90 . 1)(90 . 1)(90 . 1)(91 . 4)(92 . 1)(93 . 1)(74 . 4)(75 . 3)(75 . 2)(100 . 6)(100 . 0)(103 . 3)(103 . 3)(103 . 1)(76 . 6)(76 . 4)(108 . 4)(78 . 4)(77 . 3)(80 . 2)(80 . 3)(80 . 3)(112 . 4)(117 . 1)(116 . 1)(116 . 1)(116 . 1)(116 . 0)(110 . 0)(110 . 2)(107 . 1)(107 . 3)(89 . 1)(89 . 2)(63 . 1)(63 . 2)(58 . 1)(58 . 3)(47 . 0)(47 . 2)(34 . 1)(34 . 2)(24 . 1)(24 . 3)(22 . 0)(22 . 2)(123 . 0)(123 . 3)(16 . 0)(16 . 2)(14 . 0)(14 . 2)) + +#249( +((11 :S 9)) +((2 :A 0)) +((5 :S 3)) +((6 :S 4)) +((7 :S 5)) +((9 :R 5) (11 :R 8) (15 :S 235) (21 :R 8) (28 :R 8)) +((9 :S 7)) +((2 :R 1)) +((5 :R 2)) +((5 :R 3) (11 :R 3) (17 :R 3) (28 :R 3)) +((9 :R 11) (11 :R 11) (21 :S 18) (28 :R 11)) +((9 :R 106) (11 :S 236) (28 :S 27)) +((9 :R 4)) +((17 :S 14)) +((9 :R 6) (11 :R 6) (21 :R 6) (28 :R 6)) +((17 :S 16)) +((9 :R 7) (11 :R 7) (21 :R 7) (28 :R 7)) +((17 :R 9) (25 :R 9) (122 :R 9)) +((11 :S 25) (17 :R 100) (28 :S 27)) +((17 :S 20)) +((9 :R 10) (11 :R 10) (28 :R 10)) +((25 :S 22)) +((11 :S 9)) +((11 :R 12) (17 :R 12) (28 :R 12)) +((11 :R 13) (17 :R 13) (28 :R 13)) +((17 :R 14) (25 :R 14) (122 :R 14)) +((17 :R 15) (25 :R 15) (122 :R 15)) +((11 :R 16) (17 :R 16) (25 :R 16) (38 :R 16) (43 :R 16) (48 :R 16) (54 :R 16) (55 :R 16) (60 :R 16) (64 :R 16) (81 :R 16) (86 :R 16) (97 :R 16) (98 :R 16) (101 :R 16) (106 :R 16) (109 :R 16) (115 :R 16) (122 :R 16)) +((9 :R 17) (11 :R 17) (28 :R 17)) +((9 :R 18) (11 :R 18) (28 :R 18)) +((11 :S 136) (81 :S 137) (86 :S 150) (97 :S 164) (98 :S 168) (101 :S 171) (106 :S 238) (109 :S 239) (115 :S 205)) +((9 :R 19) (11 :R 19) (28 :R 19)) +((6 :S 33)) +((7 :S 34)) +((36 :S 37)) +((9 :S 36)) +((9 :R 20) (11 :R 20) (28 :R 20)) +((9 :R 21) (36 :R 21) (59 :R 21)) +((6 :S 39)) +((57 :S 154)) +((9 :R 22) (11 :R 22) (28 :R 22)) +((39 :S 42)) +((28 :S 43)) +((40 :S 44)) +((41 :S 45)) +((6 :S 46)) +((57 :S 154)) +((9 :R 23) (11 :R 23) (28 :R 23)) +((44 :S 49)) +((41 :S 50)) +((45 :S 51)) +((41 :S 52)) +((46 :S 53)) +((41 :S 54)) +((40 :S 55)) +((41 :S 56)) +((6 :R 94) (67 :S 116)) +((6 :S 58)) +((57 :S 154)) +((9 :R 24) (11 :R 24) (28 :R 24)) +((49 :S 61)) +((11 :S 136) (81 :S 137) (86 :S 150) (97 :S 164) (98 :S 168) (101 :S 171) (106 :S 238) (109 :S 239) (115 :S 205)) +((50 :S 63)) +((28 :S 114)) +((39 :S 65)) +((28 :S 115)) +((40 :S 67)) +((41 :S 68)) +((6 :R 34) (68 :S 120)) +((6 :S 70)) +((57 :S 154)) +((9 :R 25) (11 :R 25) (28 :R 25)) +((39 :S 73)) +((28 :S 74)) +((40 :S 75)) +((41 :S 76)) +((6 :S 77)) +((57 :S 154)) +((9 :R 26) (11 :R 26) (28 :R 26)) +((56 :S 80)) +((57 :S 81)) +((28 :S 243)) +((59 :S 83)) +((39 :S 84)) +((28 :S 85)) +((40 :S 86)) +((41 :S 87)) +((6 :S 88)) +((57 :S 154)) +((9 :R 27) (11 :R 27) (28 :R 27)) +((39 :S 91)) +((28 :S 92)) +((40 :S 93)) +((41 :S 94)) +((61 :S 95)) +((62 :S 96)) +((57 :S 97)) +((28 :S 243)) +((59 :S 99)) +((70 :S 122)) +((6 :S 101)) +((57 :S 154)) +((9 :R 28) (11 :R 28) (28 :R 28)) +((65 :S 104)) +((57 :S 105)) +((28 :S 243)) +((59 :S 107)) +((39 :S 108)) +((28 :S 109)) +((40 :S 110)) +((41 :S 111)) +((6 :S 112)) +((57 :S 154)) +((9 :R 29) (11 :R 29) (28 :R 29)) +((39 :R 30)) +((40 :R 31)) +((41 :S 117)) +((40 :S 118)) +((41 :S 119)) +((6 :R 32) (67 :R 32)) +((57 :S 154)) +((6 :R 33)) +((28 :S 123)) +((40 :S 124)) +((41 :S 125)) +((6 :R 35) (70 :R 35)) +((6 :R 36) (9 :R 36) (11 :R 36) (28 :R 36) (50 :R 36)) +((6 :R 37) (9 :R 37) (11 :R 37) (28 :R 37) (50 :R 37)) +((6 :R 38) (9 :R 38) (11 :R 38) (28 :R 38) (50 :R 38)) +((6 :R 39) (9 :R 39) (11 :R 39) (28 :R 39) (50 :R 39)) +((6 :R 40) (9 :R 40) (11 :R 40) (28 :R 40) (50 :R 40)) +((6 :R 41) (9 :R 41) (11 :R 41) (28 :R 41) (50 :R 41)) +((6 :R 42) (9 :R 42) (11 :R 42) (28 :R 42) (50 :R 42)) +((6 :R 43) (9 :R 43) (11 :R 43) (28 :R 43) (50 :R 43)) +((6 :R 44) (9 :R 44) (11 :R 44) (28 :R 44) (50 :R 44)) +((6 :R 45) (9 :R 45) (11 :R 45) (28 :R 45) (50 :R 45)) +((6 :R 46) (9 :R 46) (11 :R 46) (28 :R 46) (50 :R 46)) +((39 :R 49) (84 :S 146)) +((39 :S 139)) +((28 :S 140)) +((40 :S 141)) +((41 :S 142)) +((49 :R 51) (85 :S 148)) +((49 :S 144)) +((11 :S 136) (81 :S 137) (86 :S 150) (97 :S 164) (98 :S 168) (101 :S 171) (106 :S 238) (109 :S 239) (115 :S 205)) +((6 :R 47) (9 :R 47) (11 :R 47) (28 :R 47) (50 :R 47)) +((41 :S 147)) +((39 :R 48)) +((41 :S 149)) +((49 :R 50)) +((87 :S 151)) +((6 :R 52) (9 :R 52) (11 :R 52) (28 :R 52) (50 :R 52)) +((9 :R 53) (11 :R 53) (28 :R 53)) +((9 :R 54) (11 :R 54) (28 :R 54)) +((28 :S 237) (96 :S 163)) +((59 :S 156)) +((6 :R 55) (9 :R 55) (11 :R 55) (28 :R 55)) +((28 :R 56) (59 :R 56) (96 :R 56)) +((28 :R 57) (59 :R 57) (96 :R 57)) +((28 :R 58) (59 :R 58) (96 :R 58)) +((96 :S 163)) +((95 :S 162)) +((28 :R 59) (59 :R 59) (96 :R 59)) +((28 :R 61) (59 :R 61) (95 :R 61) (96 :R 61)) +((57 :S 165)) +((36 :S 37)) +((59 :S 167)) +((6 :R 62) (9 :R 62) (11 :R 62) (28 :R 62) (50 :R 62)) +((99 :S 169)) +((6 :R 66) (9 :R 66) (11 :R 66) (28 :R 66) (50 :R 66) (94 :S 173)) +((6 :R 63) (9 :R 63) (11 :R 63) (28 :R 63) (50 :R 63)) +((6 :R 66) (9 :R 66) (11 :R 66) (28 :R 66) (50 :R 66) (94 :S 173)) +((6 :R 64) (9 :R 64) (11 :R 64) (28 :R 64) (50 :R 64)) +((102 :S 174)) +((94 :S 175)) +((96 :S 246)) +((95 :S 177)) +((95 :S 178)) +((6 :R 65) (9 :R 65) (11 :R 65) (28 :R 65) (50 :R 65)) +((96 :S 180)) +((95 :R 67)) +((96 :S 182)) +((95 :R 68)) +((96 :S 184)) +((105 :S 185)) +((96 :S 186)) +((95 :S 187)) +((6 :R 70) (9 :R 70) (11 :R 70) (28 :R 70) (50 :R 70)) +((28 :S 191)) +((59 :S 190)) +((6 :R 71) (9 :R 71) (11 :R 71) (28 :R 71) (50 :R 71)) +((94 :S 192)) +((96 :S 193)) +((95 :S 194)) +((59 :R 72) (122 :R 72)) +((36 :S 37) (59 :R 84)) +((59 :S 197)) +((6 :R 73) (9 :R 73) (11 :R 73) (28 :R 73) (50 :R 73)) +((11 :S 136) (81 :S 137) (86 :S 150) (97 :S 164) (98 :S 168) (101 :S 171) (106 :S 238) (109 :S 239) (115 :S 205)) +((6 :R 74) (9 :R 74) (11 :R 74) (28 :R 74) (50 :R 74)) +((6 :R 75) (9 :R 75) (11 :R 75) (28 :R 75) (50 :R 75)) +((11 :S 136) (81 :S 137) (86 :S 150) (97 :S 164) (98 :S 168) (101 :S 171) (106 :S 238) (109 :S 239) (115 :S 205)) +((6 :R 76) (9 :R 76) (11 :R 76) (28 :R 76) (50 :R 76)) +((11 :S 136) (81 :S 137) (86 :S 150) (97 :S 164) (98 :S 168) (101 :S 171) (106 :S 238) (109 :S 239) (115 :S 205)) +((6 :R 77) (9 :R 77) (11 :R 77) (28 :R 77) (50 :R 77)) +((96 :R 83) (119 :S 210) (120 :S 211) (121 :S 212)) +((96 :S 209)) +((118 :S 208)) +((11 :R 78) (81 :R 78) (86 :R 78) (97 :R 78) (98 :R 78) (101 :R 78) (106 :R 78) (109 :R 78) (113 :R 78) (114 :R 78) (115 :R 78)) +((118 :R 79)) +((96 :R 80)) +((96 :R 81)) +((96 :R 82)) +((36 :S 37) (59 :R 84)) +((59 :R 85)) +((28 :S 191)) +((59 :R 87)) +((59 :R 89)) +((6 :R 91)) +((28 :S 243)) +((59 :R 93)) +((6 :R 94) (67 :S 116)) +((6 :R 95)) +((9 :R 97) (59 :R 97)) +((11 :S 25) (28 :S 27)) +((25 :R 99)) +((11 :S 25) (17 :R 100) (28 :S 27)) +((17 :R 101)) +((11 :S 25) (28 :S 27)) +((17 :R 102) (122 :S 228)) +((17 :R 103)) +((17 :R 102) (122 :S 228)) +((17 :R 105)) +((9 :R 106) (11 :S 236) (28 :S 27)) +((9 :R 107)) +((11 :S 25) (17 :R 104) (18 :S 15) (28 :S 27)) +((6 :S 30) (33 :S 32)) +((28 :R 60) (59 :R 60) (94 :S 160) (96 :R 60)) +((57 :S 188) (94 :S 183)) +((57 :S 195) (111 :S 198)) +((59 :R 86) (122 :S 215)) +((28 :S 237) (59 :R 88) (96 :S 163)) +((6 :R 90) (70 :S 122)) +((59 :R 92) (122 :S 219)) +((9 :R 96) (36 :S 37) (59 :R 96)) +((25 :R 98) (122 :S 224)) +((95 :R 69) (104 :S 179) (105 :S 181)) +((11 :S 136) (81 :S 137) (86 :S 150) (97 :S 164) (98 :S 168) (101 :S 171) (106 :S 238) (109 :S 239) (113 :S 201) (114 :S 203) (115 :S 205)) +((11 :S 136) (38 :S 41) (43 :S 48) (48 :S 60) (54 :S 72) (55 :S 79) (60 :S 90) (64 :S 103) (81 :S 137) (86 :S 150) (97 :S 164) (98 :S 168) (101 :S 171) (106 :S 238) (109 :S 239) (115 :S 205))) + +#249( +((3 . 1)(4 . 2)(10 . 8)) +() +() +() +() +((8 . 6)(12 . 10)) +() +() +() +() +((13 . 11)) +((14 . 12)(27 . 248)(29 . 233)(30 . 28)(31 . 29)) +() +() +() +() +() +() +((19 . 245)(20 . 17)(22 . 19)(23 . 226)(24 . 21)(27 . 26)) +() +() +() +((10 . 24)(26 . 23)) +() +() +() +() +() +() +() +((32 . 31)(71 . 126)(72 . 127)(73 . 128)(74 . 129)(75 . 130)(76 . 131)(77 . 132)(78 . 133)(79 . 134)(80 . 135)(112 . 247)) +() +() +() +((34 . 35)(35 . 244)) +() +() +() +() +((37 . 40)(42 . 153)(88 . 152)) +() +() +() +() +() +() +((42 . 47)) +() +() +() +() +() +() +() +() +() +((47 . 57)(66 . 221)) +() +((42 . 59)) +() +() +((32 . 62)(71 . 126)(72 . 127)(73 . 128)(74 . 129)(75 . 130)(76 . 131)(77 . 132)(78 . 133)(79 . 134)(80 . 135)(112 . 247)) +() +((51 . 64)) +() +((52 . 66)) +() +() +((53 . 69)) +() +((42 . 71)) +() +() +() +() +() +() +((42 . 78)) +() +() +() +((58 . 82)) +() +() +() +() +() +() +((42 . 89)) +() +() +() +() +() +() +() +() +((58 . 98)) +() +((63 . 100)(69 . 242)) +() +((42 . 102)) +() +() +() +((58 . 106)) +() +() +() +() +() +() +((42 . 113)) +() +() +() +() +() +() +() +((42 . 121)) +() +() +() +() +() +() +() +() +() +() +() +() +() +() +() +() +((82 . 138)) +() +() +() +() +((83 . 143)) +() +((32 . 145)(71 . 126)(72 . 127)(73 . 128)(74 . 129)(75 . 130)(76 . 131)(77 . 132)(78 . 133)(79 . 134)(80 . 135)(112 . 247)) +() +() +() +() +() +() +() +() +() +((89 . 155)(90 . 241)(91 . 157)(92 . 158)(93 . 159)) +() +() +() +() +() +((93 . 161)) +() +() +() +() +((34 . 166)(35 . 244)) +() +() +() +((100 . 170)) +() +((100 . 172)) +() +() +() +((103 . 176)) +() +() +() +() +() +() +() +() +() +() +() +() +((107 . 189)(108 . 240)) +() +() +() +() +() +() +((35 . 213)(110 . 196)) +() +() +((32 . 199)(71 . 126)(72 . 127)(73 . 128)(74 . 129)(75 . 130)(76 . 131)(77 . 132)(78 . 133)(79 . 134)(80 . 135)(112 . 247)) +() +() +((32 . 202)(71 . 126)(72 . 127)(73 . 128)(74 . 129)(75 . 130)(76 . 131)(77 . 132)(78 . 133)(79 . 134)(80 . 135)(112 . 247)) +() +((32 . 204)(71 . 126)(72 . 127)(73 . 128)(74 . 129)(75 . 130)(76 . 131)(77 . 132)(78 . 133)(79 . 134)(80 . 135)(112 . 247)) +() +((116 . 206)) +((117 . 207)) +() +() +() +() +() +() +((35 . 213)(110 . 214)) +() +((107 . 216)(108 . 240)) +() +() +() +((58 . 220)) +() +((47 . 222)(66 . 221)) +() +() +((19 . 245)(20 . 17)(24 . 225)(27 . 26)) +() +((19 . 245)(20 . 17)(22 . 227)(23 . 226)(24 . 21)(27 . 26)) +() +((19 . 229)(20 . 17)(27 . 26)) +((123 . 230)) +() +((123 . 232)) +() +((14 . 234)(27 . 248)(29 . 233)(30 . 28)(31 . 29)) +() +((16 . 13)(19 . 231)(20 . 17)(27 . 26)) +() +() +() +() +() +((89 . 217)(90 . 241)(91 . 157)(92 . 158)(93 . 159)) +((63 . 218)(69 . 242)) +() +((34 . 223)(35 . 244)) +() +() +((32 . 200)(71 . 126)(72 . 127)(73 . 128)(74 . 129)(75 . 130)(76 . 131)(77 . 132)(78 . 133)(79 . 134)(80 . 135)(112 . 247)) +((32 . 38)(71 . 126)(72 . 127)(73 . 128)(74 . 129)(75 . 130)(76 . 131)(77 . 132)(78 . 133)(79 . 134)(80 . 135)(112 . 247))) +0 + +2 + +#58((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-DEFINITION28)))) +(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-BODY27) #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 EXPORTS25) #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 EXPORTS26) #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 IMPORTS24) #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-MODULE23)))) +(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 (VALUE-REFERENCE) :-SEMANTICS NIL :-BUILD-FN IDENTITY)))) +(VALUE-REFERENCE . #S(ZEBU::ZB-RULE :-NAME VALUE-REFERENCE :-PRODUCTIONS (#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 ASSIGNMENT21) #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 ASSIGNMENT22)))) +(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 (VALUE-REFERENCE TYPE "::=" VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE VALUE-REFERENCE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE VALUE))) :-BUILD-FN VALUE-ASSIGNMENT19) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (VALUE-REFERENCE "OBJECT-IDENTITY" "STATUS" IDENTIFIER "DESCRIPTION" STRING "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (VALUE-REFERENCE "MODULE-IDENTITY" "LAST-UPDATED" STRING "ORGANIZATION" STRING "CONTACT-INFO" STRING "DESCRIPTION" STRING MODULE-REVISION* "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (VALUE-REFERENCE "OBJECT-TYPE" "SYNTAX" TYPE "MAX-ACCESS" OBJECT-TYPE-ACCESS "STATUS" OBJECT-TYPE-STATUS "DESCRIPTION" STRING OBJECT-TYPE-INDEX "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE OBJECT-TYPE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE VALUE-REFERENCE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL SYNTAX :-VALUE TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL MAX-ACCESS :-VALUE OBJECT-TYPE-ACCESS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL STATUS :-VALUE OBJECT-TYPE-STATUS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL DESCRIPTION :-VALUE STRING) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL INDEX :-VALUE OBJECT-TYPE-INDEX) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT20) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (VALUE-REFERENCE "NOTIFICATION-TYPE" "STATUS" IDENTIFIER "DESCRIPTION" STRING "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (VALUE-REFERENCE "NOTIFICATION-GROUP" "NOTIFICATIONS" "{" IDENTIFIER+,1$ "}" "STATUS" IDENTIFIER "DESCRIPTION" STRING "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (VALUE-REFERENCE "MODULE-COMPLIANCE" "STATUS" IDENTIFIER "DESCRIPTION" STRING "MODULE" "MANDATORY-GROUPS" "{" IDENTIFIER+,1$ "}" MODULE-COMPLIANCE-GROUP+ "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (VALUE-REFERENCE "OBJECT-GROUP" "OBJECTS" "{" IDENTIFIER+,1$ "}" "STATUS" IDENTIFIER "DESCRIPTION" STRING "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(OBJECT-TYPE-ACCESS . #S(ZEBU::ZB-RULE :-NAME OBJECT-TYPE-ACCESS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY)))) +(OBJECT-TYPE-STATUS . #S(ZEBU::ZB-RULE :-NAME OBJECT-TYPE-STATUS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY)))) +(MODULE-REVISION . #S(ZEBU::ZB-RULE :-NAME MODULE-REVISION :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("REVISION" STRING "DESCRIPTION" STRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(OBJECT-TYPE-INDEX . #S(ZEBU::ZB-RULE :-NAME OBJECT-TYPE-INDEX :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("INDEX" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(MODULE-COMPLIANCE-GROUP . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-GROUP :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("GROUP" IDENTIFIER "DESCRIPTION" STRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(TYPE . #S(ZEBU::ZB-RULE :-NAME TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (BUILTIN-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAMED-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY)))) +(BUILTIN-TYPE . #S(ZEBU::ZB-RULE :-NAME BUILTIN-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJECT-IDENTIFIER-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (CHOICE-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (STRING-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (INTEGER-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SEQUENCE-OF-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SEQUENCE-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (TEXTUAL-CONVENTION-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (TAGGED-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY)))) +(NAMED-TYPE . #S(ZEBU::ZB-RULE :-NAME NAMED-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-REFERENCE) :-SEMANTICS NIL :-BUILD-FN IDENTITY)))) +(TEXTUAL-CONVENTION-TYPE . #S(ZEBU::ZB-RULE :-NAME TEXTUAL-CONVENTION-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("TEXTUAL-CONVENTION" TEXTUAL-CONVENTION-DISPLAY-HINT "STATUS" IDENTIFIER "DESCRIPTION" STRING TEXTUAL-CONVENTION-REFERENCE "SYNTAX" TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(TEXTUAL-CONVENTION-DISPLAY-HINT . #S(ZEBU::ZB-RULE :-NAME TEXTUAL-CONVENTION-DISPLAY-HINT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("DISPLAY-HINT" STRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(TEXTUAL-CONVENTION-REFERENCE . #S(ZEBU::ZB-RULE :-NAME TEXTUAL-CONVENTION-REFERENCE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("REFERENCE" STRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(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-COMPONENTS+ "}") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE OBJECT-IDENTIFIER-VALUE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJ-ID-COMPONENTS+))) :-BUILD-FN OBJECT-IDENTIFIER-VALUE18)))) +(OBJ-ID-COMPONENTS . #S(ZEBU::ZB-RULE :-NAME OBJ-ID-COMPONENTS :-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 NIL :-BUILD-FN IDENTITY*)))) +(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 (SIGNED-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*)))) +(STRING-TYPE . #S(ZEBU::ZB-RULE :-NAME STRING-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("OCTET" "STRING" STRING-OPTIONS) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("DisplayString" STRING-OPTIONS) :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(STRING-OPTIONS . #S(ZEBU::ZB-RULE :-NAME STRING-OPTIONS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("(" "SIZE" "(" NUMBERS ")" ")") :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(NUMBERS . #S(ZEBU::ZB-RULE :-NAME NUMBERS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SIGNED-NUMBER "|" SIGNED-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SIGNED-NUMBER ".." SIGNED-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SIGNED-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY)))) +(INTEGER-TYPE . #S(ZEBU::ZB-RULE :-NAME INTEGER-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("INTEGER" "(" SIGNED-NUMBER ".." SIGNED-NUMBER ")") :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("INTEGER" "{" NAMED-NUMBER+,1$ "}") :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(NAMED-NUMBER . #S(ZEBU::ZB-RULE :-NAME NAMED-NUMBER :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "(" SIGNED-NUMBER ")") :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(SEQUENCE-TYPE . #S(ZEBU::ZB-RULE :-NAME SEQUENCE-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("SEQUENCE" "{" GARBAGE* "}") :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(SEQUENCE-OF-TYPE . #S(ZEBU::ZB-RULE :-NAME SEQUENCE-OF-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("SEQUENCE" "OF" TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(TAGGED-TYPE . #S(ZEBU::ZB-RULE :-NAME TAGGED-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TAG TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (TAG "IMPLICIT" TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (TAG "EXPLICIT" TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*)))) +(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*17)))) +(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$15) #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$16)))) +(OBJ-ID-COMPONENTS+ . #S(ZEBU::ZB-RULE :-NAME OBJ-ID-COMPONENTS+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJ-ID-COMPONENTS) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJ-ID-COMPONENTS))) :-BUILD-FN OBJ-ID-COMPONENTS+13) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJ-ID-COMPONENTS OBJ-ID-COMPONENTS+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJ-ID-COMPONENTS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE OBJ-ID-COMPONENTS+))) :-BUILD-FN OBJ-ID-COMPONENTS+14)))) +(MODULE-COMPLIANCE-GROUP+ . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-GROUP+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-GROUP) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-COMPLIANCE-GROUP))) :-BUILD-FN MODULE-COMPLIANCE-GROUP+11) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-GROUP MODULE-COMPLIANCE-GROUP+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-COMPLIANCE-GROUP) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE MODULE-COMPLIANCE-GROUP+))) :-BUILD-FN MODULE-COMPLIANCE-GROUP+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)))) +) \ No newline at end of file
Modified: trunk/asn.1/ber.lisp ============================================================================== --- trunk/asn.1/ber.lisp (original) +++ trunk/asn.1/ber.lisp Wed Sep 19 08:35:54 2007 @@ -127,88 +127,27 @@ (read-byte stream)) nil)
-;;;;;;;;;;;;;;;;;;;;;;; -;;;; Special Types ;;;; -;;;;;;;;;;;;;;;;;;;;;;; +;;;; Test Code
-;;; Integer (:integer) - -(defmethod ber-encode ((value integer)) - (assert (<= 0 value)) - (labels ((iter (n acc l) - (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) - (nconc (ber-encode-type 0 0 2) - (ber-encode-length l) - v)))) - -(defmethod ber-decode-value ((stream stream) (type (eql :integer)) length) - (declare (type stream stream) - (type fixnum length) - (ignore type)) - (labels ((iter (i acc) - (if (= i length) acc - (iter (1+ i) (logior (ash acc 8) (read-byte stream)))))) - (iter 0 0))) - -;;; OCTET STRING (:octet-string) - -(defmethod ber-encode ((value simple-base-string)) - (nconc (ber-encode-type 0 0 4) - (ber-encode-length (length value)) - (map 'list #'char-code value))) - -(defmethod ber-decode-value ((stream stream) (type (eql :octet-string)) length) - (declare (type stream stream) - (type fixnum length) - (ignore type)) - (let ((str (make-string length))) - (map-into str #'(lambda () (code-char (read-byte stream)))))) - -;;; SEQUENCE (:sequence) - -(defmethod ber-encode ((value sequence)) - (let ((sub-encode (apply #'nconc - (map 'list #'ber-encode value)))) - (nconc (ber-encode-type 0 1 16) - (ber-encode-length (length sub-encode)) - sub-encode))) - -(defmethod ber-decode-value ((stream stream) (type (eql :sequence)) length) - (declare (type stream stream) - (type fixnum length) - (ignore type)) - (labels ((iter (length-left acc) - (if (zerop length-left) - (nreverse acc) - (multiple-value-bind (sub-type sub-type-length) - (ber-decode-type stream) - (multiple-value-bind (sub-length sub-length-length) - (ber-decode-length stream) - (iter (- length-left - sub-type-length - sub-length-length - sub-length) - (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 :integer 0 0 2) - (install-asn.1-type :octet-string 0 0 4) - (install-asn.1-type :null 0 0 5) - (install-asn.1-type :sequence 0 1 16)) +(defclass ber-stream (fundamental-input-stream) + ((sequence :type sequence :initarg :seq :reader ber-sequence) + (length :type integer :accessor ber-length) + (position :type integer :initform 0 :accessor ber-position))) + +(defmethod shared-initialize :after ((instance ber-stream) slot-names &rest initargs) + (declare (ignore slot-names initargs)) + (setf (ber-length instance) (length (ber-sequence instance)))) + +(defmethod stream-read-byte ((instance ber-stream)) + (if (= (ber-position instance) (ber-length instance)) + :eof + (let ((byte (elt (ber-sequence instance) (ber-position instance)))) + (incf (ber-position instance)) + byte))) + +(defun ber-test (x) + (let ((code (ber-encode x))) + (format t "~A -> ~A~%~{~8,'0B ~}~%~{~D ~}~%" + x (ber-decode (make-instance 'ber-stream :seq code)) + code code) + x))
Modified: trunk/asn.1/mib-parse.lisp ============================================================================== --- trunk/asn.1/mib-parse.lisp (original) +++ trunk/asn.1/mib-parse.lisp Wed Sep 19 08:35:54 2007 @@ -1,16 +1,2 @@ (in-package :asn.1)
-(defun parse-oid-def (syntax-tree) - (let ((module (car syntax-tree))) - (let ((assignment-list (Module-Body-assignment-list - (Module-Definition-body module)))) - (labels ((iter (kb-seq acc) - (if (null (kb-sequence-rest kb-seq)) - (nreverse (cons (kb-sequence-first kb-seq) acc)) - (iter (kb-sequence-rest kb-seq) - (cons (kb-sequence-first kb-seq) acc))))) - (mapcar #'cdr - (delete-if-not #'(lambda (x) (eq (car x) :value)) - (mapcar #'(lambda (x) (cons (assignment-type x) - (assignment-value x))) - (iter assignment-list nil))))))))
Modified: trunk/asn.1/mib.lisp ============================================================================== --- trunk/asn.1/mib.lisp (original) +++ trunk/asn.1/mib.lisp Wed Sep 19 08:35:54 2007 @@ -55,19 +55,40 @@ '("RFC1155-SMI" "SNMPv2-SMI"))
-(defvar *asn.1-def* (merge-pathnames - (make-pathname :name "asn.1" :type "zb" - :directory '(:relative "asn.1")) - (asdf:component-pathname (asdf:find-system :net-snmp)))) - -(defparameter *asn.1-syntax* (merge-pathnames - (make-pathname :name "asn.1" :type "tab" - :directory '(:relative "asn.1")) - (asdf:component-pathname (asdf:find-system :net-snmp)))) - (defun parse-mib (file &key (verbose nil)) (let ((zb:*comment-start* "--") (zb:*comment-brackets* '(("/*" . "*/"))) (zb:*preserve-case* t)) - (zb:file-parser file :grammar (zb:find-grammar "ASN.1") :verbose verbose))) + (zb:file-parser file :grammar (find-grammar "ASN.1") :verbose verbose))) + +(defun parse-oid-def (syntax-tree) + (let ((module (car syntax-tree))) + (let ((assignment-list (Module-Body-assignment-list + (Module-Definition-body module)))) + (labels ((iter (kb-seq acc) + (if (null (kb-sequence-rest kb-seq)) + (nreverse (cons (kb-sequence-first kb-seq) acc)) + (iter (kb-sequence-rest kb-seq) + (cons (kb-sequence-first kb-seq) acc))))) + (mapcar #'cdr + (delete-if-not #'(lambda (x) (eq (car x) :value)) + (mapcar #'(lambda (x) (cons (assignment-type x) + (assignment-value x))) + (iter assignment-list nil)))))))) + +(defun test-parse (name) + (parse-oid-def (parse-mib (mib-pathname name)))) + +(defun mib-display (name &optional (lines 10)) + (let ((file (mib-pathname name))) + (with-open-file (s file :direction :input :element-type 'base-char) + (dotimes (i lines file) + (princ (read-line s)) + (fresh-line))))) + +(defun test-syntax (name) + (parse-mib (merge-pathnames + (make-pathname :name name :type "asn" + :directory '(:relative "asn.1" "test")) + (asdf:component-pathname (asdf:find-system :net-snmp)))))
Added: trunk/asn.1/smi.lisp ============================================================================== --- (empty file) +++ trunk/asn.1/smi.lisp Wed Sep 19 08:35:54 2007 @@ -0,0 +1,87 @@ +(in-package :asn.1) + +;;;;;;;;;;;;;;;;;;;;;;; +;;;; Special Types ;;;; +;;;;;;;;;;;;;;;;;;;;;;; + +;;; Integer (:integer) + +(defmethod ber-encode ((value integer)) + (assert (<= 0 value)) + (labels ((iter (n acc l) + (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) + (nconc (ber-encode-type 0 0 2) + (ber-encode-length l) + v)))) + +(defmethod ber-decode-value ((stream stream) (type (eql :integer)) length) + (declare (type stream stream) + (type fixnum length) + (ignore type)) + (labels ((iter (i acc) + (if (= i length) acc + (iter (1+ i) (logior (ash acc 8) (read-byte stream)))))) + (iter 0 0))) + +;;; OCTET STRING (:octet-string) + +(defmethod ber-encode ((value simple-base-string)) + (nconc (ber-encode-type 0 0 4) + (ber-encode-length (length value)) + (map 'list #'char-code value))) + +(defmethod ber-decode-value ((stream stream) (type (eql :octet-string)) length) + (declare (type stream stream) + (type fixnum length) + (ignore type)) + (let ((str (make-string length))) + (map-into str #'(lambda () (code-char (read-byte stream)))))) + +;;; SEQUENCE (:sequence) + +(defmethod ber-encode ((value sequence)) + (let ((sub-encode (apply #'nconc + (map 'list #'ber-encode value)))) + (nconc (ber-encode-type 0 1 16) + (ber-encode-length (length sub-encode)) + sub-encode))) + +(defmethod ber-decode-value ((stream stream) (type (eql :sequence)) length) + (declare (type stream stream) + (type fixnum length) + (ignore type)) + (labels ((iter (length-left acc) + (if (zerop length-left) + (nreverse acc) + (multiple-value-bind (sub-type sub-type-length) + (ber-decode-type stream) + (multiple-value-bind (sub-length sub-length-length) + (ber-decode-length stream) + (iter (- length-left + sub-type-length + sub-length-length + sub-length) + (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 :integer 0 0 2) + (install-asn.1-type :octet-string 0 0 4) + (install-asn.1-type :null 0 0 5) + (install-asn.1-type :sequence 0 1 16))
Modified: trunk/asn.1/stream-test.lisp ============================================================================== --- trunk/asn.1/stream-test.lisp (original) +++ trunk/asn.1/stream-test.lisp Wed Sep 19 08:35:54 2007 @@ -3,47 +3,3 @@ (eval-when (:compile-toplevel :load-toplevel) (clc:clc-require :zebu-compiler))
-(defclass ber-stream (fundamental-input-stream) - ((sequence :type sequence :initarg :seq :reader ber-sequence) - (length :type integer :accessor ber-length) - (position :type integer :initform 0 :accessor ber-position))) - -(defmethod shared-initialize :after ((instance ber-stream) slot-names &rest initargs) - (declare (ignore slot-names initargs)) - (setf (ber-length instance) (length (ber-sequence instance)))) - -(defmethod stream-read-byte ((instance ber-stream)) - (if (= (ber-position instance) (ber-length instance)) - :eof - (let ((byte (elt (ber-sequence instance) (ber-position instance)))) - (incf (ber-position instance)) - byte))) - -(defun ber-test (x) - (let ((code (ber-encode x))) - (format t "~A -> ~A~%~{~8,'0B ~}~%~{~D ~}~%" - x (ber-decode (make-instance 'ber-stream :seq code)) - code code) - x)) - -(defun mib-display (name &optional (lines 10)) - (let ((file (mib-pathname name))) - (with-open-file (s file :direction :input :element-type 'base-char) - (dotimes (i lines file) - (princ (read-line s)) - (fresh-line))))) - -(defun load-syntax (&optional (def *asn.1-def*) (syntax *asn.1-syntax*)) - (let ((zb:*warn-conflicts* t) - (zb:*allow-conflicts* t)) - (zb:zebu-compile-file def :output-file syntax)) - (zb:zebu-load-file syntax)) - -(defun test-syntax (name) - (parse-mib (merge-pathnames - (make-pathname :name name :type "asn" - :directory '(:relative "asn.1" "test")) - (asdf:component-pathname (asdf:find-system :net-snmp))))) - -(defun test-parse (name) - (parse-oid-def (parse-mib (mib-pathname name))))
Added: trunk/asn.1/syntax.lisp ============================================================================== --- (empty file) +++ trunk/asn.1/syntax.lisp Wed Sep 19 08:35:54 2007 @@ -0,0 +1,21 @@ +(in-package :asn.1) + +(defvar *asn.1-syntax-source* (merge-pathnames + (make-pathname :name "asn.1" :type "zb" + :directory '(:relative "asn.1")) + (asdf:component-pathname (asdf:find-system :net-snmp)))) + +(defparameter *asn.1-syntax* (merge-pathnames + (make-pathname :name "asn.1" :type "tab" + :directory '(:relative "asn.1")) + (asdf:component-pathname (asdf:find-system :net-snmp)))) + +(eval-when (:load-toplevel :execute) + (zebu-load-file *asn.1-syntax*)) + +(defun update-syntax (&optional (zb *asn.1-syntax-source*) (tab *asn.1-syntax*)) + (let ((*warn-conflicts* t) + (*allow-conflicts* t)) + (zebu-compile-file zb :output-file tab) + (zebu-load-file tab))) +
cl-net-snmp-cvs@common-lisp.net