Parser: target module layout for splitting src/parser/mod.rs
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Start with src/parser/mod.rs and compare its structure with src/ast/; the proposed module layout and migration order are listed in this issue. Read the parent issue #2591 and inspect the existing parser files named in the layout to understand shared helpers and module boundaries. Done means the parser is split into the proposed modules in the listed order, with parsing behavior preserved.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Part of #2591, scoped to the parser only.
#2591 agreed on a series of pure-move PRs but did not fix the target layout. #944 and #1581 both went per-statement (~35 files, one per top-level keyword). #1581 stalled as one large
PR, and its author noted that shared helpers ended up placed arbitrarily.
Proposed layout
A flat layout mirroring src/ast/, so a struct in ast/ddl.rs is parsed in parser/ddl.rs:
src/parser/
mod.rs Parser struct, token cursor, errors, identifiers, lists, statement dispatch
expr.rs precedence climbing, prefix/infix, function calls, literals
query.rs SELECT, set ops, CTEs, FROM/joins, windows
data_type.rs
ddl.rs CREATE TABLE, columns, constraints, DROP (existing create.rs, alter.rs stay beside)
dml.rs INSERT / UPDATE / DELETE (existing merge.rs stays beside)
dcl.rs GRANT / REVOKE / roles / policies
statement.rs SHOW / SET / DECLARE / transactions / EXPLAIN / misc
Order
Smallest conflict surface first:
- dcl
- dml
- data_type
- statement
- ddl
- query
- expr
@alamb @LucaCappelletti94 wdyt?
- Lenguaje dominante
- Rust
- Estrellas
- 3.5k
- Forks
- 805
- Merge medio
- 2 d 3 h
- PR fusionados (30 d)
- 116
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/datafusion-sqlparser-rs
-
Redshift
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
apache/datafusion-sqlparser-rs#2959 ·
Los mantenedores suelen responder en 1 día
-
Redshift
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
apache/datafusion-sqlparser-rs#2958 ·
Los mantenedores suelen responder en 1 día
-
PostgreSQL
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
apache/datafusion-sqlparser-rs#2862 ·
Los mantenedores suelen responder en 1 día
-
PostgreSQL
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
apache/datafusion-sqlparser-rs#2861 ·
Los mantenedores suelen responder en 1 día
-
PostgreSQL
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
apache/datafusion-sqlparser-rs#2858 ·
Los mantenedores suelen responder en 1 día
Todos los issues de apache/datafusion-sqlparser-rs
Issues similares
-
area:schema documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
ElectronicWave/Elemental#252 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
dekobon/big-code-analysis#1887 ·
Los mantenedores suelen responder en 1 día
-
Shell中文符号输入异常Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día