28 lines
670 B
Rust
28 lines
670 B
Rust
![]() |
use criterion::{criterion_group, criterion_main, Criterion};
|
||
|
|
||
|
pub fn criterion_benchmark(c: &mut Criterion) {
|
||
|
c.bench_function("parse + lex cube program", |b| b.iter(lex_and_parse_cube));
|
||
|
}
|
||
|
|
||
|
fn lex_and_parse_cube() {
|
||
|
let program = r#"
|
||
|
fn cube = (pos, scale) => {
|
||
|
const sg = startSketchAt(pos)
|
||
|
|> line([0, scale], %)
|
||
|
|> line([scale, 0], %)
|
||
|
|> line([0, -scale], %)
|
||
|
|
||
|
return sg
|
||
|
}
|
||
|
|
||
|
const b1 = cube([0,0], 10)
|
||
|
const pt1 = b1[0]
|
||
|
show(b1)"#;
|
||
|
let tokens = kcl_lib::tokeniser::lexer(program);
|
||
|
let parser = kcl_lib::parser::Parser::new(tokens);
|
||
|
parser.ast().unwrap();
|
||
|
}
|
||
|
|
||
|
criterion_group!(benches, criterion_benchmark);
|
||
|
criterion_main!(benches);
|