d2parser: Fix #322

This commit is contained in:
Anmol Sethi 2023-03-22 12:27:13 -07:00
parent 1c2a7e5440
commit 84cc463ff6
No known key found for this signature in database
GPG key ID: 25BC68888A99A8BA
3 changed files with 62 additions and 5 deletions

View file

@ -3,3 +3,5 @@
#### Improvements 🧹
#### Bugfixes ⛑️
- Fix a bug in ID parsing [#322](https://github.com/terrastruct/d2/issues/322)

View file

@ -1063,6 +1063,15 @@ func (p *parser) parseUnquotedString(inKey bool) (s *d2ast.UnquotedString) {
if eof {
return s
}
switch r2 {
case '\n', ';', '#', '{', '}', '[', ']':
p.rewind()
p.peek()
p.commit()
sb.WriteRune(r)
rawb.WriteRune(r)
return s
}
if r2 == '-' || r2 == '>' || r2 == '*' {
p.rewind()
return s

View file

@ -4,17 +4,63 @@
"nodes": [
{
"map_key": {
"range": "d2/testdata/d2parser/TestParse/merged_shapes_#322.d2,1:0:1-4:0:10",
"range": "d2/testdata/d2parser/TestParse/merged_shapes_#322.d2,1:0:1-1:2:3",
"key": {
"range": "d2/testdata/d2parser/TestParse/merged_shapes_#322.d2,1:0:1-4:0:10",
"range": "d2/testdata/d2parser/TestParse/merged_shapes_#322.d2,1:0:1-1:2:3",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2parser/TestParse/merged_shapes_#322.d2,1:0:1-3:1:8",
"range": "d2/testdata/d2parser/TestParse/merged_shapes_#322.d2,1:0:1-1:1:2",
"value": [
{
"string": "a-\nb-\nc-",
"raw_string": "a-\nb-\nc-"
"string": "a-",
"raw_string": "a-"
}
]
}
}
]
},
"primary": {},
"value": {}
}
},
{
"map_key": {
"range": "d2/testdata/d2parser/TestParse/merged_shapes_#322.d2,2:0:4-2:2:6",
"key": {
"range": "d2/testdata/d2parser/TestParse/merged_shapes_#322.d2,2:0:4-2:2:6",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2parser/TestParse/merged_shapes_#322.d2,2:0:4-2:1:5",
"value": [
{
"string": "b-",
"raw_string": "b-"
}
]
}
}
]
},
"primary": {},
"value": {}
}
},
{
"map_key": {
"range": "d2/testdata/d2parser/TestParse/merged_shapes_#322.d2,3:0:7-3:2:9",
"key": {
"range": "d2/testdata/d2parser/TestParse/merged_shapes_#322.d2,3:0:7-3:2:9",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2parser/TestParse/merged_shapes_#322.d2,3:0:7-3:1:8",
"value": [
{
"string": "c-",
"raw_string": "c-"
}
]
}