mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-08-22 17:56:43 +02:00
16 failing
This commit is contained in:
@@ -3099,8 +3099,15 @@ class LezerFlowParser {
|
|||||||
console.log(`UIO DEBUG: parseEdgeWithIdStatement: skipping @ symbol`);
|
console.log(`UIO DEBUG: parseEdgeWithIdStatement: skipping @ symbol`);
|
||||||
i++; // Skip '@'
|
i++; // Skip '@'
|
||||||
|
|
||||||
// Parse the arrow/text/target using the standard edge parser (same as normal edges)
|
// First try complex arrow parsing (handles double-ended heads like x-- text --x and dotted x-. text .-x)
|
||||||
const parsed = this.parseEdgePattern(tokens, i);
|
const complex = this.parseComplexArrowPattern(tokens, i);
|
||||||
|
let parsed = complex;
|
||||||
|
|
||||||
|
// Fallback to simple edge pattern if complex did not match
|
||||||
|
if (!parsed) {
|
||||||
|
parsed = this.parseEdgePattern(tokens, i);
|
||||||
|
}
|
||||||
|
|
||||||
if (!parsed) {
|
if (!parsed) {
|
||||||
console.log(`UIO DEBUG: parseEdgeWithIdStatement: no valid arrow pattern after id`);
|
console.log(`UIO DEBUG: parseEdgeWithIdStatement: no valid arrow pattern after id`);
|
||||||
return i + 1;
|
return i + 1;
|
||||||
@@ -4595,6 +4602,18 @@ class LezerFlowParser {
|
|||||||
text = token.value; // Keep surrounding quotes; downstream will classify as 'string' or 'markdown'
|
text = token.value; // Keep surrounding quotes; downstream will classify as 'string' or 'markdown'
|
||||||
foundText = true;
|
foundText = true;
|
||||||
}
|
}
|
||||||
|
} else if (token.type === 'At') {
|
||||||
|
// Treat '@' as part of label text, not as an edge-id marker inside complex edge parsing
|
||||||
|
log.debug(`UIO parseComplexArrowPattern: treating '@' as text`);
|
||||||
|
if (!foundText) {
|
||||||
|
text = '@';
|
||||||
|
foundText = true;
|
||||||
|
} else if (arrowParts.length <= 1) {
|
||||||
|
text += ' @';
|
||||||
|
} else {
|
||||||
|
// If we've already started the right side arrow, '@' cannot be part of the arrow, so ignore or append conservatively
|
||||||
|
text += ' @';
|
||||||
|
}
|
||||||
} else if (
|
} else if (
|
||||||
token.type === 'Identifier' ||
|
token.type === 'Identifier' ||
|
||||||
token.type === 'NODE_STRING' ||
|
token.type === 'NODE_STRING' ||
|
||||||
|
Reference in New Issue
Block a user