optgen ops test.opt
# Lt is a comparison op. Don't replace Lt again.
# Lt shouldn't be replaced on the second line either.
[Scalar]
define Lt {}

[Relational]
define InnerJoinApply {}

# Sort is an enforcer.
[Enforcer]
define Sort {}
----
----
// Code generated by optgen; [omitted]

package opt

const (
	UnknownOp Operator = iota

	// ------------------------------------------------------------
	// Enforcer Operators
	// ------------------------------------------------------------

	// SortOp is an enforcer.
	SortOp

	// ------------------------------------------------------------
	// Relational Operators
	// ------------------------------------------------------------

	InnerJoinApplyOp

	// ------------------------------------------------------------
	// Scalar Operators
	// ------------------------------------------------------------

	// LtOp is a comparison op. Don't replace Lt again.
	// Lt shouldn't be replaced on the second line either.
	LtOp

	// NumOperators tracks the total count of operators.
	NumOperators
)

const opNames = "unknownsortinner-join-applylt"

var opIndexes = [...]uint32{0, 7, 11, 27, 29}

var ScalarOperators = [...]Operator{
	LtOp,
}

var RelationalOperators = [...]Operator{
	InnerJoinApplyOp,
}

var EnforcerOperators = [...]Operator{
	SortOp,
}
----
----
