From fc1afdcb72d786836479367ef42d7d82069aaf97 Mon Sep 17 00:00:00 2001 From: Matthew Hall Date: Sun, 26 Mar 2023 15:42:56 +1300 Subject: More refactoring --- spec/practical/bf_spec.cr | 8 ++------ spec/practical/json_spec.cr | 8 ++++---- 2 files changed, 6 insertions(+), 10 deletions(-) (limited to 'spec') diff --git a/spec/practical/bf_spec.cr b/spec/practical/bf_spec.cr index d1ad488..1eb1d04 100644 --- a/spec/practical/bf_spec.cr +++ b/spec/practical/bf_spec.cr @@ -105,13 +105,9 @@ describe "brainfuck parser" do char_body = bf_char.some.sep_by(other.some).map(&.flatten) just_bf_chars = other.many >> char_body << other.many - loop_start = Parser(Char, Char).token('[').map do |_| - {type: BFOpType::LoopStart, amount: 0} - end + loop_start = Parser(Char, Char).token('[').map_const({type: BFOpType::LoopStart, amount: 0}) - loop_end = Parser(Char, Char).token(']').map do |_| - {type: BFOpType::LoopEnd, amount: 0} - end + loop_end = Parser(Char, Char).token(']').map_const({type: BFOpType::LoopEnd, amount: 0}) read_block = Parser(Char, Char).token(',').some.map do |cs| {type: BFOpType::ByteIn, amount: cs.size} diff --git a/spec/practical/json_spec.cr b/spec/practical/json_spec.cr index ed0fcfb..95795e2 100644 --- a/spec/practical/json_spec.cr +++ b/spec/practical/json_spec.cr @@ -20,12 +20,12 @@ struct JSONValue end def json_null - Parser.token_sequence("null".chars).map { |_| JSONValue.new(nil) } + Parser.token_sequence("null".chars).map_const(JSONValue.new(nil)) end def json_bool - t = Parser.token_sequence("true".chars).map { |_| true } - f = Parser.token_sequence("false".chars).map { |_| false } + t = Parser.token_sequence("true".chars).map_const(true) + f = Parser.token_sequence("false".chars).map_const(false) (t | f).map { |b| JSONValue.new(b) } end @@ -34,7 +34,7 @@ def json_number base_num = Parser(Char, Char).satisfy(&.ascii_number?).some.map do |cs| cs.join.to_i64 end - sign = Parser.token('-').map { |_| -1 }.recover(1) + sign = Parser.token('-').map_const(-1).recover(1) (sign + base_num).map { |s, n| JSONValue.new(s.to_i64 * n) } end -- cgit v1.2.1