public Step(String name, Rule rules[], int min, String suffixes[]) {this.name = name;this.rules = rules;if (min == 0) {min = Integer.MAX_VALUE;for (Rule r : rules)min = Math.min(min, r.min + r.suffix.length);}this.min = min;if (suffixes == null || suffixes.length == 0) {this.suffixes = null;} else {this.suffixes = new char[suffixes.length][];for (int i = 0; i < suffixes.length; i++)this.suffixes[i] = suffixes[i].toCharArray();}}

public Step ( String name , Rule rules [ ] , int min , String suffixes [ ] ) { this . name = name ; this . rules = rules ; if ( min == 0 ) { min = Integer . MAX_VALUE ; for ( Rule r : rules ) min = Math . min ( min , r . min + r . suffix . length ) ; } this . min = min ; if ( suffixes == null || suffixes . length == 0 ) { this . suffixes = null ; } else { this . suffixes = new char [ suffixes . length ] [ ] ; for ( int i = 0 ; i < suffixes . length ; i ++ ) this . suffixes [ i ] = suffixes [ i ] . toCharArray ( ) ; } }
public Step(string name, Rule[] rules, int min, string[] suffixes){this.m_name = name;this.m_rules = rules;if (min == 0){min = int.MaxValue;foreach (Rule r in rules){min = Math.Min(min, r.m_min + r.m_suffix.Length);}}this.m_min = min;if (suffixes == null || suffixes.Length == 0){this.m_suffixes = null;}else{this.m_suffixes = new char[suffixes.Length][];for (int i = 0; i < suffixes.Length; i++){this.m_suffixes[i] = suffixes[i].ToCharArray();}}}
