40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/ibex/cli/ambiguity.rb', line 40
def ambiguity_option_parser
OptionParser.new do |options|
options.banner = "Usage: ibex check --ambiguity [options] grammarfile"
options.on("--ambiguity", "search parser conflicts for ambiguous sentences") do
@options[:check_ambiguity] = true
end
options.on("--max-tokens=N", Integer, "maximum sentence length (default: 32)") do |value|
@options[:counterexample_max_tokens] = positive_counterexample_limit(value, "--max-tokens")
end
options.on("--max-configurations=N", Integer, "maximum configurations per conflict (default: 50000)") do |value|
@options[:counterexample_max_configurations] = positive_counterexample_limit(value, "--max-configurations")
end
options.on("--format=FORMAT", %w[text json], "text or json (default: text)") do |value|
@options[:check_format] = value
end
options.on("--algorithm=NAME", %w[slr lalr ielr lr1], "parser construction algorithm") do |value|
@options[:algorithm] = value.to_sym
end
options.on("--entry-isolation", "build independent state sets for each start symbol") do
@options[:entry_isolation] = true
end
options.on("--mode=MODE", %w[default extended], "grammar mode") { |value| @options[:mode] = value.to_sym }
options.on("--help", "show help") { @options[:help] = true }
end
end
|