46
46
< span class ="brace "> }</ span > < span class ="parenthesis "> )</ span >
47
47
< span class ="brace "> }</ span >
48
48
< span class ="attribute attribute "> #</ span > < span class ="attribute attribute "> [</ span > < span class ="builtin_attr attribute "> rustc_builtin_macro</ span > < span class ="attribute attribute "> ]</ span >
49
- < span class ="keyword "> macro_rules</ span > < span class ="punctuation "> !</ span > < span class ="macro declaration "> format_args_nl</ span > < span class ="brace "> {</ span >
50
- < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > fmt< span class ="colon "> :</ span > expr< span class ="parenthesis "> )</ span > < span class ="operator "> =</ span > < span class ="angle "> ></ span > < span class ="brace "> {</ span > < span class ="brace "> {</ span > < span class ="comment "> /* compiler built-in */</ span > < span class ="brace "> }</ span > < span class ="brace "> }</ span > < span class ="semicolon "> ;</ span >
51
- < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > fmt< span class ="colon "> :</ span > expr< span class ="comma "> ,</ span > < span class ="punctuation "> $</ span > < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > args< span class ="colon "> :</ span > tt< span class ="parenthesis "> )</ span > < span class ="punctuation "> *</ span > < span class ="parenthesis "> )</ span > < span class ="operator "> =</ span > < span class ="angle "> ></ span > < span class ="brace "> {</ span > < span class ="brace "> {</ span > < span class ="comment "> /* compiler built-in */</ span > < span class ="brace "> }</ span > < span class ="brace "> }</ span > < span class ="semicolon "> ;</ span >
52
- < span class ="brace "> }</ span >
49
+ < span class ="attribute attribute "> #</ span > < span class ="attribute attribute "> [</ span > < span class ="builtin_attr attribute "> macro_export</ span > < span class ="attribute attribute "> ]</ span >
50
+ < span class ="keyword "> macro_rules</ span > < span class ="punctuation "> !</ span > < span class ="macro declaration "> format_args</ span > < span class ="brace "> {</ span > < span class ="brace "> }</ span >
51
+ < span class ="attribute attribute "> #</ span > < span class ="attribute attribute "> [</ span > < span class ="builtin_attr attribute "> rustc_builtin_macro</ span > < span class ="attribute attribute "> ]</ span >
52
+ < span class ="attribute attribute "> #</ span > < span class ="attribute attribute "> [</ span > < span class ="builtin_attr attribute "> macro_export</ span > < span class ="attribute attribute "> ]</ span >
53
+ < span class ="keyword "> macro_rules</ span > < span class ="punctuation "> !</ span > < span class ="macro declaration "> const_format_args</ span > < span class ="brace "> {</ span > < span class ="brace "> }</ span >
54
+ < span class ="attribute attribute "> #</ span > < span class ="attribute attribute "> [</ span > < span class ="builtin_attr attribute "> rustc_builtin_macro</ span > < span class ="attribute attribute "> ]</ span >
55
+ < span class ="attribute attribute "> #</ span > < span class ="attribute attribute "> [</ span > < span class ="builtin_attr attribute "> macro_export</ span > < span class ="attribute attribute "> ]</ span >
56
+ < span class ="keyword "> macro_rules</ span > < span class ="punctuation "> !</ span > < span class ="macro declaration "> format_args_nl</ span > < span class ="brace "> {</ span > < span class ="brace "> }</ span >
53
57
54
58
< span class ="keyword "> mod</ span > < span class ="module declaration "> panic</ span > < span class ="brace "> {</ span >
55
59
< span class ="keyword "> pub</ span > < span class ="keyword "> macro</ span > < span class ="macro declaration "> panic_2015</ span > < span class ="brace "> {</ span >
79
83
< span class ="attribute attribute "> #</ span > < span class ="attribute attribute "> [</ span > < span class ="builtin_attr attribute "> rustc_builtin_macro</ span > < span class ="attribute attribute "> ]</ span >
80
84
< span class ="keyword "> macro_rules</ span > < span class ="punctuation "> !</ span > < span class ="macro declaration "> assert</ span > < span class ="brace "> {</ span > < span class ="brace "> }</ span >
81
85
86
+ < span class ="keyword "> macro_rules</ span > < span class ="punctuation "> !</ span > < span class ="macro declaration "> toho</ span > < span class ="brace "> {</ span >
87
+ < span class ="parenthesis "> (</ span > < span class ="parenthesis "> )</ span > < span class ="operator "> =</ span > < span class ="angle "> ></ span > < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > crate< span class ="colon "> :</ span > < span class ="colon "> :</ span > panic< span class ="punctuation "> !</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "not yet implemented"</ span > < span class ="parenthesis "> )</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
88
+ < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > arg< span class ="colon "> :</ span > tt< span class ="parenthesis "> )</ span > < span class ="punctuation "> +</ span > < span class ="parenthesis "> )</ span > < span class ="operator "> =</ span > < span class ="angle "> ></ span > < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > crate< span class ="colon "> :</ span > < span class ="colon "> :</ span > panic< span class ="punctuation "> !</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "not yet implemented: {}"</ span > < span class ="comma "> ,</ span > < span class ="punctuation "> $</ span > crate< span class ="colon "> :</ span > < span class ="colon "> :</ span > format_args< span class ="punctuation "> !</ span > < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > arg< span class ="parenthesis "> )</ span > < span class ="punctuation "> +</ span > < span class ="parenthesis "> )</ span > < span class ="parenthesis "> )</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
89
+ < span class ="brace "> }</ span >
90
+
82
91
< span class ="keyword "> fn</ span > < span class ="function declaration "> main</ span > < span class ="parenthesis "> (</ span > < span class ="parenthesis "> )</ span > < span class ="brace "> {</ span >
83
92
< span class ="comment "> // from https://doc.rust-lang.org/std/fmt/index.html</ span >
84
93
< span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "Hello"</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span > < span class ="comment "> // => "Hello"</ span >
104
113
< span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "Hello </ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> :</ span > < span class ="format_specifier "> +</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> !"</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 5</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
105
114
< span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> :</ span > < span class ="format_specifier "> #</ span > < span class ="variable "> x</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> !"</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 27</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
106
115
< span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "Hello </ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> :</ span > < span class ="numeric_literal "> 0</ span > < span class ="numeric_literal "> 5</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> !"</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 5</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
107
- < span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "Hello </ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> :</ span > < span class ="numeric_literal "> 0</ span > < span class ="numeric_literal "> 5</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> !"</ span > < span class ="comma "> ,</ span > < span class ="punctuation "> -</ span > < span class ="numeric_literal "> 5</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
116
+ < span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "Hello </ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> :</ span > < span class ="numeric_literal "> 0</ span > < span class ="numeric_literal "> 5</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> !"</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> -</ span > < span class ="numeric_literal "> 5</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
108
117
< span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> :</ span > < span class ="format_specifier "> #</ span > < span class ="numeric_literal "> 0</ span > < span class ="numeric_literal "> 10</ span > < span class ="variable "> x</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> !"</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 27</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
109
118
< span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "Hello </ span > < span class ="format_specifier "> {</ span > < span class ="numeric_literal "> 0</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> is </ span > < span class ="format_specifier "> {</ span > < span class ="numeric_literal "> 1</ span > < span class ="format_specifier "> :</ span > < span class ="format_specifier "> .</ span > < span class ="numeric_literal "> 5</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > < span class ="string_literal "> "x"</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 0.01</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
110
119
< span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "Hello </ span > < span class ="format_specifier "> {</ span > < span class ="numeric_literal "> 1</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> is </ span > < span class ="format_specifier "> {</ span > < span class ="numeric_literal "> 2</ span > < span class ="format_specifier "> :</ span > < span class ="format_specifier "> .</ span > < span class ="numeric_literal "> 0</ span > < span class ="format_specifier "> $</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 5</ span > < span class ="comma "> ,</ span > < span class ="string_literal "> "x"</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 0.01</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
127
136
< span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="escape_sequence "> \x41</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > A < span class ="operator "> =</ span > < span class ="numeric_literal "> 92</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
128
137
< span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="variable "> ничоси</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > ничоси < span class ="operator "> =</ span > < span class ="numeric_literal "> 92</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
129
138
130
- < span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> :</ span > < span class ="variable "> x</ span > < span class ="format_specifier "> ?</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> </ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > thingy< span class ="comma "> ,</ span > n2 < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
139
+ < span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> :</ span > < span class ="variable "> x</ span > < span class ="format_specifier "> ?</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> </ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > < span class =" unresolved_reference " > thingy</ span > < span class ="comma "> ,</ span > < span class =" unresolved_reference " > n2 </ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
131
140
< span class ="macro "> panic!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 0</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
132
141
< span class ="macro "> panic!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "more </ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 1</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
133
142
< span class ="macro "> assert!</ span > < span class ="parenthesis "> (</ span > < span class ="bool_literal "> true</ span > < span class ="comma "> ,</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 1</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
134
143
< span class ="macro "> assert!</ span > < span class ="parenthesis "> (</ span > < span class ="bool_literal "> true</ span > < span class ="comma "> ,</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> asdasd"</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 1</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
144
+ < span class ="macro "> toho!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> fmt"</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 0</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
135
145
< span class ="brace "> }</ span > </ code > </ pre >
0 commit comments