@@ -2,12 +2,17 @@ module.exports = grammar({
22 name : 'help' , // The actual language name is help
33
44 extras : ( $ ) => [ / [ \t ] / ] ,
5- conflicts : ( $ ) => [ [ $ . _atom , $ . column_name ] ] ,
65
7- externals : ( $ ) => [ $ . code_block ] ,
6+ externals : ( $ ) => [
7+ $ . word ,
8+ $ . column_name ,
9+ $ . uppercase_name ,
10+ $ . code_block
11+ ] ,
812
913 rules : {
10- help_file : ( $ ) => repeat1 ( choice ( $ . line , '\n' , $ . column_heading , $ . headline ) ) ,
14+ help_file : ( $ ) =>
15+ repeat1 ( choice ( $ . line , '\n' , $ . column_heading , $ . headline ) ) ,
1116
1217 headline : ( $ ) =>
1318 seq (
@@ -16,25 +21,33 @@ module.exports = grammar({
1621 seq ( repeat1 ( $ . word ) , $ . tag ) ,
1722 '\n' ,
1823 ) ,
24+
1925 line : ( $ ) => prec . right ( seq ( repeat1 ( $ . _atom ) , optional ( '\n' ) ) ) ,
2026
21- _atom : ( $ ) => choice ( $ . word , $ . tag , $ . code_block , $ . tag , $ . option , $ . hotlink ) ,
27+ _atom : ( $ ) =>
28+ choice (
29+ $ . word ,
30+ $ . tag ,
31+ $ . code_block ,
32+ $ . tag ,
33+ $ . option ,
34+ $ . hotlink ,
35+ $ . backtick ,
36+ ) ,
2237
23- uppercase_name : ( $ ) => repeat1 ( / [ A - Z ] + / ) ,
24- column_name : ( $ ) => repeat1 ( $ . word ) ,
2538 column_heading : ( $ ) =>
2639 seq (
2740 choice (
2841 seq ( field ( 'name' , $ . uppercase_name ) , optional ( $ . tag ) ) ,
29- seq ( field ( 'name' , $ . column_name ) , '~' ) ,
42+ field ( 'name' , $ . column_name ) ,
3043 ) ,
3144 '\n' ,
3245 ) ,
3346
34- word : ( $ ) => / [ ^ * | ' \n \t ] * [ ^ * | ' \n \t ~ ] / ,
3547 tag : ( $ ) => wrapped_word ( $ , '*' , 'name' ) ,
3648 option : ( $ ) => wrapped_word ( $ , "'" , 'name' ) ,
3749 hotlink : ( $ ) => wrapped_word ( $ , '|' , 'destination' ) ,
50+ backtick : ( $ ) => wrapped_word ( $ , '`' , 'content' ) ,
3851 } ,
3952} ) ;
4053
0 commit comments