Method: Kleene::DSL#optional

Defined in:
lib/kleene/dsl.rb

#optional(machine) ⇒ Object



226
227
228
229
# File 'lib/kleene/dsl.rb', line 226

def optional(machine)
  empty = NFA.new(State.new(true), machine.alphabet).set_regex_pattern("")
  union(machine, empty).set_regex_pattern("#{machine.regex_pattern}?")
end