Skip to content

Commit a15fd11

Browse files
committed
Removed opt_second_expression module
1 parent c9adff3 commit a15fd11

3 files changed

Lines changed: 19 additions & 67 deletions

File tree

rusty_parser/src/core/for_loop.rs

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ use rusty_pc::*;
22

33
use crate::core::statements::zero_or_more_statements;
44
use crate::error::ParserError;
5-
use crate::expr::{
6-
demand_expr_ws_keyword_p, opt_second_expression_after_keyword, property, ws_expr_pos_p
7-
};
5+
use crate::expr::{demand_expr_ws_keyword_p, property, ws_expr_pos_p};
86
use crate::input::StringView;
97
use crate::pc_specific::*;
108
use crate::tokens::equal_sign_ws;
11-
use crate::*;
9+
use crate::{ExpressionPos, ExpressionTrait, ForLoop, Keyword, Statement};
1210

1311
// FOR I = 0 TO 5 STEP 1
1412
// statements
@@ -44,10 +42,11 @@ fn parse_for_step_p() -> impl Parser<
4442
),
4543
Error = ParserError,
4644
> {
47-
opt_second_expression_after_keyword(parse_for_p(), Keyword::Step, |(_var, _low, upper)| {
48-
upper.is_parenthesis()
49-
})
50-
.map(|((n, l, u), opt_step)| (n, l, u, opt_step))
45+
parse_for_p().then_with_in_context(
46+
opt_step_p(),
47+
|(_, _, upper)| upper.is_parenthesis(),
48+
|(n, l, u), opt_step| (n, l, u, opt_step),
49+
)
5150
}
5251

5352
/// Parses the "FOR I = 1 TO 2" part
@@ -68,6 +67,18 @@ fn next_counter_p() -> impl Parser<StringView, Output = ExpressionPos, Error = P
6867
lead_ws(property::parser())
6968
}
7069

70+
fn opt_step_p() -> impl Parser<StringView, bool, Output = Option<ExpressionPos>, Error = ParserError>
71+
{
72+
conditionally_opt_whitespace()
73+
.and_keep_right(keyword_ignoring(Keyword::Step).no_context())
74+
.and_keep_right(
75+
ws_expr_pos_p()
76+
.or_expected("expression after STEP")
77+
.no_context(),
78+
)
79+
.to_option()
80+
}
81+
7182
#[cfg(test)]
7283
mod tests {
7384
use rusty_common::*;

rusty_parser/src/expr/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ mod built_in_function_call;
33
pub mod file_handle;
44
mod function_call_or_array_element;
55
mod integer_or_long_literal;
6-
mod opt_second_expression;
76
mod parenthesis;
87
mod parsers;
98
pub mod property;
@@ -13,5 +12,4 @@ pub mod types;
1312
mod unary_expression;
1413
mod variable;
1514

16-
pub use self::opt_second_expression::opt_second_expression_after_keyword;
1715
pub use self::parsers::*;

rusty_parser/src/expr/opt_second_expression.rs

Lines changed: 0 additions & 57 deletions
This file was deleted.

0 commit comments

Comments
 (0)