cl-net-snmp-cvs
Threads by month
- ----- 2025 -----
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
September 2007
- 1 participants
- 36 discussions
Author: ctian
Date: Fri Sep 28 00:11:48 2007
New Revision: 66
Modified:
www/index.shtml
Log:
Add Zebu Links
Modified: www/index.shtml
==============================================================================
--- www/index.shtml (original)
+++ www/index.shtml Fri Sep 28 00:11:48 2007
@@ -55,9 +55,15 @@
<a href="http://common-lisp.net/websvn/listing.php?repname=cl-net-snmp&path=%2F&sc=0">
here</a> to view the source code on common-lisp.net's Web-SVN interface, and use
follow command to check out the code:<br/>
+ <br/>
+
<div class="dateline">
svn checkout svn://common-lisp.net/project/cl-net-snmp/svn/trunk cl-net-snmp<br/>
</div>
+
+ <br/>
+ A modify version of ZEBU LALR(1) parser can be found at
+ <a href="http://common-lisp.net/project/cl-net-snmp/archive/zebu/">here</a>.
</div>
<div class="rule"> </div>
<h1>Document</h1>
1
0
Author: ctian
Date: Fri Sep 28 00:08:03 2007
New Revision: 65
Modified:
www/index.shtml
Log:
Update Web
Modified: www/index.shtml
==============================================================================
--- www/index.shtml (original)
+++ www/index.shtml Fri Sep 28 00:08:03 2007
@@ -13,19 +13,10 @@
<div class="shadow1"> </div>
<div class="shadow2"> </div>
<div class="content">
- <h1>Common Lisp Interface of Net-SNMP (cl-net-snmp)</h1>
- <div class="rule"> </div>
- <a href="http://www.net-snmp.org">
- <img src="http://www.net-snmp.org/images/logos/logo1_50.jpg"
- alt="Net-SNMP Logo" class="titleimage"
- style="margin-top: 10px; margin-right: 0px;" border="0"/>
- </a>
+ <h1>CL-NET-SNMP (Pure Lisp without Net-SNMP Now!)</h1>
<h1>About</h1>
<div class="deck">
- cl-net-snmp is a Common Lisp package, an interface to Net-SNMP project:
- the famous open source implementation of Simple Network Management Protocol
- (SNMP). With this package, It's possible to build a network nanagement system
- in common lisp, the most advance computer programming language in the world.
+ Cl-NET-SNMP is a pure lisp SNMP implementation now.
<br/>
This package is still in early development stage, lots of work for me
to do, but I'll continue coding, because I use it for managing my
@@ -36,14 +27,23 @@
<h1>Feature</h1>
<div class="deck">
<ul>
- <li>Base on ASDF and CFFI, can easily run on most CLs.</li>
- <li>Support SNMPv1, SNMPv2c, and SNMPv3, but V3 support limited to authNoPriv.</li>
- <li>Only support the GET pdu now, but we can get multiple value in lists.</li>
+ <li>CLOS based ASN.1 types and BER encoding/decoding (decoding from streams).</li>
+ <li>MIB and OID Name support, with a parser to read ASN.1 based MIB definitions.</li>
+ <li>Support SNMPv1 and SNMPv2c now, but SNMPv3 support based on IronCLAD is doing.</li>
+ <li>SNMP-GET/Walk is supported, but more is coming soon.</li>
+ <li>UDP Networking based on IOLib project.</li>
+ <li>Running on SBCL, LispWorks, and CLISP.</li>
+ <li>A MIB Browser based on LispWorks/CAPI, a CLIM version comming soon.</li>
</ul>
</div>
<div class="rule"> </div>
<h1>Release</h1>
<div class="deck">
+ Fri Sep 28 12:00:00 CST 2007: version 1.0,
+ <a href="http://common-lisp.net/project/cl-net-snmp/release/cl-net-snmp_1.0.tar.gz">
+ get the source.</a><br/>
+ </div>
+ <div class="deck">
Sun Apr 8 20:11:52 CST 2007: version 0.10,
<a href="http://common-lisp.net/project/cl-net-snmp/release/cl-net-snmp_0.10.tar.gz">
get the source.</a><br/>
@@ -75,6 +75,9 @@
CFFI - The Common Foreign Function Interface</a></li>
<li><a href="http://www.sbcl.org/">Steel Bank Common Lisp</a></li>
<li><a href="http://www.cliki.net/Lisp-SNMP">Lisp-SNMP</a></li>
+ <li><a href="http://common-lisp.net/project/iolib/">IOLib</a></li>
+ <li><a href="http://method-combination.net/lisp/ironclad/">Ironclad</a></li>
+ <li><a href="http://www.lispworks.com">LispWorks</a></li>
</ul>
</div>
<div class="rule"> </div>
1
0
Author: ctian
Date: Thu Sep 27 23:49:27 2007
New Revision: 64
Added:
tags/1.0/
- copied from r63, trunk/
Log:
Release 1.0: first pure lisp implementation
1
0

