
-- OK: Everything is fine

-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1)
-- .spelio.software.asn1c.test (9363.1.5.1)
-- .99

ModuleClassSample
	{ iso org(3) dod(6) internet (1) private(4) enterprise(1)
		spelio(9363) software(1) asn1c(5) test(1) 99 }
	DEFINITIONS ::=
BEGIN

	SAMPLE-CLASS ::= CLASS {
		&id	RELATIVE-OID UNIQUE,
		&code	ENUMERATED { request, response, status }
				DEFAULT request,
		&Type	OPTIONAL
	} WITH SYNTAX { [TYPE &Type] [WITH CODE &code] IDENTIFIED BY &id }

	SampleClassObjectSet SAMPLE-CLASS ::= {
	  request-Whatever | respond-Stuff | request-Status | request-Salt
	}

	request-Whatever SAMPLE-CLASS
		::= { IDENTIFIED BY request-whatever }

	respond-Stuff SAMPLE-CLASS
		::= { WITH CODE 1 IDENTIFIED BY response-stuff }

	request-Status SAMPLE-CLASS
		::= { TYPE SampleType WITH CODE 2 IDENTIFIED BY request-id }

	request-Salt SAMPLE-CLASS
		::= { TYPE Salt IDENTIFIED BY request-salt }

	request-id RELATIVE-OID ::= { 1 1 1 }
	request-salt RELATIVE-OID ::= { 1 1 1 }
	request-whatever RELATIVE-OID ::= { 1 1 5 }
	response-stuff RELATIVE-OID ::= { 2 0 1 }

	SampleType ::= SEQUENCE { ... }
	Salt ::= SET { ... }

END
