Skip to content

Commit 35d70a9

Browse files
JohnTitormark-i-m
authored andcommitted
Update links (rust-lang#472)
1 parent 95665c8 commit 35d70a9

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/macro-expansion.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ before name resolution, macros are expanded using these portions of the code.
77
The macro parser, in turn, may call the normal Rust parser when it needs to
88
bind a metavariable (e.g. `$my_expr`) while parsing the contents of a macro
99
invocation. The code for macro expansion is in
10-
[`src/libsyntax/ext/mbe/`][code_dir]. This chapter aims to explain how macro
10+
[`src/libsyntax_expand/mbe/`][code_dir]. This chapter aims to explain how macro
1111
expansion works.
1212

1313
### Example
@@ -61,7 +61,7 @@ invocations. Interestingly, both are done by the macro parser.
6161
Basically, the macro parser is like an NFA-based regex parser. It uses an
6262
algorithm similar in spirit to the [Earley parsing
6363
algorithm](https://en.wikipedia.org/wiki/Earley_parser). The macro parser is
64-
defined in [`src/libsyntax/ext/mbe/macro_parser.rs`][code_mp].
64+
defined in [`src/libsyntax_expand/mbe/macro_parser.rs`][code_mp].
6565

6666
The interface of the macro parser is as follows (this is slightly simplified):
6767

@@ -110,7 +110,7 @@ normal Rust parser.
110110
As mentioned above, both definitions and invocations of macros are parsed using
111111
the macro parser. This is extremely non-intuitive and self-referential. The code
112112
to parse macro _definitions_ is in
113-
[`src/libsyntax/ext/mbe/macro_rules.rs`][code_mr]. It defines the pattern for
113+
[`src/libsyntax_expand/mbe/macro_rules.rs`][code_mr]. It defines the pattern for
114114
matching for a macro definition as `$( $lhs:tt => $rhs:tt );+`. In other words,
115115
a `macro_rules` definition should have in its body at least one occurrence of a
116116
token tree followed by `=>` followed by another token tree. When the compiler
@@ -139,7 +139,7 @@ the parse is ambiguous, while if there are no matches at all, there is a syntax
139139
error.
140140

141141
For more information about the macro parser's implementation, see the comments
142-
in [`src/libsyntax/ext/mbe/macro_parser.rs`][code_mp].
142+
in [`src/libsyntax_expand/mbe/macro_parser.rs`][code_mp].
143143

144144
### Hygiene
145145

@@ -205,8 +205,8 @@ TODO
205205
TODO: maybe something about macros 2.0?
206206
207207
208-
[code_dir]: https://github.com/rust-lang/rust/tree/master/src/libsyntax/ext/mbe
209-
[code_mp]: https://doc.rust-lang.org/nightly/nightly-rustc/syntax/ext/mbe/macro_parser
210-
[code_mr]: https://doc.rust-lang.org/nightly/nightly-rustc/syntax/ext/mbe/macro_rules
211-
[code_parse_int]: https://doc.rust-lang.org/nightly/nightly-rustc/syntax/ext/mbe/macro_parser/fn.parse.html
208+
[code_dir]: https://github.com/rust-lang/rust/tree/master/src/libsyntax_expand/mbe
209+
[code_mp]: https://doc.rust-lang.org/nightly/nightly-rustc/syntax_expand/mbe/macro_parser
210+
[code_mr]: https://doc.rust-lang.org/nightly/nightly-rustc/syntax_expand/mbe/macro_rules
211+
[code_parse_int]: https://doc.rust-lang.org/nightly/nightly-rustc/syntax_expand/mbe/macro_parser/fn.parse.html
212212
[parsing]: ./the-parser.html

0 commit comments

Comments
 (0)