2016-03-26 15:07:21 +01:00
|
|
|
/*
|
|
|
|
* Parse following
|
|
|
|
* gitGraph:
|
|
|
|
* commit
|
|
|
|
* commit
|
2020-06-20 05:58:38 +02:00
|
|
|
* branch
|
2016-03-26 15:07:21 +01:00
|
|
|
*/
|
|
|
|
%lex
|
|
|
|
|
2016-03-27 07:30:44 +02:00
|
|
|
%x string
|
2016-04-01 16:31:46 +02:00
|
|
|
%x options
|
2022-03-31 19:37:36 +02:00
|
|
|
%x open_directive
|
|
|
|
%x type_directive
|
|
|
|
%x arg_directive
|
|
|
|
%x close_directive
|
2022-04-30 16:06:53 +02:00
|
|
|
%x acc_title
|
|
|
|
%x acc_descr
|
|
|
|
%x acc_descr_multiline
|
2016-03-26 15:07:21 +01:00
|
|
|
%options case-insensitive
|
|
|
|
|
|
|
|
|
2022-03-31 19:37:36 +02:00
|
|
|
%%
|
|
|
|
\%\%\{ { this.begin('open_directive'); return 'open_directive'; }
|
|
|
|
<open_directive>((?:(?!\}\%\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }
|
|
|
|
<type_directive>":" { this.popState(); this.begin('arg_directive'); return ':'; }
|
|
|
|
<type_directive,arg_directive>\}\%\% { this.popState(); this.popState(); return 'close_directive'; }
|
|
|
|
<arg_directive>((?:(?!\}\%\%).|\n)*) return 'arg_directive';
|
2022-04-30 16:06:53 +02:00
|
|
|
accTitle\s*":"\s* { this.begin("acc_title");return 'acc_title'; }
|
|
|
|
<acc_title>(?!\n|;|#)*[^\n]* { this.popState(); return "acc_title_value"; }
|
|
|
|
accDescr\s*":"\s* { this.begin("acc_descr");return 'acc_descr'; }
|
|
|
|
<acc_descr>(?!\n|;|#)*[^\n]* { this.popState(); return "acc_descr_value"; }
|
|
|
|
accDescr\s*"{"\s* { this.begin("acc_descr_multiline");}
|
|
|
|
<acc_descr_multiline>[\}] { this.popState(); }
|
|
|
|
<acc_descr_multiline>[^\}]* return "acc_descr_multiline_value";
|
2020-10-22 21:40:08 +02:00
|
|
|
(\r?\n)+ /*{console.log('New line');return 'NL';}*/ return 'NL';
|
2020-06-20 05:58:38 +02:00
|
|
|
\#[^\n]* /* skip comments */
|
|
|
|
\%%[^\n]* /* skip comments */
|
2022-04-19 16:42:02 +02:00
|
|
|
"gitGraph" return 'GG';
|
|
|
|
"commit" return 'COMMIT';
|
|
|
|
"id:" return 'COMMIT_ID';
|
|
|
|
"type:" return 'COMMIT_TYPE';
|
|
|
|
"msg:" return 'COMMIT_MSG';
|
|
|
|
"NORMAL" return 'NORMAL';
|
|
|
|
"REVERSE" return 'REVERSE';
|
|
|
|
"HIGHLIGHT" return 'HIGHLIGHT';
|
|
|
|
"tag:" return 'COMMIT_TAG';
|
|
|
|
"branch" return 'BRANCH';
|
2022-05-04 17:04:41 +02:00
|
|
|
"order:" return 'ORDER';
|
2022-04-19 16:42:02 +02:00
|
|
|
"merge" return 'MERGE';
|
2022-06-07 20:32:43 +02:00
|
|
|
"cherry-pick" return 'CHERRY_PICK';
|
2022-04-19 16:42:02 +02:00
|
|
|
// "reset" return 'RESET';
|
|
|
|
"checkout" return 'CHECKOUT';
|
|
|
|
"LR" return 'DIR';
|
|
|
|
"BT" return 'DIR';
|
|
|
|
":" return ':';
|
|
|
|
"^" return 'CARET'
|
2022-04-28 12:15:34 +02:00
|
|
|
"options"\r?\n this.begin("options"); //
|
|
|
|
<options>[ \r\n\t]+"end" this.popState(); // not used anymore in the renderer, fixed for backward compatibility
|
|
|
|
<options>[\s\S]+(?=[ \r\n\t]+"end") return 'OPT'; //
|
2022-04-19 16:42:02 +02:00
|
|
|
["] this.begin("string");
|
|
|
|
<string>["] this.popState();
|
|
|
|
<string>[^"]* return 'STR';
|
2022-09-01 18:20:36 +02:00
|
|
|
[0-9]+(?=\s|$) return 'NUM';
|
|
|
|
\w[-\./\w]*[-\w] return 'ID'; // only a subset of https://git-scm.com/docs/git-check-ref-format
|
2022-04-19 16:42:02 +02:00
|
|
|
<<EOF>> return 'EOF';
|
2022-09-01 18:20:36 +02:00
|
|
|
\s+ /* skip all whitespace */ // lowest priority so we can use lookaheads in earlier regex
|
2016-03-26 15:07:21 +01:00
|
|
|
|
|
|
|
/lex
|
|
|
|
|
|
|
|
%left '^'
|
|
|
|
|
|
|
|
%start start
|
|
|
|
|
|
|
|
%% /* language grammar */
|
|
|
|
|
|
|
|
start
|
2022-03-31 19:37:36 +02:00
|
|
|
: eol start
|
|
|
|
| directive start
|
|
|
|
| GG document EOF{ return $3; }
|
2022-03-17 19:04:37 +01:00
|
|
|
| GG ':' document EOF{ return $3; }
|
2016-03-27 07:30:44 +02:00
|
|
|
| GG DIR ':' document EOF {yy.setDirection($2); return $4;}
|
2016-03-26 15:07:21 +01:00
|
|
|
;
|
|
|
|
|
2016-04-01 16:31:46 +02:00
|
|
|
|
2016-03-26 15:07:21 +01:00
|
|
|
document
|
2016-04-01 16:31:46 +02:00
|
|
|
: /*empty*/
|
|
|
|
| options body { yy.setOptions($1); $$ = $2}
|
2016-03-26 15:07:21 +01:00
|
|
|
;
|
|
|
|
|
2016-04-01 16:31:46 +02:00
|
|
|
options
|
|
|
|
: options OPT {$1 +=$2; $$=$1}
|
|
|
|
| NL
|
|
|
|
;
|
|
|
|
body
|
|
|
|
: /*emmpty*/ {$$ = []}
|
|
|
|
| body line {$1.push($2); $$=$1;}
|
|
|
|
;
|
2016-03-26 15:07:21 +01:00
|
|
|
line
|
2022-03-31 19:37:36 +02:00
|
|
|
: statement eol {$$ =$1}
|
2016-03-26 15:07:21 +01:00
|
|
|
| NL
|
|
|
|
;
|
|
|
|
|
|
|
|
statement
|
2020-10-22 21:40:08 +02:00
|
|
|
: commitStatement
|
2022-04-19 17:02:41 +02:00
|
|
|
| mergeStatement
|
2022-06-07 20:32:43 +02:00
|
|
|
| cherryPickStatement
|
2022-05-17 20:23:45 +02:00
|
|
|
| acc_title acc_title_value { $$=$2.trim();yy.setAccTitle($$); }
|
2022-04-30 16:06:53 +02:00
|
|
|
| acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); }
|
|
|
|
| acc_descr_multiline_value { $$=$1.trim();yy.setAccDescription($$); } | section {yy.addSection($1.substr(8));$$=$1.substr(8);}
|
2022-05-04 17:04:41 +02:00
|
|
|
| branchStatement
|
2016-03-27 07:30:44 +02:00
|
|
|
| CHECKOUT ID {yy.checkout($2)}
|
2022-02-24 19:55:16 +01:00
|
|
|
// | RESET reset_arg {yy.reset($2)}
|
2016-03-27 11:15:26 +02:00
|
|
|
;
|
2022-05-04 17:04:41 +02:00
|
|
|
branchStatement
|
|
|
|
: BRANCH ID {yy.branch($2)}
|
|
|
|
| BRANCH ID ORDER NUM {yy.branch($2, $4)}
|
|
|
|
;
|
2022-04-19 17:02:41 +02:00
|
|
|
|
2022-06-07 20:32:43 +02:00
|
|
|
cherryPickStatement
|
|
|
|
: CHERRY_PICK COMMIT_ID STR {yy.cherryPick($3)}
|
|
|
|
;
|
|
|
|
|
2022-04-19 17:02:41 +02:00
|
|
|
mergeStatement
|
2022-08-30 17:42:42 +02:00
|
|
|
: MERGE ID {yy.merge($2,'','','')}
|
|
|
|
| MERGE ID COMMIT_ID STR {yy.merge($2, $4,'','')}
|
|
|
|
| MERGE ID COMMIT_TYPE commitType {yy.merge($2,'', $4,'')}
|
|
|
|
| MERGE ID COMMIT_TAG STR {yy.merge($2, '','',$4)}
|
|
|
|
| MERGE ID COMMIT_TAG STR COMMIT_ID STR {yy.merge($2, $6,'', $4)}
|
|
|
|
| MERGE ID COMMIT_TAG STR COMMIT_TYPE commitType {yy.merge($2, '',$6, $4)}
|
|
|
|
| MERGE ID COMMIT_TYPE commitType COMMIT_TAG STR {yy.merge($2, '',$4, $6)}
|
|
|
|
| MERGE ID COMMIT_ID STR COMMIT_TYPE commitType {yy.merge($2, $4, $6, '')}
|
|
|
|
| MERGE ID COMMIT_ID STR COMMIT_TAG STR {yy.merge($2, $4, '', $6)}
|
|
|
|
| MERGE ID COMMIT_TYPE commitType COMMIT_ID STR {yy.merge($2, $6,$4, '')}
|
|
|
|
| MERGE ID COMMIT_ID STR COMMIT_TYPE commitType COMMIT_TAG STR {yy.merge($2, $4, $6, $8)}
|
|
|
|
| MERGE ID COMMIT_TYPE commitType COMMIT_TAG STR COMMIT_ID STR {yy.merge($2, $8, $4, $6)}
|
|
|
|
| MERGE ID COMMIT_ID STR COMMIT_TAG STR COMMIT_TYPE commitType {yy.merge($2, $4, $8, $6)}
|
|
|
|
| MERGE ID COMMIT_TYPE commitType COMMIT_ID STR COMMIT_TAG STR {yy.merge($2, $6, $4, $8)}
|
|
|
|
| MERGE ID COMMIT_TAG STR COMMIT_TYPE commitType COMMIT_ID STR {yy.merge($2, $8, $6, $4)}
|
|
|
|
| MERGE ID COMMIT_TAG STR COMMIT_ID STR COMMIT_TYPE commitType {yy.merge($2, $6, $8, $4)}
|
2022-04-19 17:02:41 +02:00
|
|
|
;
|
|
|
|
|
2020-10-22 21:40:08 +02:00
|
|
|
commitStatement
|
|
|
|
: COMMIT commit_arg {yy.commit($2)}
|
|
|
|
| COMMIT COMMIT_TAG STR {yy.commit('','',yy.commitType.NORMAL,$3)}
|
2022-03-03 19:58:28 +01:00
|
|
|
| COMMIT COMMIT_TYPE commitType {yy.commit('','',$3,'')}
|
2020-10-22 21:40:08 +02:00
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_TYPE commitType {yy.commit('','',$5,$3)}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_TAG STR {yy.commit('','',$3,$5)}
|
2022-03-03 19:58:28 +01:00
|
|
|
| COMMIT COMMIT_ID STR {yy.commit('',$3,yy.commitType.NORMAL,'')}
|
2020-10-22 21:40:08 +02:00
|
|
|
| COMMIT COMMIT_ID STR COMMIT_TAG STR {yy.commit('',$3,yy.commitType.NORMAL,$5)}
|
2022-03-03 19:58:28 +01:00
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_ID STR {yy.commit('',$5,yy.commitType.NORMAL,$3)}
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_TYPE commitType {yy.commit('',$3,$5,'')}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_ID STR {yy.commit('',$5,$3,'')}
|
2020-10-22 21:40:08 +02:00
|
|
|
| COMMIT COMMIT_ID STR COMMIT_TYPE commitType COMMIT_TAG STR {yy.commit('',$3,$5,$7)}
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_TAG STR COMMIT_TYPE commitType {yy.commit('',$3,$7,$5)}
|
2022-03-03 19:58:28 +01:00
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_ID STR COMMIT_TAG STR {yy.commit('',$5,$3,$7)}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_TAG STR COMMIT_ID STR {yy.commit('',$7,$3,$5)}
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_TYPE commitType COMMIT_ID STR {yy.commit('',$7,$5,$3)}
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_ID STR COMMIT_TYPE commitType {yy.commit('',$5,$7,$3)}
|
|
|
|
| COMMIT COMMIT_MSG STR {yy.commit($3,'',yy.commitType.NORMAL,'')}
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_MSG STR {yy.commit($5,'',yy.commitType.NORMAL,$3)}
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_TAG STR {yy.commit($3,'',yy.commitType.NORMAL,$5)}
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_TYPE commitType {yy.commit($3,'',$5,'')}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_MSG STR {yy.commit($5,'',$3,'')}
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_MSG STR {yy.commit($5,$3,yy.commitType.NORMAL,'')}
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_ID STR {yy.commit($3,$5,yy.commitType.NORMAL,'')}
|
2022-03-31 19:37:36 +02:00
|
|
|
|
2022-03-03 19:58:28 +01:00
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_TYPE commitType COMMIT_TAG STR {yy.commit($3,'',$5,$7)}
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_TAG STR COMMIT_TYPE commitType {yy.commit($3,'',$7,$5)}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_MSG STR COMMIT_TAG STR {yy.commit($5,'',$3,$7)}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_TAG STR COMMIT_MSG STR {yy.commit($7,'',$3,$5)}
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_TYPE commitType COMMIT_MSG STR {yy.commit($7,'',$5,$3)}
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_MSG STR COMMIT_TYPE commitType {yy.commit($5,'',$7,$3)}
|
|
|
|
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_TYPE commitType COMMIT_ID STR {yy.commit($3,$7,$5,'')}
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_ID STR COMMIT_TYPE commitType {yy.commit($3,$5,$7,'')}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_MSG STR COMMIT_ID STR {yy.commit($5,$7,$3,'')}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_ID STR COMMIT_MSG STR {yy.commit($7,$5,$3,'')}
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_TYPE commitType COMMIT_MSG STR {yy.commit($7,$3,$5,'')}
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_MSG STR COMMIT_TYPE commitType {yy.commit($5,$3,$7,'')}
|
|
|
|
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_TAG STR COMMIT_ID STR {yy.commit($3,$7,yy.commitType.NORMAL,$5)}
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_ID STR COMMIT_TAG STR {yy.commit($3,$5,yy.commitType.NORMAL,$7)}
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_MSG STR COMMIT_ID STR {yy.commit($5,$7,yy.commitType.NORMAL,$3)}
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_ID STR COMMIT_MSG STR {yy.commit($7,$5,yy.commitType.NORMAL,$3)}
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_TAG STR COMMIT_MSG STR {yy.commit($7,$3,yy.commitType.NORMAL,$5)}
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_MSG STR COMMIT_TAG STR {yy.commit($5,$3,yy.commitType.NORMAL,$7)}
|
|
|
|
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_ID STR COMMIT_TYPE commitType COMMIT_TAG STR {yy.commit($3,$5,$7,$9)}
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_ID STR COMMIT_TAG STR COMMIT_TYPE commitType {yy.commit($3,$5,$9,$7)}
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_TYPE commitType COMMIT_ID STR COMMIT_TAG STR {yy.commit($3,$7,$5,$9)}
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_TYPE commitType COMMIT_TAG STR COMMIT_ID STR {yy.commit($3,$9,$5,$7)}
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_TAG STR COMMIT_ID STR COMMIT_TYPE commitType {yy.commit($3,$7,$9,$5)}
|
|
|
|
| COMMIT COMMIT_MSG STR COMMIT_TAG STR COMMIT_TYPE commitType COMMIT_ID STR {yy.commit($3,$9,$7,$5)}
|
|
|
|
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_MSG STR COMMIT_TYPE commitType COMMIT_TAG STR {yy.commit($5,$3,$7,$9)}
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_MSG STR COMMIT_TAG STR COMMIT_TYPE commitType {yy.commit($5,$3,$9,$7)}
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_TYPE commitType COMMIT_MSG STR COMMIT_TAG STR {yy.commit($7,$3,$5,$9)}
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_TYPE commitType COMMIT_TAG STR COMMIT_MSG STR {yy.commit($9,$3,$5,$7)}
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_TAG STR COMMIT_MSG STR COMMIT_TYPE commitType {yy.commit($7,$3,$9,$5)}
|
|
|
|
| COMMIT COMMIT_ID STR COMMIT_TAG STR COMMIT_TYPE commitType COMMIT_MSG STR {yy.commit($9,$3,$7,$5)}
|
|
|
|
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_ID STR COMMIT_TYPE commitType COMMIT_MSG STR {yy.commit($9,$5,$7,$3)}
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_ID STR COMMIT_MSG STR COMMIT_TYPE commitType {yy.commit($7,$5,$9,$3)}
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_TYPE commitType COMMIT_ID STR COMMIT_MSG STR {yy.commit($9,$7,$5,$3)}
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_TYPE commitType COMMIT_MSG STR COMMIT_ID STR {yy.commit($7,$9,$5,$3)}
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_MSG STR COMMIT_ID STR COMMIT_TYPE commitType {yy.commit($5,$7,$9,$3)}
|
|
|
|
| COMMIT COMMIT_TAG STR COMMIT_MSG STR COMMIT_TYPE commitType COMMIT_ID STR {yy.commit($5,$9,$7,$3)}
|
|
|
|
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_ID STR COMMIT_MSG STR COMMIT_TAG STR {yy.commit($7,$5,$3,$9)}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_ID STR COMMIT_TAG STR COMMIT_MSG STR {yy.commit($9,$5,$3,$7)}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_TAG STR COMMIT_MSG STR COMMIT_ID STR {yy.commit($7,$9,$3,$5)}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_TAG STR COMMIT_ID STR COMMIT_MSG STR {yy.commit($9,$7,$3,$5)}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_MSG STR COMMIT_ID STR COMMIT_TAG STR {yy.commit($5,$7,$3,$9)}
|
|
|
|
| COMMIT COMMIT_TYPE commitType COMMIT_MSG STR COMMIT_TAG STR COMMIT_ID STR {yy.commit($5,$9,$3,$7)}
|
|
|
|
|
|
|
|
|
|
|
|
// | COMMIT COMMIT_ID STR {yy.commit('',$3,yy.commitType.NORMAL,'')}
|
|
|
|
// | COMMIT COMMIT_TYPE commitType {yy.commit('','',$3,'')}
|
|
|
|
// | COMMIT COMMIT_TAG STR {yy.commit('','',yy.commitType.NORMAL,$3)}
|
|
|
|
// | COMMIT COMMIT_MSG STR {yy.commit($3,'',yy.commitType.NORMAL,'')}
|
|
|
|
// | COMMIT COMMIT_TAG STR COMMIT_TYPE commitType {yy.commit('','',$5,$3)}
|
|
|
|
// | COMMIT COMMIT_TYPE commitType COMMIT_TAG STR {yy.commit('','',$3,$5)}
|
|
|
|
// | COMMIT COMMIT_ID STR COMMIT_TYPE commitType {yy.commit('',$3,$5,'')}
|
|
|
|
// | COMMIT COMMIT_ID STR COMMIT_TAG STR {yy.commit('',$3,yy.commitType.NORMAL,$5)}
|
|
|
|
// | COMMIT COMMIT_ID STR COMMIT_TYPE commitType COMMIT_TAG STR {yy.commit('',$3,$5,$7)}
|
|
|
|
// | COMMIT COMMIT_ID STR COMMIT_TAG STR COMMIT_TYPE commitType {yy.commit('',$3,$7,$5)}
|
2020-10-22 21:40:08 +02:00
|
|
|
;
|
2016-03-27 07:30:44 +02:00
|
|
|
commit_arg
|
|
|
|
: /* empty */ {$$ = ""}
|
|
|
|
| STR {$$=$1}
|
|
|
|
;
|
2020-10-22 21:40:08 +02:00
|
|
|
commitType
|
|
|
|
: NORMAL { $$=yy.commitType.NORMAL;}
|
|
|
|
| REVERSE { $$=yy.commitType.REVERSE;}
|
|
|
|
| HIGHLIGHT { $$=yy.commitType.HIGHLIGHT;}
|
2022-03-31 19:37:36 +02:00
|
|
|
;
|
|
|
|
|
|
|
|
directive
|
|
|
|
: openDirective typeDirective closeDirective
|
|
|
|
| openDirective typeDirective ':' argDirective closeDirective
|
|
|
|
;
|
|
|
|
|
|
|
|
openDirective
|
|
|
|
: open_directive { yy.parseDirective('%%{', 'open_directive'); }
|
|
|
|
;
|
|
|
|
|
|
|
|
typeDirective
|
|
|
|
: type_directive { yy.parseDirective($1, 'type_directive'); }
|
|
|
|
;
|
|
|
|
|
|
|
|
argDirective
|
|
|
|
: arg_directive { $1 = $1.trim().replace(/'/g, '"'); yy.parseDirective($1, 'arg_directive'); }
|
|
|
|
;
|
|
|
|
|
|
|
|
closeDirective
|
|
|
|
: close_directive { yy.parseDirective('}%%', 'close_directive', 'gitGraph'); }
|
|
|
|
;
|
|
|
|
|
|
|
|
eol
|
|
|
|
: NL
|
|
|
|
| ';'
|
|
|
|
| EOF
|
|
|
|
;
|
2022-02-24 19:55:16 +01:00
|
|
|
// reset_arg
|
|
|
|
// : 'HEAD' reset_parents{$$ = $1+ ":" + $2 }
|
|
|
|
// | ID reset_parents{$$ = $1+ ":" + yy.count; yy.count = 0}
|
|
|
|
// ;
|
|
|
|
// reset_parents
|
|
|
|
// : /* empty */ {yy.count = 0}
|
|
|
|
// | CARET reset_parents { yy.count += 1 }
|
|
|
|
// ;
|