func makeCharRange(min, max int) *Automaton {
	if min > max {
		return MakeEmpty()
	}
	a := newEmptyAutomaton()
	s1 := a.createState()
	s2 := a.createState()
	a.setAccept(s2, true)
	a.addTransitionRange(s1, s2, min, max)
	a.finishState()
	return a
}
/*
Returns a new (deterministic) automaton that accepts a single rune
whose value is in the given interval (including both end points)
package automaton
import (
	"unicode"
)
func MakeEmpty() *Automaton {
	a := newEmptyAutomaton()
	a.finishState()
	return a
}
func makeEmptyString() *Automaton {
	panic("not implemented yet")
}
func makeAnyChar() *Automaton {
	return makeCharRange(MIN_CODE_POINT, unicode.MaxRune)
}
func makeChar(c int) *Automaton {
	return makeCharRange(c, c)
}