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");} accDescr\s*"{"\s* { this.begin("acc_descr_multiline");}
<acc_descr_multiline>[\}] { this.popState(); } <acc_descr_multiline>[\}] { this.popState(); }
<acc_descr_multiline>[^\}]* return "acc_descr_multiline_value"; <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'; (\r?\n)+ return 'NEWLINE';
\s+ /* skip all whitespace */ \s+ /* skip all whitespace */
\#[^\n]* /* skip comments */ \#[^\n]* /* skip comments */
@@ -101,8 +105,20 @@ diagram
| elementDef diagram | elementDef diagram
| relationshipDef diagram | relationshipDef diagram
| directive diagram | directive diagram
| direction diagram
| NEWLINE 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 requirementDef
: requirementType requirementName STRUCT_START NEWLINE requirementBody : requirementType requirementName STRUCT_START NEWLINE requirementBody
{ yy.addRequirement($2, $1) }; { yy.addRequirement($2, $1) };

View File

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