28 Sep '07
Author: ctian
Date: Thu Sep 27 22:46:35 2007
New Revision: 63
Added:
trunk/Makefile
trunk/deliver.lisp
trunk/smi/timeticks.lisp
trunk/snmp/snmp-get.lisp
trunk/snmp/snmp-walk.lisp
Modified:
trunk/asn.1/ber.lisp
trunk/mib/build.lisp
trunk/mib/package.lisp
trunk/mib/tree.lisp
trunk/net-snmp.asd
trunk/smi/message.lisp
trunk/smi/oid.lisp
trunk/smi/package.lisp
trunk/snmp/constants.lisp
trunk/snmp/package.lisp
trunk/snmp/session.lisp
Log:
prerelease, snmp-get can work now
Added: trunk/Makefile
==============================================================================
--- (empty file)
+++ trunk/Makefile Thu Sep 27 22:46:35 2007
@@ -0,0 +1,4 @@
+clean:
+ find . -name "*~" -exec rm {} \;
+ find . -name "*.64ufasl" -exec rm {} \;
+
Modified: trunk/asn.1/ber.lisp
==============================================================================
--- trunk/asn.1/ber.lisp (original)
+++ trunk/asn.1/ber.lisp Thu Sep 27 22:46:35 2007
@@ -108,8 +108,8 @@
(dotimes (i l-or-n)
(setf acc (logior (ash acc 8)
(read-byte stream)))
- (incf length-length)
- acc)))))
+ (incf length-length))
+ acc))))
(values res length-length)))))
(defgeneric ber-encode (value))
Added: trunk/deliver.lisp
==============================================================================
--- (empty file)
+++ trunk/deliver.lisp Thu Sep 27 22:46:35 2007
@@ -0,0 +1,17 @@
+(in-package :cl-user)
+
+(load-all-patches)
+
+;;; Where we are going to deliver the image.
+
+(defvar *delivered-image-name* "mbrowse")
+
+;;; Load the "application".
+
+(clc:clc-require :net-snmp)
+
+(mib:build-mib-tree)
+
+;; Deliver.
+
+(deliver 'mib:browser *delivered-image-name* 5 :interface :capi)
Modified: trunk/mib/build.lisp
==============================================================================
--- trunk/mib/build.lisp (original)
+++ trunk/mib/build.lisp Thu Sep 27 22:46:35 2007
@@ -109,7 +109,7 @@
(let ((oid (car i)) (name (cdr i)))
(insert-node (resolve-parent oid) (car (last oid)) name)))))
-(defun build-mib-tree ()
+(defun build-tree ()
(dolist (i *mib-list* t)
(format t "Parsing ~A" i)
(read-mib (mib-pathname i))
Modified: trunk/mib/package.lisp
==============================================================================
--- trunk/mib/package.lisp (original)
+++ trunk/mib/package.lisp Thu Sep 27 22:46:35 2007
@@ -7,7 +7,7 @@
(:export *mib-tree* *mib-index*
tree-id tree-name tree-object tree-node
insert-node resolve
- reset-mib-tree build-mib-tree
+ reset-tree build-tree
read-mib parse
#+lispworks browser))
Modified: trunk/mib/tree.lisp
==============================================================================
--- trunk/mib/tree.lisp (original)
+++ trunk/mib/tree.lisp Thu Sep 27 22:46:35 2007
@@ -79,8 +79,11 @@
r))))
(defmethod resolve ((name string))
- (reverse
- (tree-id (gethash name *mib-index*))))
+ (let ((names (cl-ppcre:split "\\." name)))
+ (cond ((gethash (first names) *mib-index*)
+ (make-instance 'object-id :id (nconc (reverse (mapcar #'parse-integer (cdr names)))
+ (tree-id (gethash (first names) *mib-index*)))))
+ (t nil))))
(defmethod print-object ((obj object-id) stream)
(with-slots (rev-ids rev-names) obj
@@ -115,7 +118,7 @@
:directory '(:relative "asn.1" "test"))
(asdf:component-pathname (asdf:find-system :net-snmp)))))
-(defun reset-mib-tree ()
+(defun reset-tree ()
(setf *mib-tree* (list (list nil nil nil)))
(setf *mib-index* (make-hash-table :test #'equal))
(insert-node *mib-tree* 0 "zero")
@@ -123,4 +126,4 @@
(values *mib-tree* *mib-index*))
(eval-when (:load-toplevel :execute)
- (reset-mib-tree))
+ (reset-tree))
Modified: trunk/net-snmp.asd
==============================================================================
--- trunk/net-snmp.asd (original)
+++ trunk/net-snmp.asd Thu Sep 27 22:46:35 2007
@@ -4,56 +4,60 @@
(defpackage com.netease.snmp.system
(:nicknames snmp.system)
- (:use :common-lisp :asdf))
+ (:use :common-lisp :asdf)
+ (:export #+lispworks make-fli-templates))
(in-package :snmp.system)
(defsystem net-snmp
:description "Simple Network Manangement Protocol"
- :version "0.8"
+ :version "1.0"
:author "Chun Tian (binghe) <binghe.lisp(a)gmail.com>"
:depends-on (:cl-fad ; for directory and file
:cl-ppcre ; for oid resolve
:ironclad ; for v3 support
:net-telent-date ; for time convert
- #-(and lispworks win32) :iolib
+ #-win32 :iolib ; for networking
:zebu) ; for mib parse
:components (;; ASN.1
(:module asn.1
:components ((:file "package")
- (:file "syntax" :depends-on ("package"))
- (:file "ber" :depends-on ("package"))))
+ (:file "syntax" :depends-on ("package"))
+ (:file "ber" :depends-on ("package"))))
;; 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 "ipaddr" :depends-on ("package"))
- (:file "oid" :depends-on ("package"))
- (:file "pdu" :depends-on ("package"))
- (:file "bulk-pdu" :depends-on ("pdu"))
- (:file "message" :depends-on ("package")))
+ (:file "null" :depends-on ("package"))
+ (:file "integer" :depends-on ("package"))
+ (:file "string" :depends-on ("package"))
+ (:file "sequence" :depends-on ("package"))
+ (:file "ipaddr" :depends-on ("package"))
+ (:file "oid" :depends-on ("package"))
+ (:file "timeticks" :depends-on ("package"))
+ (:file "pdu" :depends-on ("package"))
+ (:file "bulk-pdu" :depends-on ("pdu"))
+ (:file "message" :depends-on ("package")))
:depends-on (asn.1))
;; MIB
(:module mib
:components ((:file "package")
- (:file "tree" :depends-on ("package"))
- (:file "build" :depends-on ("tree"))
+ (:file "tree" :depends-on ("package"))
+ (:file "build" :depends-on ("tree"))
#+lispworks
- (:file "browser" :depends-on ("tree")))
+ (:file "browser" :depends-on ("tree")))
:depends-on (smi))
;; SNMP
(:module snmp
:components ((:file "package")
(:file "constants" :depends-on ("package"))
- (:file "session" :depends-on ("constants")))
+ (:file "session" :depends-on ("constants"))
+ (:file "snmp-get" :depends-on ("session"))
+ (:file "snmp-walk" :depends-on ("session")))
:depends-on (asn.1 smi mib))))
(defsystem net-snmp-devel
:description "SNMP Develop"
- :version "0.1"
+ :version "1.0"
:author "Chun Tian (binghe) <binghe.lisp(a)gmail.com>"
:depends-on (:net-snmp
:zebu-compiler) ; for asn.1 syntax compile
@@ -62,6 +66,7 @@
:components ((:file "devel")))))
;; (fli:start-collecting-template-info)
-;;(defun make-fli-templates ()
-;; (with-open-file (stream "fli-templates.lisp" :direction :output)
-;; (fli:print-collected-template-info :output-stream stream)))
+#+lispworks
+(defun make-fli-templates ()
+ (with-open-file (stream "fli-templates.lisp" :direction :output)
+ (fli:print-collected-template-info :output-stream stream)))
Modified: trunk/smi/message.lisp
==============================================================================
--- trunk/smi/message.lisp (original)
+++ trunk/smi/message.lisp Thu Sep 27 22:46:35 2007
@@ -3,12 +3,12 @@
(defclass message ()
((version :type integer
:initarg :version
- :reader version)
+ :reader message-version)
(community :type string
:initarg :community
- :reader comminity)
+ :reader message-comminity)
(data :initarg :data
- :reader data)))
+ :reader message-data)))
(defmethod ber-encode ((value message))
(with-slots (version community data) value
Modified: trunk/smi/oid.lisp
==============================================================================
--- trunk/smi/oid.lisp (original)
+++ trunk/smi/oid.lisp Thu Sep 27 22:46:35 2007
@@ -5,7 +5,7 @@
(in-package :smi)
(defclass object-id ()
- ((rev-ids :initform nil :type list :initarg :id)
+ ((rev-ids :initform nil :type list :reader oid-revid :initarg :id)
(rev-names :initform nil :type list :reader oid-name :initarg :name)
(length :initform 0 :type integer :reader oid-length)))
@@ -13,9 +13,10 @@
(declare (type object-id oid))
(reverse (slot-value 'rev-ids oid)))
-(defmethod shared-initialize :after ((obj object-id) slot-names &rest initargs)
- (declare (ignore slot-names initargs))
- (with-slots (rev-ids length) obj
+(defmethod initialize-instance :after ((instance object-id)
+ &rest initargs &key &allow-other-keys)
+ (declare (ignore initargs))
+ (with-slots (rev-ids length) instance
(setf length (list-length rev-ids))))
(defmethod make-object-id (ids)
@@ -80,3 +81,12 @@
(eval-when (:load-toplevel :execute)
(install-asn.1-type :object-identifier 0 0 6))
+
+(defun oid-< (oid-1 oid-2)
+ "test if oid-1 is oid-2's child"
+ (let ((o-1 (oid-revid oid-1))
+ (o-2 (oid-revid oid-2))
+ (o-1-len (oid-length oid-1))
+ (o-2-len (oid-length oid-2)))
+ (if (<= o-1-len o-2-len) nil
+ (equal o-2 (nthcdr (- o-1-len o-2-len) o-1)))))
Modified: trunk/smi/package.lisp
==============================================================================
--- trunk/smi/package.lisp (original)
+++ trunk/smi/package.lisp Thu Sep 27 22:46:35 2007
@@ -3,7 +3,10 @@
(defpackage com.netease.smi
(:nicknames smi)
(:use :common-lisp :asn.1 #-(and lispworks win32) :net.sockets)
- (:export object-id oid make-object-id rev-ids rev-names
+ (:export ;; object-id
+ object-id oid make-object-id rev-ids rev-names
+ oid-<
+ ;; pdu
get-request-pdu
get-next-request-pdu
response-pdu
@@ -11,8 +14,15 @@
inform-request-pdu
snmpv2-trap-pdu
report-pdu
+ error-status
+ error-index
+ ;; message
message
- decode-message))
+ decode-message
+ variable-bindings
+ message-data
+ request-id
+ ;; timeticks
+ timeticks ticks hours minutes seconds s/100))
(in-package :smi)
-
Added: trunk/smi/timeticks.lisp
==============================================================================
--- (empty file)
+++ trunk/smi/timeticks.lisp Thu Sep 27 22:46:35 2007
@@ -0,0 +1,51 @@
+(in-package :smi)
+
+(defclass timeticks ()
+ ((ticks :type fixnum :initarg :ticks :initform 0 :reader ticks)
+ (hours :type fixnum)
+ (minutes :type fixnum)
+ (seconds :type fixnum)
+ (seconds/100 :type fixnum)))
+
+(defmethod print-object ((obj timeticks) stream)
+ (with-slots (ticks hours minutes seconds seconds/100) obj
+ (print-unreadable-object (obj stream :type t)
+ (format stream "(~D) ~D:~2,'0D:~2,'0D.~2,'0D"
+ ticks hours minutes seconds seconds/100))))
+
+(defmethod initialize-instance :after ((instance timeticks)
+ &rest initargs &key &allow-other-keys)
+ (declare (ignore initargs))
+ (with-slots (ticks hours minutes seconds seconds/100) instance
+ (multiple-value-bind (s s/100) (floor ticks 100)
+ (setf seconds/100 s/100)
+ (multiple-value-bind (h s) (floor s 3600) ; hours
+ (setf hours h)
+ (multiple-value-bind (m s) (floor s 60) ; minutes
+ (setf minutes m
+ seconds s))))))
+
+(defmethod ber-encode ((tvalue timeticks))
+ (let ((value (ticks tvalue)))
+ (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) (if (zerop value)
+ (values (list 0) 1)
+ (iter value nil 0))
+ (nconc (ber-encode-type 1 0 3)
+ (ber-encode-length l)
+ v)))))
+
+(defmethod ber-decode-value ((stream stream) (type (eql :timeticks)) 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))))))
+ (make-instance 'timeticks :ticks (iter 0 0))))
+
+(eval-when (:load-toplevel :execute)
+ (install-asn.1-type :timeticks 1 0 3))
Modified: trunk/snmp/constants.lisp
==============================================================================
--- trunk/snmp/constants.lisp (original)
+++ trunk/snmp/constants.lisp Thu Sep 27 22:46:35 2007
@@ -40,18 +40,18 @@
(defconstant +asn-double+ (logior +asn-application+ 9))
;;; from snmp.h
-(defconstant +snmp-version-1+ 0)
+(defconstant +snmp-version-1+ 0)
(defconstant +snmp-version-2c+ 1)
-(defconstant +snmp-version-3+ 3)
+(defconstant +snmp-version-3+ 3)
(defconstant +snmp-sec-model-any+ 0)
(defconstant +snmp-sec-model-snmpv1+ 1)
(defconstant +snmp-sec-model-snmpv2c+ 2)
(defconstant +snmp-sec-model-usm+ 3)
-(defconstant +snmp-sec-level-noauth+ 1)
+(defconstant +snmp-sec-level-noauth+ 1)
(defconstant +snmp-sec-level-authnopriv+ 2)
-(defconstant +snmp-sec-level-authpriv+ 3)
+(defconstant +snmp-sec-level-authpriv+ 3)
;; PDU types in SNMPv1, SNMPsec, SNMPv2p, SNMPv2c, SNMPv2u, SNMPv2*, and SNMPv3
(defconstant +snmp-msg-get+
Modified: trunk/snmp/package.lisp
==============================================================================
--- trunk/snmp/package.lisp (original)
+++ trunk/snmp/package.lisp Thu Sep 27 22:46:35 2007
@@ -2,7 +2,8 @@
(defpackage :com.netease.snmp
(:nicknames snmp)
- (:use :common-lisp)
- (:export v1-session v2c-session v3-session))
+ (:use :common-lisp :smi :asn.1 :mib #-win32 :net.sockets #-win32 :io.streams)
+ (:export v1-session v2c-session v3-session
+ snmp-get snmp-walk))
(in-package :snmp)
Modified: trunk/snmp/session.lisp
==============================================================================
--- trunk/snmp/session.lisp (original)
+++ trunk/snmp/session.lisp Thu Sep 27 22:46:35 2007
@@ -1,21 +1,41 @@
(in-package :snmp)
+#-win32
(defclass session ()
- ((peername :reader peername
- :initarg :peername
- :type string)
+ ((socket :reader socket
+ :initarg :socket
+ :type socket)
(version :reader version
:initarg :version
:type integer
- :initform +snmp-version-2c+)))
+ :initform +snmp-version-1+)))
+
+#+win32
+(defclass session ()
+ ((version :reader version
+ :initarg :version
+ :type integer
+ :initform +snmp-version-1+)))
(defclass v1-session (session)
((community :reader community
:initarg :community
:type string
- :initform "public")))
+ :initform "public"))
+ (:documentation "SNMP v1 session, community based"))
-(defclass v2c-session (v1-session) ())
+(defmethod initialize-instance :after ((instance v1-session)
+ &rest initargs &key &allow-other-keys)
+ (declare (ignore initargs))
+ (setf (slot-value instance 'version) +snmp-version-1+))
+
+(defclass v2c-session (v1-session) ()
+ (:documentation "SNMP v2c session, community based"))
+
+(defmethod initialize-instance :after ((instance v2c-session)
+ &rest initargs &key &allow-other-keys)
+ (declare (ignore initargs))
+ (setf (slot-value instance 'version) +snmp-version-2c+))
(defclass v3-session (session)
((security-name :reader security-name
@@ -30,4 +50,10 @@
:type (member :hmac-md5 :hmac-sha1)
:initform :hmac-md5)
(passphrase :initarg :passphrase
- :type string)))
+ :type string))
+ (:documentation "SNMP v3 session, user security model"))
+
+(defmethod initialize-instance :after ((instance v3-session)
+ &rest initargs &key &allow-other-keys)
+ (declare (ignore initargs))
+ (setf (slot-value instance 'version) +snmp-version-3+))
Added: trunk/snmp/snmp-get.lisp
==============================================================================
--- (empty file)
+++ trunk/snmp/snmp-get.lisp Thu Sep 27 22:46:35 2007
@@ -0,0 +1,38 @@
+(in-package :snmp)
+
+(defgeneric snmp-get (object &rest vars)
+ (:documentation "SNMP Get"))
+
+(defmethod snmp-get ((host string) &rest vars)
+ (let ((socket (make-socket :remote-host host
+ :remote-port 161
+ :type :datagram
+ :ipv6 nil)))
+ (let ((session (make-instance 'v2c-session
+ :socket socket
+ :community "public")))
+ (values (apply #'snmp-get session vars)
+ session))))
+
+#-win32
+(defmethod snmp-get ((session v1-session) &rest vars)
+ (let ((vb (mapcar #'(lambda (x) (list (etypecase x
+ (object-id x)
+ (string (resolve x))) nil)) vars)))
+ (let ((message (make-instance 'message
+ :version (version session)
+ :community (community session)
+ :data (make-instance 'get-request-pdu
+ :request-id 0
+ :variable-bindings vb))))
+ (let ((data (ber-encode message)))
+ (socket-send (make-array (length data)
+ :element-type '(unsigned-byte 8)
+ :adjustable nil
+ :initial-contents data
+ #+lispworks :allocation #+lispworks :static)
+ (socket session))
+ (let ((message (decode-message (socket session))))
+ (mapcar #'second
+ (variable-bindings
+ (message-data message))))))))
Added: trunk/snmp/snmp-walk.lisp
==============================================================================
--- (empty file)
+++ trunk/snmp/snmp-walk.lisp Thu Sep 27 22:46:35 2007
@@ -0,0 +1,64 @@
+(in-package :snmp)
+
+(defgeneric snmp-walk (object var)
+ (:documentation "SNMP Walk"))
+
+#-win32
+(defmethod snmp-walk ((host string) var)
+ (let ((socket (make-socket :remote-host host
+ :remote-port 161
+ :type :datagram
+ :ipv6 nil)))
+ (let ((session (make-instance 'v1-session
+ :socket socket
+ :community "public")))
+ (values (snmp-walk session var) session))))
+
+#-win32
+(defmethod snmp-walk ((session v1-session) (var object-id))
+ (labels ((iter (acc)
+ (let ((message (make-instance 'message
+ :version (version session)
+ :community (community session)
+ :data (make-instance 'get-next-request-pdu
+ :request-id 0
+ :variable-bindings (list (list var nil))))))
+ (let ((data (ber-encode message)))
+ (socket-send (make-array (length data)
+ :element-type '(unsigned-byte 8)
+ :adjustable nil
+ :initial-contents data
+ #+lispworks :allocation #+lispworks :static)
+ (socket session))
+ (let ((result (decode-message (socket session))))
+ (if (= (error-status (message-data result)) +snmp-err-nosuchname+)
+ (nreverse acc)
+ (iter (cons (car (variable-bindings (message-data result))) acc))))))))
+ (iter nil)))
+
+#-win32
+(defmethod snmp-walk ((session v2c-session) (var object-id))
+ (labels ((iter (acc)
+ (let ((message (make-instance 'message
+ :version (version session)
+ :community (community session)
+ :data (make-instance 'get-next-request-pdu
+ :request-id 0
+ :variable-bindings (list (list var nil))))))
+ (let ((data (ber-encode message)))
+ (socket-send (make-array (length data)
+ :element-type '(unsigned-byte 8)
+ :adjustable nil
+ :initial-contents data
+ #+lispworks :allocation #+lispworks :static)
+ (socket session))
+ (let ((result (decode-message (socket session))))
+ (let ((vb (car (variable-bindings (message-data result)))))
+ (if (null (second vb))
+ (nreverse acc)
+ (iter (cons vb acc)))))))))
+ (iter nil)))
+
+(defmethod snmp-walk ((session v1-session) (var string))
+ (let ((oid (resolve var)))
+ (when oid (snmp-walk session oid))))
1
0
Author: ctian
Date: Thu Sep 27 12:41:55 2007
New Revision: 62
Removed:
trunk/README
trunk/asn1.lisp
trunk/changelog
trunk/classes.lisp
trunk/copyright
trunk/deliver.lisp
trunk/load.lisp
trunk/lw-dff.lisp
trunk/net-snmp-dff.lisp
trunk/net-snmp.h
trunk/package.lisp
trunk/prettyhell.lisp
trunk/sabrina.lisp
trunk/snmp-api.lisp
trunk/typedefs.lisp
trunk/zilong.lisp
Log:
clean old files, no use now.
1
0
Author: ctian
Date: Thu Sep 27 12:36:16 2007
New Revision: 61
Added:
trunk/asn.1/devel.lisp
trunk/smi/message.lisp
trunk/snmp/constants.lisp
trunk/snmp/session.lisp
Removed:
trunk/constants.lisp
Modified:
trunk/asn.1/syntax.lisp
trunk/net-snmp.asd
trunk/smi/ipaddr.lisp
trunk/smi/package.lisp
trunk/snmp/package.lisp
Log:
SNMP Module
Added: trunk/asn.1/devel.lisp
==============================================================================
--- (empty file)
+++ trunk/asn.1/devel.lisp Thu Sep 27 12:36:16 2007
@@ -0,0 +1,7 @@
+(in-package :asn.1)
+
+(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)))
Modified: trunk/asn.1/syntax.lisp
==============================================================================
--- trunk/asn.1/syntax.lisp (original)
+++ trunk/asn.1/syntax.lisp Thu Sep 27 12:36:16 2007
@@ -16,11 +16,5 @@
(DECLARE (IGNORE LEVEL))
(FORMAT STREAM "<GPF>"))
-(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)))
-
(eval-when (:load-toplevel :execute)
(zebu-load-file *asn.1-syntax*))
Modified: trunk/net-snmp.asd
==============================================================================
--- trunk/net-snmp.asd (original)
+++ trunk/net-snmp.asd Thu Sep 27 12:36:16 2007
@@ -10,15 +10,14 @@
(defsystem net-snmp
:description "Simple Network Manangement Protocol"
- :version "0.7"
+ :version "0.8"
:author "Chun Tian (binghe) <binghe.lisp(a)gmail.com>"
:depends-on (:cl-fad ; for directory and file
:cl-ppcre ; for oid resolve
:ironclad ; for v3 support
- :net-telent-date ; for time conv
- #-win32 :iolib ; for network
- :zebu ; for mib parse
- :zebu-compiler) ; for asn.1 syntax compile
+ :net-telent-date ; for time convert
+ #-(and lispworks win32) :iolib
+ :zebu) ; for mib parse
:components (;; ASN.1
(:module asn.1
:components ((:file "package")
@@ -34,7 +33,8 @@
(:file "ipaddr" :depends-on ("package"))
(:file "oid" :depends-on ("package"))
(:file "pdu" :depends-on ("package"))
- (:file "bulk-pdu" :depends-on ("pdu")))
+ (:file "bulk-pdu" :depends-on ("pdu"))
+ (:file "message" :depends-on ("package")))
:depends-on (asn.1))
;; MIB
(:module mib
@@ -46,27 +46,20 @@
:depends-on (smi))
;; SNMP
(:module snmp
- :components ((:file "package"))
+ :components ((:file "package")
+ (:file "constants" :depends-on ("package"))
+ (:file "session" :depends-on ("constants")))
:depends-on (asn.1 smi mib))))
-;; (:file "package")
-;; (:file "constants" :depends-on ("package"))
-;; (:file "typedefs" :depends-on ("constants"))
-;; (:file "snmp-api" :depends-on ("typedefs"))
-;; (:file "load" :depends-on ("snmp-api"))
-;; (:file "asn1" :depends-on ("load"))
-;; (:file "classes" :depends-on ("asn1"))))
-
-(defsystem sabrina
- :description "Sabrina - Update server status into database"
+(defsystem net-snmp-devel
+ :description "SNMP Develop"
:version "0.1"
:author "Chun Tian (binghe) <binghe.lisp(a)gmail.com>"
:depends-on (:net-snmp
- :hunchentoot
- :clsql-postgresql)
- :components ((:file "sabrina")
- (:file "zilong" :depends-on ("sabrina"))
- (:file "prettyhell" :depends-on ("sabrina"))))
+ :zebu-compiler) ; for asn.1 syntax compile
+ :components (;; ASN.1
+ (:module asn.1
+ :components ((:file "devel")))))
;; (fli:start-collecting-template-info)
;;(defun make-fli-templates ()
Modified: trunk/smi/ipaddr.lisp
==============================================================================
--- trunk/smi/ipaddr.lisp (original)
+++ trunk/smi/ipaddr.lisp Thu Sep 27 12:36:16 2007
@@ -1,2 +1,3 @@
(in-package :smi)
+;;; We use net.sockets:sockaddr class as ipaddr type.
Added: trunk/smi/message.lisp
==============================================================================
--- (empty file)
+++ trunk/smi/message.lisp Thu Sep 27 12:36:16 2007
@@ -0,0 +1,23 @@
+(in-package :smi)
+
+(defclass message ()
+ ((version :type integer
+ :initarg :version
+ :reader version)
+ (community :type string
+ :initarg :community
+ :reader comminity)
+ (data :initarg :data
+ :reader data)))
+
+(defmethod ber-encode ((value message))
+ (with-slots (version community data) value
+ (ber-encode (list version community data))))
+
+(defmethod decode-message (stream)
+ (declare (type stream stream))
+ (destructuring-bind (version community pdu) (ber-decode stream)
+ (make-instance 'message
+ :version version
+ :community community
+ :data pdu)))
Modified: trunk/smi/package.lisp
==============================================================================
--- trunk/smi/package.lisp (original)
+++ trunk/smi/package.lisp Thu Sep 27 12:36:16 2007
@@ -2,7 +2,7 @@
(defpackage com.netease.smi
(:nicknames smi)
- (:use :common-lisp :asn.1)
+ (:use :common-lisp :asn.1 #-(and lispworks win32) :net.sockets)
(:export object-id oid make-object-id rev-ids rev-names
get-request-pdu
get-next-request-pdu
@@ -10,7 +10,9 @@
set-request-pdu
inform-request-pdu
snmpv2-trap-pdu
- report-pdu))
+ report-pdu
+ message
+ decode-message))
(in-package :smi)
Added: trunk/snmp/constants.lisp
==============================================================================
--- (empty file)
+++ trunk/snmp/constants.lisp Thu Sep 27 12:36:16 2007
@@ -0,0 +1,98 @@
+(in-package :snmp)
+
+(defconstant +min-oid-len+ 2)
+(defconstant +max-oid-len+ 128)
+
+(defconstant +usm-auth-ku-len+ 32)
+(defconstant +usm-priv-ku-len+ 32)
+
+(defconstant +asn-boolean+ #x01)
+(defconstant +asn-integer+ #x02)
+(defconstant +asn-bit-str+ #x03)
+(defconstant +asn-octet-str+ #x04)
+(defconstant +asn-null+ #x05)
+(defconstant +asn-object-id+ #x06)
+(defconstant +asn-sequence+ #x10)
+(defconstant +asn-set+ #x11)
+
+(defconstant +asn-universal+ #b00000000)
+(defconstant +asn-application+ #b01000000)
+(defconstant +asn-context+ #b10000000)
+(defconstant +asn-private+ #b11000000)
+
+(defconstant +asn-primitive+ #b00000000)
+(defconstant +asn-constructor+ #b00100000)
+
+;; defined types (from the SMI, RFC 1157)
+(defconstant +asn-ipaddress+ (logior +asn-application+ 0))
+(defconstant +asn-counter+ (logior +asn-application+ 1))
+(defconstant +asn-gauge+ (logior +asn-application+ 2))
+(defconstant +asn-unsigned+ (logior +asn-application+ 2))
+(defconstant +asn-timeticks+ (logior +asn-application+ 3))
+(defconstant +asn-opaque+ (logior +asn-application+ 4))
+
+;; defined types (from the SMI, RFC 1442)
+(defconstant +asn-nsap+ (logior +asn-application+ 5))
+(defconstant +asn-counter64+ (logior +asn-application+ 6))
+(defconstant +asn-uinteger+ (logior +asn-application+ 7))
+
+(defconstant +asn-float+ (logior +asn-application+ 8))
+(defconstant +asn-double+ (logior +asn-application+ 9))
+
+;;; from snmp.h
+(defconstant +snmp-version-1+ 0)
+(defconstant +snmp-version-2c+ 1)
+(defconstant +snmp-version-3+ 3)
+
+(defconstant +snmp-sec-model-any+ 0)
+(defconstant +snmp-sec-model-snmpv1+ 1)
+(defconstant +snmp-sec-model-snmpv2c+ 2)
+(defconstant +snmp-sec-model-usm+ 3)
+
+(defconstant +snmp-sec-level-noauth+ 1)
+(defconstant +snmp-sec-level-authnopriv+ 2)
+(defconstant +snmp-sec-level-authpriv+ 3)
+
+;; PDU types in SNMPv1, SNMPsec, SNMPv2p, SNMPv2c, SNMPv2u, SNMPv2*, and SNMPv3
+(defconstant +snmp-msg-get+
+ (logior +asn-context+ +asn-constructor+ 0))
+
+(defconstant +snmp-msg-getnext+
+ (logior +asn-context+ +asn-constructor+ 1))
+
+(defconstant +snmp-msg-response+
+ (logior +asn-context+ +asn-constructor+ 2))
+
+(defconstant +snmp-msg-set+
+ (logior +asn-context+ +asn-constructor+ 3))
+
+;; PDU types in SNMPv1 and SNMPsec
+(defconstant +snmp-msg-trap+
+ (logior +asn-context+ +asn-constructor+ 4))
+
+;; PDU types in SNMPv2p, SNMPv2c, SNMPv2u, SNMPv2*, and SNMPv3
+(defconstant +snmp-msg-getbulk+
+ (logior +asn-context+ +asn-constructor+ 5))
+
+(defconstant +snmp-msg-inform+
+ (logior +asn-context+ +asn-constructor+ 6))
+
+(defconstant +snmp-msg-trap2+
+ (logior +asn-context+ +asn-constructor+ 7))
+
+;; PDU types in SNMPv2u, SNMPv2*, and SNMPv3
+(defconstant +snmp-msg-report+
+ (logior +asn-context+ +asn-constructor+ 8))
+
+;;; from snmp_client.h
+(defconstant +snmp-stat-success+ 0)
+(defconstant +snmp-stat-error+ 1)
+(defconstant +snmp-stat-timeout+ 2)
+
+(defconstant +snmp-err-success+ 0)
+(defconstant +snmp-err-noerror+ 0)
+(defconstant +snmp-err-toobig+ 1)
+(defconstant +snmp-err-nosuchname+ 2)
+(defconstant +snmp-err-badvalue+ 3)
+(defconstant +snmp-err-readonly+ 4)
+(defconstant +snmp-err-generr+ 5)
Modified: trunk/snmp/package.lisp
==============================================================================
--- trunk/snmp/package.lisp (original)
+++ trunk/snmp/package.lisp Thu Sep 27 12:36:16 2007
@@ -3,6 +3,6 @@
(defpackage :com.netease.snmp
(:nicknames snmp)
(:use :common-lisp)
- (:export ))
+ (:export v1-session v2c-session v3-session))
(in-package :snmp)
Added: trunk/snmp/session.lisp
==============================================================================
--- (empty file)
+++ trunk/snmp/session.lisp Thu Sep 27 12:36:16 2007
@@ -0,0 +1,33 @@
+(in-package :snmp)
+
+(defclass session ()
+ ((peername :reader peername
+ :initarg :peername
+ :type string)
+ (version :reader version
+ :initarg :version
+ :type integer
+ :initform +snmp-version-2c+)))
+
+(defclass v1-session (session)
+ ((community :reader community
+ :initarg :community
+ :type string
+ :initform "public")))
+
+(defclass v2c-session (v1-session) ())
+
+(defclass v3-session (session)
+ ((security-name :reader security-name
+ :initarg :security-name
+ :type string)
+ (security-level :reader security-level
+ :initarg :security-level
+ :type integer
+ :initform +snmp-sec-level-authnopriv+)
+ (security-auth-proto :reader security-auth-proto
+ :initarg :security-auth-proto
+ :type (member :hmac-md5 :hmac-sha1)
+ :initform :hmac-md5)
+ (passphrase :initarg :passphrase
+ :type string)))
1
0
Author: ctian
Date: Thu Sep 27 02:20:05 2007
New Revision: 60
Added:
trunk/smi/bulk-pdu.lisp
Modified:
trunk/asn.1/asn.1-domain.lisp
trunk/asn.1/asn.1.tab
trunk/net-snmp.asd
trunk/smi/pdu.lisp
Log:
Add bulk pdu support
Modified: trunk/asn.1/asn.1-domain.lisp
==============================================================================
--- trunk/asn.1/asn.1-domain.lisp (original)
+++ trunk/asn.1/asn.1-domain.lisp Thu Sep 27 02:20:05 2007
@@ -138,57 +138,57 @@
IDENTIFIER
BODY)
-(DEFUN ASSIGNMENT*1 (ASSIGNMENT ASSIGNMENT*)
+(DEFUN ASSIGNMENT*5 (ASSIGNMENT ASSIGNMENT*)
(MAKE-KB-SEQUENCE :FIRST ASSIGNMENT :REST ASSIGNMENT*))
-(DEFUN SYMBOL*\,1$2 (SYMBOL |Rest-SYMBOL*,1$|)
+(DEFUN SYMBOL*\,1$6 (SYMBOL |Rest-SYMBOL*,1$|)
(MAKE-KB-SEQUENCE :FIRST SYMBOL :REST |Rest-SYMBOL*,1$|))
-(DEFUN |Rest-SYMBOL*,1$3| (DUMMY SYMBOL |Rest-SYMBOL*,1$|)
+(DEFUN |Rest-SYMBOL*,1$7| (DUMMY SYMBOL |Rest-SYMBOL*,1$|)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST SYMBOL :REST |Rest-SYMBOL*,1$|))
-(DEFUN SYMBOLS-FROM-MODULE*4 (SYMBOLS-FROM-MODULE SYMBOLS-FROM-MODULE*)
+(DEFUN SYMBOLS-FROM-MODULE*8 (SYMBOLS-FROM-MODULE SYMBOLS-FROM-MODULE*)
(MAKE-KB-SEQUENCE :FIRST
SYMBOLS-FROM-MODULE
:REST
SYMBOLS-FROM-MODULE*))
-(DEFUN SYMBOL+\,1$6 (SYMBOL) (MAKE-KB-SEQUENCE :FIRST SYMBOL))
+(DEFUN SYMBOL+\,1$9 (SYMBOL) (MAKE-KB-SEQUENCE :FIRST SYMBOL))
-(DEFUN SYMBOL+\,1$7 (SYMBOL DUMMY SYMBOL+\,1$)
+(DEFUN SYMBOL+\,1$10 (SYMBOL DUMMY SYMBOL+\,1$)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST SYMBOL :REST SYMBOL+\,1$))
-(DEFUN GARBAGE+8 (GARBAGE) (MAKE-KB-SEQUENCE :FIRST GARBAGE))
+(DEFUN GARBAGE+11 (GARBAGE) (MAKE-KB-SEQUENCE :FIRST GARBAGE))
-(DEFUN GARBAGE+9 (GARBAGE GARBAGE+)
+(DEFUN GARBAGE+12 (GARBAGE GARBAGE+)
(MAKE-KB-SEQUENCE :FIRST GARBAGE :REST GARBAGE+))
-(DEFUN MODULE-REVISION*10 (MODULE-REVISION MODULE-REVISION*)
+(DEFUN MODULE-REVISION*13 (MODULE-REVISION MODULE-REVISION*)
(MAKE-KB-SEQUENCE :FIRST MODULE-REVISION :REST MODULE-REVISION*))
-(DEFUN IDENTIFIER+\,1$11 (IDENTIFIER)
+(DEFUN IDENTIFIER+\,1$14 (IDENTIFIER)
(MAKE-KB-SEQUENCE :FIRST IDENTIFIER))
-(DEFUN IDENTIFIER+\,1$12 (IDENTIFIER DUMMY IDENTIFIER+\,1$)
+(DEFUN IDENTIFIER+\,1$15 (IDENTIFIER DUMMY IDENTIFIER+\,1$)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST IDENTIFIER :REST IDENTIFIER+\,1$))
-(DEFUN MODULE-COMPLIANCE-BODY+13 (MODULE-COMPLIANCE-BODY)
+(DEFUN MODULE-COMPLIANCE-BODY+16 (MODULE-COMPLIANCE-BODY)
(MAKE-KB-SEQUENCE :FIRST MODULE-COMPLIANCE-BODY))
-(DEFUN MODULE-COMPLIANCE-BODY+14
+(DEFUN MODULE-COMPLIANCE-BODY+17
(MODULE-COMPLIANCE-BODY MODULE-COMPLIANCE-BODY+)
(MAKE-KB-SEQUENCE :FIRST
MODULE-COMPLIANCE-BODY
:REST
MODULE-COMPLIANCE-BODY+))
-(DEFUN OBJECT-TYPE-INDEX-VALUE+\,1$15 (OBJECT-TYPE-INDEX-VALUE)
+(DEFUN OBJECT-TYPE-INDEX-VALUE+\,1$18 (OBJECT-TYPE-INDEX-VALUE)
(MAKE-KB-SEQUENCE :FIRST OBJECT-TYPE-INDEX-VALUE))
-(DEFUN OBJECT-TYPE-INDEX-VALUE+\,1$16
+(DEFUN OBJECT-TYPE-INDEX-VALUE+\,1$19
(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$17 (IDENTIFIER |Rest-IDENTIFIER*,1$|)
+(DEFUN IDENTIFIER*\,1$20 (IDENTIFIER |Rest-IDENTIFIER*,1$|)
(MAKE-KB-SEQUENCE :FIRST IDENTIFIER :REST |Rest-IDENTIFIER*,1$|))
-(DEFUN |Rest-IDENTIFIER*,1$18| (DUMMY IDENTIFIER |Rest-IDENTIFIER*,1$|)
+(DEFUN |Rest-IDENTIFIER*,1$21| (DUMMY IDENTIFIER |Rest-IDENTIFIER*,1$|)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST IDENTIFIER :REST |Rest-IDENTIFIER*,1$|))
-(DEFUN MODULE-COMPLIANCE-ITEM*19
+(DEFUN MODULE-COMPLIANCE-ITEM*22
(MODULE-COMPLIANCE-ITEM MODULE-COMPLIANCE-ITEM*)
(MAKE-KB-SEQUENCE :FIRST
MODULE-COMPLIANCE-ITEM
:REST
MODULE-COMPLIANCE-ITEM*))
-(DEFUN OBJ-ID-COMPONENT+20 (OBJ-ID-COMPONENT)
+(DEFUN OBJ-ID-COMPONENT+23 (OBJ-ID-COMPONENT)
(MAKE-KB-SEQUENCE :FIRST OBJ-ID-COMPONENT))
-(DEFUN OBJ-ID-COMPONENT+21 (OBJ-ID-COMPONENT OBJ-ID-COMPONENT+)
+(DEFUN OBJ-ID-COMPONENT+24 (OBJ-ID-COMPONENT OBJ-ID-COMPONENT+)
(MAKE-KB-SEQUENCE :FIRST OBJ-ID-COMPONENT :REST OBJ-ID-COMPONENT+))
-(DEFUN NUMBERS+\|1$22 (NUMBERS) (MAKE-KB-SEQUENCE :FIRST NUMBERS))
+(DEFUN NUMBERS+\|1$25 (NUMBERS) (MAKE-KB-SEQUENCE :FIRST NUMBERS))
-(DEFUN NUMBERS+\|1$23 (NUMBERS DUMMY NUMBERS+\|1$)
+(DEFUN NUMBERS+\|1$26 (NUMBERS DUMMY NUMBERS+\|1$)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST NUMBERS :REST NUMBERS+\|1$))
-(DEFUN SPLITED-NUMBERS+\|1$24 (SPLITED-NUMBERS)
+(DEFUN SPLITED-NUMBERS+\|1$27 (SPLITED-NUMBERS)
(MAKE-KB-SEQUENCE :FIRST SPLITED-NUMBERS))
-(DEFUN SPLITED-NUMBERS+\|1$25
+(DEFUN SPLITED-NUMBERS+\|1$28
(SPLITED-NUMBERS DUMMY SPLITED-NUMBERS+\|1$)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST SPLITED-NUMBERS :REST SPLITED-NUMBERS+\|1$))
-(DEFUN NAMED-NUMBER+\,1$26 (NAMED-NUMBER)
+(DEFUN NAMED-NUMBER+\,1$29 (NAMED-NUMBER)
(MAKE-KB-SEQUENCE :FIRST NAMED-NUMBER))
-(DEFUN NAMED-NUMBER+\,1$27 (NAMED-NUMBER DUMMY NAMED-NUMBER+\,1$)
+(DEFUN NAMED-NUMBER+\,1$30 (NAMED-NUMBER DUMMY NAMED-NUMBER+\,1$)
(DECLARE (IGNORE DUMMY))
(MAKE-KB-SEQUENCE :FIRST NAMED-NUMBER :REST NAMED-NUMBER+\,1$))
-(DEFUN GARBAGE*28 (GARBAGE GARBAGE*)
+(DEFUN GARBAGE*31 (GARBAGE GARBAGE*)
(MAKE-KB-SEQUENCE :FIRST GARBAGE :REST GARBAGE*))
-(DEFUN NAME-AND-NUMBER-FORM29 (IDENTIFIER DUMMY NUMBER-FORM DUMMY1)
+(DEFUN NAME-AND-NUMBER-FORM32 (IDENTIFIER DUMMY NUMBER-FORM DUMMY1)
(DECLARE (IGNORE DUMMY1 DUMMY))
(MAKE-OBJ-ID-COMPONENT :NAME IDENTIFIER :VALUE NUMBER-FORM))
-(DEFUN OBJECT-IDENTIFIER-VALUE30 (DUMMY OBJ-ID-COMPONENT+ DUMMY1)
+(DEFUN OBJECT-IDENTIFIER-VALUE33 (DUMMY OBJ-ID-COMPONENT+ DUMMY1)
(DECLARE (IGNORE DUMMY1 DUMMY))
(MAKE-OBJECT-IDENTIFIER-VALUE :VALUE OBJ-ID-COMPONENT+))
-(DEFUN VALUE-ASSIGNMENT37 (IDENTIFIER TYPE DUMMY VALUE)
+(DEFUN VALUE-ASSIGNMENT34 (IDENTIFIER TYPE DUMMY VALUE)
(DECLARE (IGNORE DUMMY))
(MAKE-VALUE-ASSIGNMENT :NAME IDENTIFIER :TYPE TYPE :VALUE VALUE))
-(DEFUN VALUE-ASSIGNMENT38
+(DEFUN VALUE-ASSIGNMENT35
(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-ASSIGNMENT39
+(DEFUN VALUE-ASSIGNMENT36
(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-ASSIGNMENT40
+(DEFUN VALUE-ASSIGNMENT45
(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-ASSIGNMENT41
+(DEFUN VALUE-ASSIGNMENT46
(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-ASSIGNMENT42
+(DEFUN VALUE-ASSIGNMENT47
(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-ASSIGNMENT43
+(DEFUN VALUE-ASSIGNMENT48
(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-ASSIGNMENT44
+(DEFUN VALUE-ASSIGNMENT49
(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 ASSIGNMENT45 (TYPE-ASSIGNMENT)
+(DEFUN ASSIGNMENT50 (TYPE-ASSIGNMENT)
(MAKE-ASSIGNMENT :TYPE :TYPE :VALUE TYPE-ASSIGNMENT))
-(DEFUN ASSIGNMENT46 (VALUE-ASSIGNMENT)
+(DEFUN ASSIGNMENT51 (VALUE-ASSIGNMENT)
(MAKE-ASSIGNMENT :TYPE :VALUE :VALUE VALUE-ASSIGNMENT))
-(DEFUN SYMBOLS-FROM-MODULE47
+(DEFUN SYMBOLS-FROM-MODULE52
(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 IMPORTS48 (DUMMY SYMBOLS-FROM-MODULE* DUMMY1)
+(DEFUN IMPORTS53 (DUMMY SYMBOLS-FROM-MODULE* DUMMY1)
(DECLARE (IGNORE DUMMY1 DUMMY))
(MAKE-IMPORTS :VALID T :LIST SYMBOLS-FROM-MODULE*))
-(DEFUN EXPORTS49 (DUMMY SYMBOL*\,1$ DUMMY1)
+(DEFUN EXPORTS54 (DUMMY SYMBOL*\,1$ DUMMY1)
(DECLARE (IGNORE DUMMY1 DUMMY))
(MAKE-EXPORTS :LIST SYMBOL*\,1$))
-(DEFUN EXPORTS50 (DUMMY DUMMY1 DUMMY2)
+(DEFUN EXPORTS55 (DUMMY DUMMY1 DUMMY2)
(DECLARE (IGNORE DUMMY2 DUMMY1 DUMMY))
(MAKE-EXPORTS :ALL-EXPORTS T))
-(DEFUN MODULE-BODY51 (EXPORTS IMPORTS ASSIGNMENT*)
+(DEFUN MODULE-BODY56 (EXPORTS IMPORTS ASSIGNMENT*)
(MAKE-MODULE-BODY :ASSIGNMENT-LIST
ASSIGNMENT*
:EXPORTS
@@ -366,7 +366,7 @@
:IMPORTS
IMPORTS))
-(DEFUN MODULE-DEFINITION52
+(DEFUN MODULE-DEFINITION57
(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 Thu Sep 27 02:20:05 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-DEFINITION52))))
+#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-DEFINITION57))))
(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-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*))))
+(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-BODY56) #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 EXPORTS54) #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 EXPORTS55) #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 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))))
+(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 IMPORTS53) #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-MODULE52))))
(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 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))))
+(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 ASSIGNMENT50) #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 ASSIGNMENT51))))
(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-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))))
+(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-ASSIGNMENT34) #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-ASSIGNMENT35) #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-ASSIGNMENT36) #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-ASSIGNMENT45) #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-ASSIGNMENT46) #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-ASSIGNMENT47) #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-ASSIGNMENT48) #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-ASSIGNMENT49))))
(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-VALUE30))))
+(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-VALUE33))))
(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-FORM29))))
+(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-FORM32))))
(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*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))))
+(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*31))))
+(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$29) #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$30))))
+(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$27) #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$28))))
+(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$25) #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$26))))
+(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+23) #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+24))))
+(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*22))))
+(|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$21|))))
+(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$20))))
+(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$18) #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$19))))
+(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+16) #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+17))))
+(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$14) #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$15))))
+(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*13))))
+(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+11) #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+12))))
+(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$9) #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$10))))
+(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*8))))
+(|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$7|))))
+(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$6))))
+(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*5))))
)
\ No newline at end of file
Modified: trunk/net-snmp.asd
==============================================================================
--- trunk/net-snmp.asd (original)
+++ trunk/net-snmp.asd Thu Sep 27 02:20:05 2007
@@ -33,7 +33,8 @@
(:file "sequence" :depends-on ("package"))
(:file "ipaddr" :depends-on ("package"))
(:file "oid" :depends-on ("package"))
- (:file "pdu" :depends-on ("package")))
+ (:file "pdu" :depends-on ("package"))
+ (:file "bulk-pdu" :depends-on ("pdu")))
:depends-on (asn.1))
;; MIB
(:module mib
Added: trunk/smi/bulk-pdu.lisp
==============================================================================
--- (empty file)
+++ trunk/smi/bulk-pdu.lisp Thu Sep 27 02:20:05 2007
@@ -0,0 +1,21 @@
+(in-package :smi)
+
+(defclass bulk-pdu (base-pdu)
+ ((non-repeaters :type integer
+ :reader non-repeaters
+ :initform 0
+ :initarg :non-repeaters)
+ (max-repetitions :type integer
+ :reader max-repetitions
+ :initform 0
+ :initarg :max-repetitions))
+ (:documentation "SNMP Bulk PDU Class"))
+
+(defclass get-bulk-request-pdu (bulk-pdu) ())
+
+(defmethod print-object ((obj bulk-pdu) stream)
+ (with-slots (request-id non-repeaters max-repetitions variable-bindings) obj
+ (print-unreadable-object (obj stream :type t)
+ (format stream "(~D (~D ~D)) ~A"
+ request-id non-repeaters max-repetitions variable-bindings))))
+
Modified: trunk/smi/pdu.lisp
==============================================================================
--- trunk/smi/pdu.lisp (original)
+++ trunk/smi/pdu.lisp Thu Sep 27 02:20:05 2007
@@ -1,22 +1,24 @@
(in-package :smi)
-(defclass pdu ()
+(defclass base-pdu ()
((request-id :type (unsigned-byte 32)
:reader request-id
:initform 0
:initarg :request-id)
- (error-status :type integer
+ (variable-bindings :type list
+ :reader variable-bindings
+ :initform nil
+ :initarg :variable-bindings)))
+
+(defclass pdu (base-pdu)
+ ((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))
+ :initarg :error-index))
(:documentation "SNMP Generate PDU Class"))
(defmethod print-object ((obj pdu) stream)
1
0
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)))
1
0
Author: ctian
Date: Tue Sep 25 13:27:39 2007
New Revision: 58
Modified:
trunk/net-snmp.asd
Log:
No iolib on win32
Modified: trunk/net-snmp.asd
==============================================================================
--- trunk/net-snmp.asd (original)
+++ trunk/net-snmp.asd Tue Sep 25 13:27:39 2007
@@ -16,6 +16,7 @@
:cl-ppcre ; for oid resolve
:ironclad ; for v3 support
:net-telent-date ; for time conv
+ #-win32
:iolib ; for network
:zebu ; for mib parse
:zebu-compiler) ; for asn.1 syntax compile
1
0

