     // Terminal
     public enum Terminal : Codable {
         case characterRange(characterRange:CharacterRange)
+        case regex(regex:Swift.String)
         case terminalString(terminalString:TerminalString)
         case characterSet(characterSet:CharacterSet)
-        case regex(regex:Swift.String)
         
         enum CodingKeys : Swift.String, CodingKey {
-            case characterRange,terminalString,characterSet,regex
+            case characterRange,regex,terminalString,characterSet
         }
         
         public init(from decoder: Decoder) throws {

    
    /// Element 
    public class Element : Codable {
        public let annotations: Annotations?
        public let quantifier: Quantifier?
        public let transient: Swift.String?
        public let negated: Swift.String?
        public let group: Group?
        public let terminal: Terminal?
        public let identifier: Swift.String?
        public let lookahead: Swift.String?
        public let void: Swift.String?
        
        /// Default initializer

            if let characterRange = try? container.decode(CharacterRange.self, forKey: .characterRange){
            	self = .characterRange(characterRange: characterRange)
            	return
            } else if let regex = try? container.decode(Swift.String.self, forKey: .regex){
            	self = .regex(regex: regex)
            	return
            } else if let terminalString = try? container.decode(TerminalString.self, forKey: .terminalString){
            	self = .terminalString(terminalString: terminalString)
            	return
            } else if let characterSet = try? container.decode(CharacterSet.self, forKey: .characterSet){
            	self = .characterSet(characterSet: characterSet)
            	return
            }
            throw DecodingError.valueNotFound(Expression.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Tried to decode one of CharacterRange,Swift.String,TerminalString,CharacterSet but found none of those types"))
        }
        public func encode(to encoder:Encoder) throws {
            var container = encoder.container(keyedBy: CodingKeys.self)
            switch self {
            case .characterRange(let characterRange):
                try container.encode(characterRange, forKey: .characterRange)
            case .regex(let regex):
                try container.encode(regex, forKey: .regex)
            case .terminalString(let terminalString):
                try container.encode(terminalString, forKey: .terminalString)
            case .characterSet(let characterSet):
                try container.encode(characterSet, forKey: .characterSet)
            }
        }
    }
