Exemple #1
0
minimizers = {
    'hopcroft': ('Minimize using Hopcroft\'s partition refinement algorithm', hopcroft),
    'polynomial': ('Minimize using a polynomial algorithm comparing each state', polynomial),
    'none': ('Do not minimize', lambda: None)
}

# Handle 'list' commands
command, arguments = CommandArguments.handle()
if command == 'list-minimizers':
    left_column_size = len(max(minimizers, key=lambda i: len(i))) + 1
    print("Supported DFA minimization algorithms:", file=sys.stderr)
    for name, (description, minimizer) in minimizers.iteritems():
        print("    %s%s%s\n" % (name, ' '*(left_column_size-len(name)), description), file=sys.stderr)
    sys.exit(0)
elif command == 'list-languages':
    LanguagePlugins.describe(this_folder, "Plugins/Plugins.json", 'utf-8')
    sys.exit(0)
elif command == 'list-forms':
    print("Supported State Machine Forms (language support may vary)")
    print("    nfa     Non-deterministic finite automata")
    print("    dfa     Minimized deterministic finit automata")
    print("    default Use the default specified for the language")
    
# Check minimizer
if arguments.minimizer not in minimizers:
    print("Minimizer '%s' not recognized\n" % arguments.minimizer, file=sys.stderr)
    sys.exit(1)
minimizer_description, minimizer = minimizers[arguments.minimizer]

# Load language plug-ins file and list languages if requested
language_plugins = None