-- OK: Everything is fine

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

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

	AlphaNumeric ::= IA5String (FROM ("A".."Z"|"a".."z"|"0".."9"))

	FUNCTION ::= CLASS {
		&code			INTEGER (0..MAX) UNIQUE,
		&Alphabet		IA5String DEFAULT {AlphaNumeric},
		&ArgType		,
		&SupportedArguments	&ArgType OPTIONAL,
		&ResultType		DEFAULT NULL,
		&result-if-error	&ResultType DEFAULT NULL,
		&associated-function	FUNCTION OPTIONAL
	}

	operator-plus FUNCTION ::= {
		&ArgType		Pair,
		&SupportedArguments	{ PosPair | NegPair }
		&ResultType		INTEGER,
		&result-if-error	0,
		&code			1
	}

	FunctionCodeType ::= FUNCTION.&code

END