From bb3c8d1455f7a102a0c0abffd757ccace94f77d5 Mon Sep 17 00:00:00 2001 From: Greg Brown Date: Tue, 20 Apr 2021 13:22:49 +0100 Subject: Add LALRPOP arithmetic parser. --- chomp-bench/benches/arith.rs | 8 ++++++++ chomp-bench/benches/json.rs | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'chomp-bench/benches') diff --git a/chomp-bench/benches/arith.rs b/chomp-bench/benches/arith.rs index 489a847..f5ca735 100644 --- a/chomp-bench/benches/arith.rs +++ b/chomp-bench/benches/arith.rs @@ -28,7 +28,12 @@ fn parse_handwritten(input: &str) -> i64 { parse_expr(&mut IterWrapper::new(input.chars())).unwrap() } +fn parse_lalrpop(parser: &lalr::ExpressionParser, input: &str) -> i64 { + parser.parse(input).unwrap() +} + fn bench_parse(c: &mut Criterion) { + let lalr_parser = lalr::ExpressionParser::new(); let plot_config = PlotConfiguration::default().summary_scale(AxisScale::Logarithmic); let mut group = c.benchmark_group("Arith"); group.plot_config(plot_config); @@ -40,6 +45,9 @@ fn bench_parse(c: &mut Criterion) { group.bench_with_input(BenchmarkId::new("Handwritten", i), *input, |b, i| { b.iter(|| parse_handwritten(i)) }); + group.bench_with_input(BenchmarkId::new("LALRPOP", i), *input, |b, i| { + b.iter(|| parse_lalrpop(&lalr_parser, i)) + }); } } diff --git a/chomp-bench/benches/json.rs b/chomp-bench/benches/json.rs index abe1c28..c6c73ef 100644 --- a/chomp-bench/benches/json.rs +++ b/chomp-bench/benches/json.rs @@ -1,8 +1,8 @@ use chewed::{IterWrapper, Parser}; use chomp_bench::json::*; use criterion::{ - criterion_group, criterion_main, AxisScale, BenchmarkId, Criterion, - PlotConfiguration, Throughput, + criterion_group, criterion_main, AxisScale, BenchmarkId, Criterion, PlotConfiguration, + Throughput, }; const INPUTS: &[&str] = &[ -- cgit v1.2.3