Create PreorderVisitor trait (#4658)

This commit is contained in:
Micha Reiser 2023-05-26 08:14:08 +02:00 committed by GitHub
parent 52deeb36ee
commit 33a7ed058f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 1301 additions and 1 deletions

View file

@ -1,14 +1,19 @@
//! AST visitor trait and walk functions.
pub mod preorder;
use rustpython_parser::ast::{
self, Alias, Arg, Arguments, Boolop, Cmpop, Comprehension, Constant, Excepthandler, Expr,
ExprContext, Keyword, MatchCase, Operator, Pattern, Stmt, Unaryop, Withitem,
};
/// A trait for AST visitors. Visits all nodes in the AST recursively.
/// A trait for AST visitors. Visits all nodes in the AST recursively in evaluation-order.
///
/// Prefer [`crate::statement_visitor::StatementVisitor`] for visitors that only need to visit
/// statements.
///
/// Use the [`PreorderVisitor`](self::preorder::PreorderVisitor) if you want to visit the nodes
/// in pre-order rather than evaluation order.
pub trait Visitor<'a> {
fn visit_stmt(&mut self, stmt: &'a Stmt) {
walk_stmt(self, stmt);

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,15 @@
---
source: crates/ruff_python_ast/src/visitor/preorder.rs
expression: trace
---
- ModModule
- StmtExpr
- ExprCompare
- ExprConstant
- Int(4)
- Lt
- ExprName
- Lt
- ExprConstant
- Int(5)

View file

@ -0,0 +1,13 @@
---
source: crates/ruff_python_ast/src/visitor/preorder.rs
expression: trace
---
- ModModule
- StmtFunctionDef
- ExprName
- Arguments
- StmtPass
- StmtClassDef
- ExprName
- StmtPass

View file

@ -0,0 +1,17 @@
---
source: crates/ruff_python_ast/src/visitor/preorder.rs
expression: trace
---
- ModModule
- StmtExpr
- ExprDictComp
- ExprName
- ExprBinOp
- ExprName
- Pow
- ExprConstant
- Int(2)
- Comprehension
- ExprName
- ExprName

View file

@ -0,0 +1,23 @@
---
source: crates/ruff_python_ast/src/visitor/preorder.rs
expression: trace
---
- ModModule
- StmtFunctionDef
- Arguments
- Arg
- Arg
- Arg
- Arg
- ExprConstant
- Int(20)
- Arg
- Arg
- ExprConstant
- Int(5)
- Arg
- ExprConstant
- Int(20)
- Arg
- StmtPass

View file

@ -0,0 +1,17 @@
---
source: crates/ruff_python_ast/src/visitor/preorder.rs
expression: trace
---
- ModModule
- StmtFunctionDef
- Arguments
- Arg
- Arg
- ExprConstant
- Int(34)
- Arg
- ExprConstant
- Int(20)
- Arg
- StmtPass

View file

@ -0,0 +1,12 @@
---
source: crates/ruff_python_ast/src/visitor/preorder.rs
expression: trace
---
- ModModule
- StmtExpr
- ExprListComp
- ExprName
- Comprehension
- ExprName
- ExprName

View file

@ -0,0 +1,35 @@
---
source: crates/ruff_python_ast/src/visitor/preorder.rs
expression: trace
---
- ModModule
- StmtMatch
- ExprName
- MatchCase
- PatternMatchClass
- ExprName
- PatternMatchValue
- ExprConstant
- Int(0)
- PatternMatchValue
- ExprConstant
- Int(0)
- StmtExpr
- ExprConstant
- Ellipsis
- MatchCase
- PatternMatchClass
- ExprName
- PatternMatchValue
- ExprConstant
- Int(0)
- PatternMatchValue
- ExprConstant
- Int(0)
- PatternMatchValue
- ExprConstant
- Int(0)
- StmtExpr
- ExprConstant
- Ellipsis

View file

@ -0,0 +1,12 @@
---
source: crates/ruff_python_ast/src/visitor/preorder.rs
expression: trace
---
- ModModule
- StmtExpr
- ExprSetComp
- ExprName
- Comprehension
- ExprName
- ExprName