diff options
| author | Tbkhi <dining-03town@icloud.com> | 2024-03-10 17:29:26 -0300 |
|---|---|---|
| committer | nora <48135649+Noratrieb@users.noreply.github.com> | 2024-09-24 20:21:23 +0200 |
| commit | 8371c224e9cc6ca0ef10e3b5e68258a06241a8b9 (patch) | |
| tree | c47ca481d48893121e4df415f1f9be1c771831c9 /src/doc/rustc-dev-guide | |
| parent | 789b4e3b8ba41bff98cd775e61d8c4313314c65d (diff) | |
| download | rust-8371c224e9cc6ca0ef10e3b5e68258a06241a8b9.tar.gz rust-8371c224e9cc6ca0ef10e3b5e68258a06241a8b9.zip | |
Update syntax-intro.md
Diffstat (limited to 'src/doc/rustc-dev-guide')
| -rw-r--r-- | src/doc/rustc-dev-guide/src/syntax-intro.md | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/doc/rustc-dev-guide/src/syntax-intro.md b/src/doc/rustc-dev-guide/src/syntax-intro.md index 43ef4457746..08798cad48f 100644 --- a/src/doc/rustc-dev-guide/src/syntax-intro.md +++ b/src/doc/rustc-dev-guide/src/syntax-intro.md @@ -1,13 +1,20 @@ # Syntax and the AST Working directly with source code is very inconvenient and error-prone. Thus, -before we do anything else, we convert raw source code into an AST. It turns -out that doing even this involves a lot of work, including lexing, parsing, -macro expansion, name resolution, conditional compilation, feature-gate -checking, and validation of the AST. In this chapter, we take a look at all -of these steps. +before we do anything else, we convert raw source code into an [Abstract Syntax +Tree (`AST`)][`AST`]. It turns out that doing even this involves a lot of work, +including [lexing, parsing], [`macro` expansion], [name resolution], conditional +compilation, [feature-gate checking], and [validation] of the [`AST`]. In this chapter, +we take a look at all of these steps. Notably, there isn't always a clean ordering between these tasks. For example, -macro expansion relies on name resolution to resolve the names of macros and -imports. And parsing requires macro expansion, which in turn may require -parsing the output of the macro. +`macro` expansion relies on name resolution to resolve the names of `macro`s and +imports. And parsing requires `macro` expansion, which in turn may require +parsing the output of the `macro`. + +[`AST`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_parse/index.html +[`macro` expansion]: ./macro-expansion.md +[feature-gate checking]: ./feature-gate-ck.md +[lexing, parsing]: ./lexing-parsing.md +[name resolution]: ./name-resolution.md +[validation]: ./ast-validation.md \ No newline at end of file |
