Add support for direction statement

This commit is contained in:
yari-dewalt
2025-01-22 09:00:48 -08:00
parent fe833e6d16
commit f7648e85d9
2 changed files with 25 additions and 1 deletions

View File

@@ -22,6 +22,10 @@ accDescr\s*":"\s* { this.begin("ac
accDescr\s*"{"\s* { this.begin("acc_descr_multiline");}
<acc_descr_multiline>[\}] { this.popState(); }
<acc_descr_multiline>[^\}]* return "acc_descr_multiline_value";
.*direction\s+TB[^\n]* return 'direction_tb';
.*direction\s+BT[^\n]* return 'direction_bt';
.*direction\s+RL[^\n]* return 'direction_rl';
.*direction\s+LR[^\n]* return 'direction_lr';
(\r?\n)+ return 'NEWLINE';
\s+ /* skip all whitespace */
\#[^\n]* /* skip comments */
@@ -101,8 +105,20 @@ diagram
| elementDef diagram
| relationshipDef diagram
| directive diagram
| direction diagram
| NEWLINE diagram;
direction
: direction_tb
{ yy.setDirection('TB');}
| direction_bt
{ yy.setDirection('BT');}
| direction_rl
{ yy.setDirection('RL');}
| direction_lr
{ yy.setDirection('LR');}
;
requirementDef
: requirementType requirementName STRUCT_START NEWLINE requirementBody
{ yy.addRequirement($2, $1) };

View File

@@ -53,6 +53,12 @@ const Relationships = {
TRACES: 'traces',
};
let direction = 'TB';
const getDirection = () => direction;
const setDirection = (dir: string) => {
direction = dir;
};
const getInitialRequirement = (): Requirement => ({
id: '',
text: '',
@@ -215,7 +221,7 @@ const getData = () => {
counter++;
}
return { nodes, edges, other: {}, config };
return { nodes, edges, other: {}, config, direction: getDirection() };
};
export default {
@@ -236,6 +242,8 @@ export default {
getAccDescription,
setDiagramTitle,
getDiagramTitle,
getDirection,
setDirection,
addElement,
getElements,
setNewElementType,