@@ -71,7 +71,7 @@ impl Production {
7171 link_map : & HashMap < String , String > ,
7272 md_link_map : & HashMap < String , String > ,
7373 ) -> Diagram < Box < dyn Node > > {
74- let n = self . expression . render_railroad ( stack, link_map, false ) ;
74+ let n = self . expression . render_railroad ( stack, link_map) ;
7575 let dest = md_link_map
7676 . get ( & self . name )
7777 . map ( |path| path. to_string ( ) )
@@ -92,34 +92,29 @@ impl Expression {
9292 & self ,
9393 stack : bool ,
9494 link_map : & HashMap < String , String > ,
95- reverse : bool ,
9695 ) -> Option < Box < dyn Node > > {
9796 let n: Box < dyn Node > = match & self . kind {
9897 ExpressionKind :: Grouped ( e) => {
9998 // I don't think this needs anything special. The grouped
10099 // expression is usually an Alt or Optional or something like
101100 // that which ends up as a distinct railroad node. But I'm not
102101 // sure.
103- e. render_railroad ( stack, link_map, reverse ) ?
102+ e. render_railroad ( stack, link_map) ?
104103 }
105104 ExpressionKind :: Alt ( es) => {
106105 let choices: Vec < _ > = es
107106 . iter ( )
108- . map ( |e| e. render_railroad ( stack, link_map, reverse ) )
107+ . map ( |e| e. render_railroad ( stack, link_map) )
109108 . filter_map ( |n| n)
110109 . collect ( ) ;
111110 Box :: new ( Choice :: < Box < dyn Node > > :: new ( choices) )
112111 }
113112 ExpressionKind :: Sequence ( es) => {
114- let mut es: Vec < _ > = es. iter ( ) . collect ( ) ;
115- // For reversing, see ::Repeat for an explanation.
116- if reverse {
117- es. reverse ( ) ;
118- }
113+ let es: Vec < _ > = es. iter ( ) . collect ( ) ;
119114 let make_seq = |es : & [ & Expression ] | {
120115 let seq: Vec < _ > = es
121116 . iter ( )
122- . map ( |e| e. render_railroad ( stack, link_map, reverse ) )
117+ . map ( |e| e. render_railroad ( stack, link_map) )
123118 . filter_map ( |n| n)
124119 . collect ( ) ;
125120 let seq: Sequence < Box < dyn Node > > = Sequence :: new ( seq) ;
@@ -159,31 +154,31 @@ impl Expression {
159154 }
160155 }
161156 ExpressionKind :: Optional ( e) => {
162- let n = e. render_railroad ( stack, link_map, reverse ) ?;
157+ let n = e. render_railroad ( stack, link_map) ?;
163158 Box :: new ( Optional :: new ( n) )
164159 }
165160 ExpressionKind :: Repeat ( e) => {
166- let n = e. render_railroad ( stack, link_map, reverse ) ?;
161+ let n = e. render_railroad ( stack, link_map) ?;
167162 Box :: new ( Optional :: new ( Repeat :: new ( n, railroad:: Empty ) ) )
168163 }
169164 ExpressionKind :: RepeatNonGreedy ( e) => {
170- let n = e. render_railroad ( stack, link_map, reverse ) ?;
165+ let n = e. render_railroad ( stack, link_map) ?;
171166 let r = Box :: new ( Optional :: new ( Repeat :: new ( n, railroad:: Empty ) ) ) ;
172167 let lbox = LabeledBox :: new ( r, Comment :: new ( "non-greedy" . to_string ( ) ) ) ;
173168 Box :: new ( lbox)
174169 }
175170 ExpressionKind :: RepeatPlus ( e) => {
176- let n = e. render_railroad ( stack, link_map, reverse ) ?;
171+ let n = e. render_railroad ( stack, link_map) ?;
177172 Box :: new ( Repeat :: new ( n, railroad:: Empty ) )
178173 }
179174 ExpressionKind :: RepeatPlusNonGreedy ( e) => {
180- let n = e. render_railroad ( stack, link_map, reverse ) ?;
175+ let n = e. render_railroad ( stack, link_map) ?;
181176 let r = Repeat :: new ( n, railroad:: Empty ) ;
182177 let lbox = LabeledBox :: new ( r, Comment :: new ( "non-greedy" . to_string ( ) ) ) ;
183178 Box :: new ( lbox)
184179 }
185180 ExpressionKind :: RepeatRange ( e, a, b) => {
186- let n = e. render_railroad ( stack, link_map, reverse ) ?;
181+ let n = e. render_railroad ( stack, link_map) ?;
187182 let cmt = match ( a, b) {
188183 ( Some ( a) , Some ( b) ) => format ! ( "repeat between {a} and {b} times" ) ,
189184 ( None , Some ( b) ) => format ! ( "repeat at most {b} times" ) ,
@@ -202,7 +197,7 @@ impl Expression {
202197 Box :: new ( Choice :: < Box < dyn Node > > :: new ( ns) )
203198 }
204199 ExpressionKind :: NegExpression ( e) => {
205- let n = e. render_railroad ( stack, link_map, reverse ) ?;
200+ let n = e. render_railroad ( stack, link_map) ?;
206201 let ch = node_for_nt ( link_map, "CHAR" ) ;
207202 Box :: new ( Except :: new ( Box :: new ( ch) , n) )
208203 }
0 commit comments