25 Sep '07
Author: ctian
Date: Tue Sep 25 12:51:51 2007
New Revision: 57
Added:
trunk/mib/tree.lisp
- copied, changed from r54, trunk/asn.1/mib.lisp
trunk/smi/integer.lisp
trunk/smi/oid.lisp
- copied, changed from r54, trunk/asn.1/oid.lisp
trunk/smi/package.lisp
trunk/smi/sequence.lisp
- copied, changed from r54, trunk/asn.1/smi.lisp
trunk/smi/string.lisp
trunk/snmp/
trunk/snmp/package.lisp
Removed:
trunk/asn.1/mib.lisp
trunk/asn.1/oid.lisp
trunk/asn.1/smi.lisp
Modified:
trunk/asn.1/package.lisp
trunk/mib/browser.lisp
trunk/mib/build.lisp
trunk/mib/package.lisp
trunk/net-snmp.asd
Log:
Split success
Modified: trunk/asn.1/package.lisp
==============================================================================
--- trunk/asn.1/package.lisp (original)
+++ trunk/asn.1/package.lisp Tue Sep 25 12:51:51 2007
@@ -1,11 +1,28 @@
-(in-package :cl-user)
+(in-package :snmp.system)
(defpackage com.netease.asn.1
(:nicknames asn.1)
(:use :common-lisp
#+lispworks :stream #+sbcl :sb-gray #+clisp :gray
:zebu)
- (:export *mib-tree* *mib-index* build-mib-tree update-syntax
- ber-encode ber-decode mbrowse install-asn.1-type))
+ (:export update-syntax
+ ber-encode
+ ber-decode
+ ber-encode-type
+ ber-encode-length
+ ber-decode-type
+ ber-decode-length
+ install-asn.1-type
+ ;;; Symbols from ASN.1 Syntax
+ Obj-Id-Component-p
+ Obj-Id-Component-name
+ Obj-Id-Component-value
+ Module-Body-Assignment-list
+ Value-Assignment-name
+ Value-Assignment-value
+ Module-Definition-body
+ Assignment-type
+ Assignment-value
+ Object-Identifier-Value-value))
(in-package :asn.1)
Modified: trunk/mib/browser.lisp
==============================================================================
--- trunk/mib/browser.lisp (original)
+++ trunk/mib/browser.lisp Tue Sep 25 12:51:51 2007
@@ -1,4 +1,4 @@
-(in-package :asn.1)
+(in-package :mib)
(defun children-function (x)
(let ((children (tree-nodes x)))
@@ -57,6 +57,6 @@
(capi:display-pane-text display-pane-oid)
(format nil "~A~{.~A~}" (car oid) (cdr oid))))))
-(defun mbrowse ()
+(defun browser ()
(capi:display (make-instance 'mib-browser)))
Modified: trunk/mib/build.lisp
==============================================================================
--- trunk/mib/build.lisp (original)
+++ trunk/mib/build.lisp Tue Sep 25 12:51:51 2007
@@ -1,4 +1,4 @@
-(in-package :asn.1)
+(in-package :mib)
(defparameter *mib-list*
'("SNMPv2-SMI"
@@ -58,7 +58,7 @@
(defparameter *mib-pathname-base*
(merge-pathnames
- (make-pathname :directory '(:relative "mibs"))
+ (make-pathname :directory '(:relative "mib" "mibs"))
(asdf:component-pathname (asdf:find-system :net-snmp))))
(defun mib-pathname (name &optional (base *mib-pathname-base*))
Modified: trunk/mib/package.lisp
==============================================================================
--- trunk/mib/package.lisp (original)
+++ trunk/mib/package.lisp Tue Sep 25 12:51:51 2007
@@ -1,10 +1,14 @@
-(in-package :cl-user)
+(in-package :snmp.system)
(defpackage :com.netease.mib
(:nicknames mib)
(:use :common-lisp
- :zebu)
- (:export))
+ :asn.1 :smi :zebu)
+ (:export *mib-tree* *mib-index*
+ tree-id tree-name tree-object tree-node
+ insert-node resolve
+ reset-mib-tree build-mib-tree
+ #+lispworks browser))
(in-package :mib)
Copied: trunk/mib/tree.lisp (from r54, trunk/asn.1/mib.lisp)
==============================================================================
--- trunk/asn.1/mib.lisp (original)
+++ trunk/mib/tree.lisp Tue Sep 25 12:51:51 2007
@@ -2,7 +2,7 @@
;;;; MIB Base Support ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
-(in-package :asn.1)
+(in-package :mib)
#|
MIB Tree Structure:
@@ -96,10 +96,10 @@
(cdr part-2))))))
(defun parse-mib (file &key (verbose nil))
- (let ((zb:*comment-start* "--")
- (zb:*comment-brackets* '(("/*" . "*/")))
- (zb:*preserve-case* t))
- (zb:file-parser file :grammar (find-grammar "ASN.1") :verbose verbose)))
+ (let ((*comment-start* "--")
+ (*comment-brackets* '(("/*" . "*/")))
+ (*preserve-case* t))
+ (file-parser file :grammar (find-grammar "ASN.1") :verbose verbose)))
(defun kb-sequence->list (kseq)
(labels ((iter (kb-seq acc)
Modified: trunk/net-snmp.asd
==============================================================================
--- trunk/net-snmp.asd (original)
+++ trunk/net-snmp.asd Tue Sep 25 12:51:51 2007
@@ -9,28 +9,41 @@
(in-package :snmp.system)
(defsystem net-snmp
- :description "Common Lisp interface for Net-SNMP"
- :version "0.6"
+ :description "Simple Network Manangement Protocol"
+ :version "0.7"
:author "Chun Tian (binghe) <binghe.lisp(a)gmail.com>"
- :depends-on (:cl-fad ; for directory and file
- :cl-ppcre ; for oid resolve
- :ironclad ; for v3 support
+ :depends-on (:cl-fad ; for directory and file
+ :cl-ppcre ; for oid resolve
+ :ironclad ; for v3 support
:net-telent-date ; for time conv
- :iolib ; for network
- :zebu ; for asn.1 parse
- :zebu-compiler)
- :components ((:module asn.1
+ :iolib ; for network
+ :zebu ; for mib parse
+ :zebu-compiler) ; for asn.1 syntax compile
+ :components (;; ASN.1
+ (:module asn.1
:components ((:file "package")
- (:file "syntax" :depends-on ("package"))
- (:file "ber" :depends-on ("package"))
- (:file "smi" :depends-on ("ber"))
- (:file "oid" :depends-on ("syntax" "ber"))
- (:file "mib" :depends-on ("syntax" "oid"))
- (:file "parse" :depends-on ("mib"))
- #+lispworks
- (:file "mib-browse" :depends-on ("mib"))))
+ (:file "syntax" :depends-on ("package"))
+ (:file "ber" :depends-on ("package"))))
+ ;; SMI
+ (:module smi
+ :components ((:file "package")
+ (:file "integer" :depends-on ("package"))
+ (:file "string" :depends-on ("package"))
+ (:file "sequence" :depends-on ("package"))
+ (:file "oid" :depends-on ("package")))
+ :depends-on (asn.1))
+ ;; MIB
(:module mib
- :components ((:file "package")))))
+ :components ((:file "package")
+ (:file "tree" :depends-on ("package"))
+ (:file "build" :depends-on ("tree"))
+ #+lispworks
+ (:file "browser" :depends-on ("tree")))
+ :depends-on (smi))
+ ;; SNMP
+ (:module snmp
+ :components ((:file "package"))
+ :depends-on (asn.1 smi mib))))
;; (:file "package")
;; (:file "constants" :depends-on ("package"))
Added: trunk/smi/integer.lisp
==============================================================================
--- (empty file)
+++ trunk/smi/integer.lisp Tue Sep 25 12:51:51 2007
@@ -0,0 +1,24 @@
+(in-package :smi)
+
+(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)))
+
+(eval-when (:load-toplevel :execute)
+ (install-asn.1-type :integer 0 0 2))
Copied: trunk/smi/oid.lisp (from r54, trunk/asn.1/oid.lisp)
==============================================================================
--- trunk/asn.1/oid.lisp (original)
+++ trunk/smi/oid.lisp Tue Sep 25 12:51:51 2007
@@ -2,7 +2,7 @@
;;;; Object ID Base Support ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(in-package :asn.1)
+(in-package :smi)
(defclass object-id ()
((rev-ids :initform nil :type list :initarg :id)
Added: trunk/smi/package.lisp
==============================================================================
--- (empty file)
+++ trunk/smi/package.lisp Tue Sep 25 12:51:51 2007
@@ -0,0 +1,9 @@
+(in-package :snmp.system)
+
+(defpackage com.netease.smi
+ (:nicknames smi)
+ (:use :common-lisp :asn.1)
+ (:export object-id oid make-object-id))
+
+(in-package :smi)
+
Copied: trunk/smi/sequence.lisp (from r54, trunk/asn.1/smi.lisp)
==============================================================================
--- trunk/asn.1/smi.lisp (original)
+++ trunk/smi/sequence.lisp Tue Sep 25 12:51:51 2007
@@ -1,45 +1,9 @@
-(in-package :asn.1)
+(in-package :smi)
;;;;;;;;;;;;;;;;;;;;;;;
;;;; 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))
@@ -81,7 +45,5 @@
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))
Added: trunk/smi/string.lisp
==============================================================================
--- (empty file)
+++ trunk/smi/string.lisp Tue Sep 25 12:51:51 2007
@@ -0,0 +1,18 @@
+(in-package :smi)
+
+;;; 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))))))
+
+(eval-when (:load-toplevel :execute)
+ (install-asn.1-type :octet-string 0 0 4))
Added: trunk/snmp/package.lisp
==============================================================================
--- (empty file)
+++ trunk/snmp/package.lisp Tue Sep 25 12:51:51 2007
@@ -0,0 +1,8 @@
+(in-package :snmp.system)
+
+(defpackage :com.netease.snmp
+ (:nicknames snmp)
+ (:use :common-lisp)
+ (:export ))
+
+(in-package :snmp)
1
0