diff --git a/lib/imbecile.rb b/lib/imbecile.rb index cfd22a5..0c6529b 100644 --- a/lib/imbecile.rb +++ b/lib/imbecile.rb @@ -1,6 +1,7 @@ require_relative "imbecile/cli" require_relative "imbecile/grammar" require_relative "imbecile/regex" +require_relative "imbecile/regex/dfa" require_relative "imbecile/regex/nfa" require_relative "imbecile/regex/unit" require_relative "imbecile/version" diff --git a/lib/imbecile/grammar.rb b/lib/imbecile/grammar.rb index 24e9e6d..0a19d75 100644 --- a/lib/imbecile/grammar.rb +++ b/lib/imbecile/grammar.rb @@ -42,6 +42,7 @@ module Imbecile @tokens.each do |token_name, token_def| token_def[:regex] = Regex.new(token_def[:pattern]) end + dfa = DFA.new(@tokens.map {|token_name, token_def| token_def[:regex].nfa}) end end diff --git a/lib/imbecile/regex/dfa.rb b/lib/imbecile/regex/dfa.rb new file mode 100644 index 0000000..53db7e9 --- /dev/null +++ b/lib/imbecile/regex/dfa.rb @@ -0,0 +1,12 @@ +module Imbecile + class Regex + + class DFA + + def initialize(nfas) + end + + end + + end +end