schala/schala-lang/language/src/ast/visitor_test.rs

42 lines
630 B
Rust
Raw Normal View History

2019-09-26 02:29:20 -07:00
#![cfg(test)]
use crate::ast::visitor::ASTVisitor;
use crate::ast::walker;
use crate::util::quick_ast;
struct Tester {
count: u64,
float_count: u64
}
impl ASTVisitor for Tester {
fn nat_literal(&mut self, _n: u64) {
self.count += 1;
}
fn float_literal(&mut self, _f: f64) {
self.float_count += 1;
}
}
#[test]
fn foo() {
let mut tester = Tester { count: 0, float_count: 0 };
let (ast, _) = quick_ast(r#"
2019-09-26 02:29:20 -07:00
import gragh
let a = 20 + 84
let b = 28 + 1 + 2 + 2.0
fn heh() {
let m = 9
}
2019-09-27 22:34:00 -07:00
2019-09-26 02:29:20 -07:00
"#);
2019-10-15 19:02:48 -07:00
walker::walk_ast(&mut tester, &ast);
2019-09-26 02:29:20 -07:00
assert_eq!(tester.count, 6);
2019-09-26 02:29:20 -07:00
assert_eq!(tester.float_count, 1);
}