From 271662b546f9c28fa3796c81ec0d903b86dfa570 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Thu, 21 Nov 2024 19:45:59 -0800 Subject: [PATCH 01/17] tests --- d2compiler/compile_test.go | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/d2compiler/compile_test.go b/d2compiler/compile_test.go index 3c7c024eb..701dad396 100644 --- a/d2compiler/compile_test.go +++ b/d2compiler/compile_test.go @@ -1723,6 +1723,50 @@ y } }, }, + { + name: "reserved_quoted/1", + text: `x: { + "label": hello +} +`, + assertions: func(t *testing.T, g *d2graph.Graph) { + assert.Equal(t, 2, len(g.Objects)) + }, + }, + { + name: "reserved_quoted/2", + text: `my_table: { + shape: sql_table + width: 200 + height: 200 + "shape": string + "icon": string + "width": int + "height": int +} + `, + assertions: func(t *testing.T, g *d2graph.Graph) { + assert.Equal(t, 4, len(g.Objects[0].SQLTable.Columns)) + assert.Equal(t, `"shape"`, g.Objects[0].SQLTable.Columns[0].Name.Label) + }, + }, + { + name: "reserved_quoted/3", + text: `*."shape" +x + `, + assertions: func(t *testing.T, g *d2graph.Graph) { + assert.Equal(t, 2, len(g.Objects)) + assert.Equal(t, `x.'"shape"'`, g.Objects[0].AbsID()) + }, + }, + { + name: "reserved_quoted/4", + text: `x."style"."fill"`, + assertions: func(t *testing.T, g *d2graph.Graph) { + assert.Equal(t, 3, len(g.Objects)) + }, + }, { name: "errors/reserved_icon_style", From 8802676b3c7b73ed6ca814bdf0c52e958543c4e5 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sat, 23 Nov 2024 18:40:36 -0800 Subject: [PATCH 02/17] reserved keywords must be unquoted --- d2ast/d2ast.go | 6 + d2compiler/compile.go | 91 +- d2compiler/compile_test.go | 5 +- d2graph/d2graph.go | 32 +- d2ir/compile.go | 22 +- d2ir/compile_test.go | 17 + d2ir/d2ir.go | 59 +- d2ir/d2ir_test.go | 4 +- d2ir/merge.go | 4 +- d2ir/pattern.go | 10 +- .../TestCompile/reserved_quoted/1.exp.json | 190 ++++ .../TestCompile/reserved_quoted/2.exp.json | 457 +++++++++ .../TestCompile/reserved_quoted/3.exp.json | 304 ++++++ .../TestCompile/reserved_quoted/4.exp.json | 284 ++++++ .../d2ir/TestCompile/fields/array.exp.json | 10 +- .../d2ir/TestCompile/fields/label.exp.json | 10 +- .../d2ir/TestCompile/fields/nested.exp.json | 20 +- .../fields/primary/nested.exp.json | 30 +- .../TestCompile/fields/primary/root.exp.json | 20 +- .../d2ir/TestCompile/fields/quoted.exp.json | 898 ++++++++++++++++++ .../d2ir/TestCompile/fields/root.exp.json | 10 +- .../imports/pattern-value.exp.json | 60 +- .../d2ir/TestCompile/imports/value.exp.json | 30 +- 23 files changed, 2442 insertions(+), 131 deletions(-) create mode 100644 testdata/d2compiler/TestCompile/reserved_quoted/1.exp.json create mode 100644 testdata/d2compiler/TestCompile/reserved_quoted/2.exp.json create mode 100644 testdata/d2compiler/TestCompile/reserved_quoted/3.exp.json create mode 100644 testdata/d2compiler/TestCompile/reserved_quoted/4.exp.json create mode 100644 testdata/d2ir/TestCompile/fields/quoted.exp.json diff --git a/d2ast/d2ast.go b/d2ast/d2ast.go index 24592d22e..446a8975b 100644 --- a/d2ast/d2ast.go +++ b/d2ast/d2ast.go @@ -338,6 +338,7 @@ type String interface { SetString(string) Copy() String _string() + IsUnquoted() bool } var _ String = &UnquotedString{} @@ -611,6 +612,11 @@ func (s *DoubleQuotedString) _string() {} func (s *SingleQuotedString) _string() {} func (s *BlockString) _string() {} +func (s *UnquotedString) IsUnquoted() bool { return true } +func (s *DoubleQuotedString) IsUnquoted() bool { return false } +func (s *SingleQuotedString) IsUnquoted() bool { return false } +func (s *BlockString) IsUnquoted() bool { return false } + type Comment struct { Range Range `json:"range"` Value string `json:"value"` diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 7d4eb7ba1..dca3c6039 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -119,7 +119,7 @@ func (c *compiler) compileBoardsField(g *d2graph.Graph, ir *d2ir.Map, fieldName if f.Map() == nil { m = &d2ir.Map{} } - if g.GetBoard(f.Name) != nil { + if g.GetBoard(f.Name.ScalarString()) != nil { c.errorf(f.References[0].AST(), "board name %v already used by another board", f.Name) continue } @@ -133,7 +133,7 @@ func (c *compiler) compileBoardsField(g *d2graph.Graph, ir *d2ir.Map, fieldName if f.Primary() != nil { c.compileLabel(&g2.Root.Attributes, f) } - g2.Name = f.Name + g2.Name = f.Name.ScalarString() switch fieldName { case "layers": g.Layers = append(g.Layers, g2) @@ -149,7 +149,7 @@ func findFieldAST(ast *d2ast.Map, f *d2ir.Field) *d2ast.Map { path := []string{} curr := f for { - path = append([]string{curr.Name}, path...) + path = append([]string{curr.Name.ScalarString()}, path...) boardKind := d2ir.NodeBoardKind(curr) if boardKind == "" { break @@ -274,10 +274,10 @@ func (c *compiler) compileMap(obj *d2graph.Object, m *d2ir.Map) { } } for _, f := range m.Fields { - if f.Name == "shape" { + if f.Name.ScalarString() == "shape" && f.Name.IsUnquoted() { continue } - if _, ok := d2ast.BoardKeywords[f.Name]; ok { + if _, ok := d2ast.BoardKeywords[f.Name.ScalarString()]; ok && f.Name.IsUnquoted() { continue } c.compileField(obj, f) @@ -298,14 +298,15 @@ func (c *compiler) compileMap(obj *d2graph.Object, m *d2ir.Map) { } func (c *compiler) compileField(obj *d2graph.Object, f *d2ir.Field) { - keyword := strings.ToLower(f.Name) + keyword := strings.ToLower(f.Name.ScalarString()) _, isStyleReserved := d2ast.StyleKeywords[keyword] - if isStyleReserved { + if isStyleReserved && f.Name.IsUnquoted() { c.errorf(f.LastRef().AST(), "%v must be style.%v", f.Name, f.Name) return } _, isReserved := d2ast.SimpleReservedKeywords[keyword] - if f.Name == "classes" { + isReserved = isReserved && f.Name.IsUnquoted() + if f.Name.ScalarString() == "classes" && f.Name.IsUnquoted() { if f.Map() != nil { if len(f.Map().Edges) > 0 { c.errorf(f.Map().Edges[0].LastRef().AST(), "classes cannot contain an edge") @@ -315,26 +316,26 @@ func (c *compiler) compileField(obj *d2graph.Object, f *d2ir.Field) { continue } for _, cf := range classesField.Map().Fields { - if _, ok := d2ast.ReservedKeywords[cf.Name]; !ok { + if _, ok := d2ast.ReservedKeywords[cf.Name.ScalarString()]; !(ok && f.Name.IsUnquoted()) { c.errorf(cf.LastRef().AST(), "%s is an invalid class field, must be reserved keyword", cf.Name) } - if cf.Name == "class" { + if cf.Name.ScalarString() == "class" && cf.Name.IsUnquoted() { c.errorf(cf.LastRef().AST(), `"class" cannot appear within "classes"`) } } } } return - } else if f.Name == "vars" { + } else if f.Name.ScalarString() == "vars" && f.Name.IsUnquoted() { return - } else if f.Name == "source-arrowhead" || f.Name == "target-arrowhead" { + } else if (f.Name.ScalarString() == "source-arrowhead" || f.Name.ScalarString() == "target-arrowhead") && f.Name.IsUnquoted() { c.errorf(f.LastRef().AST(), `%#v can only be used on connections`, f.Name) return } else if isReserved { c.compileReserved(&obj.Attributes, f) return - } else if f.Name == "style" { + } else if f.Name.ScalarString() == "style" && f.Name.IsUnquoted() { if f.Map() == nil || len(f.Map().Fields) == 0 { c.errorf(f.LastRef().AST(), `"style" expected to be set to a map of key-values, or contain an additional keyword like "style.opacity: 0.4"`) return @@ -358,7 +359,7 @@ func (c *compiler) compileField(obj *d2graph.Object, f *d2ir.Field) { } parent := obj - obj = obj.EnsureChild(d2graphIDA([]string{f.Name})) + obj = obj.EnsureChild(([]d2ast.String{f.Name})) if f.Primary() != nil { c.compileLabel(&obj.Attributes, f) } @@ -440,7 +441,7 @@ func (c *compiler) compilePosition(attrs *d2graph.Attributes, f *d2ir.Field) { name := f.Name if f.Map() != nil { for _, f := range f.Map().Fields { - if f.Name == "near" { + if f.Name.ScalarString() == "near" && f.Name.IsUnquoted() { if f.Primary() == nil { c.errorf(f.LastPrimaryKey(), `invalid "near" field`) } else { @@ -452,7 +453,7 @@ func (c *compiler) compilePosition(attrs *d2graph.Attributes, f *d2ir.Field) { if _, ok := d2ast.LabelPositions[scalar.ScalarString()]; !ok { c.errorf(f.LastPrimaryKey(), `invalid "near" field`) } else { - switch name { + switch name.ScalarString() { case "label": attrs.LabelPosition = &d2graph.Scalar{} attrs.LabelPosition.Value = scalar.ScalarString() @@ -480,7 +481,7 @@ func (c *compiler) compilePosition(attrs *d2graph.Attributes, f *d2ir.Field) { func (c *compiler) compileReserved(attrs *d2graph.Attributes, f *d2ir.Field) { if f.Primary() == nil { if f.Composite != nil { - switch f.Name { + switch f.Name.ScalarString() { case "class": if arr, ok := f.Composite.(*d2ir.Array); ok { for _, class := range arr.Values { @@ -511,7 +512,7 @@ func (c *compiler) compileReserved(attrs *d2graph.Attributes, f *d2ir.Field) { return } scalar := f.Primary().Value - switch f.Name { + switch f.Name.ScalarString() { case "label": c.compileLabel(attrs, f) c.compilePosition(attrs, f) @@ -695,7 +696,7 @@ func (c *compiler) compileStyle(attrs *d2graph.Attributes, m *d2ir.Map) { } func (c *compiler) compileStyleField(attrs *d2graph.Attributes, f *d2ir.Field) { - if _, ok := d2ast.StyleKeywords[strings.ToLower(f.Name)]; !ok { + if _, ok := d2ast.StyleKeywords[strings.ToLower(f.Name.ScalarString())]; !(ok && f.Name.IsUnquoted()) { c.errorf(f.LastRef().AST(), `invalid style keyword: "%s"`, f.Name) return } @@ -704,7 +705,7 @@ func (c *compiler) compileStyleField(attrs *d2graph.Attributes, f *d2ir.Field) { } compileStyleFieldInit(attrs, f) scalar := f.Primary().Value - err := attrs.Style.Apply(f.Name, scalar.ScalarString()) + err := attrs.Style.Apply(f.Name.ScalarString(), scalar.ScalarString()) if err != nil { c.errorf(scalar, err.Error()) return @@ -712,7 +713,7 @@ func (c *compiler) compileStyleField(attrs *d2graph.Attributes, f *d2ir.Field) { } func compileStyleFieldInit(attrs *d2graph.Attributes, f *d2ir.Field) { - switch f.Name { + switch f.Name.ScalarString() { case "opacity": attrs.Style.Opacity = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} case "stroke": @@ -824,8 +825,8 @@ func (c *compiler) compileEdgeMap(edge *d2graph.Edge, m *d2ir.Map) { } } for _, f := range m.Fields { - _, ok := d2ast.ReservedKeywords[f.Name] - if !ok { + _, ok := d2ast.ReservedKeywords[f.Name.ScalarString()] + if !(ok && f.Name.IsUnquoted()) { c.errorf(f.References[0].AST(), `edge map keys must be reserved keywords`) continue } @@ -834,8 +835,9 @@ func (c *compiler) compileEdgeMap(edge *d2graph.Edge, m *d2ir.Map) { } func (c *compiler) compileEdgeField(edge *d2graph.Edge, f *d2ir.Field) { - keyword := strings.ToLower(f.Name) + keyword := strings.ToLower(f.Name.ScalarString()) _, isStyleReserved := d2ast.StyleKeywords[keyword] + isStyleReserved = isStyleReserved && f.Name.IsUnquoted() if isStyleReserved { c.errorf(f.LastRef().AST(), "%v must be style.%v", f.Name, f.Name) return @@ -844,7 +846,7 @@ func (c *compiler) compileEdgeField(edge *d2graph.Edge, f *d2ir.Field) { if isReserved { c.compileReserved(&edge.Attributes, f) return - } else if f.Name == "style" { + } else if f.Name.ScalarString() == "style" { if f.Map() == nil { return } @@ -852,14 +854,14 @@ func (c *compiler) compileEdgeField(edge *d2graph.Edge, f *d2ir.Field) { return } - if f.Name == "source-arrowhead" || f.Name == "target-arrowhead" { + if (f.Name.ScalarString() == "source-arrowhead" || f.Name.ScalarString() == "target-arrowhead") && f.Name.IsUnquoted() { c.compileArrowheads(edge, f) } } func (c *compiler) compileArrowheads(edge *d2graph.Edge, f *d2ir.Field) { var attrs *d2graph.Attributes - if f.Name == "source-arrowhead" { + if f.Name.ScalarString() == "source-arrowhead" { if edge.SrcArrowhead == nil { edge.SrcArrowhead = &d2graph.Attributes{} } @@ -877,12 +879,13 @@ func (c *compiler) compileArrowheads(edge *d2graph.Edge, f *d2ir.Field) { if f.Map() != nil { for _, f2 := range f.Map().Fields { - keyword := strings.ToLower(f2.Name) + keyword := strings.ToLower(f2.Name.ScalarString()) _, isReserved := d2ast.SimpleReservedKeywords[keyword] + isReserved = isReserved && f2.Name.IsUnquoted() if isReserved { c.compileReserved(attrs, f2) continue - } else if f2.Name == "style" { + } else if f2.Name.ScalarString() == "style" && f2.Name.IsUnquoted() { if f2.Map() == nil { continue } @@ -995,7 +998,7 @@ func (c *compiler) compileSQLTable(obj *d2graph.Object) { func (c *compiler) validateKeys(obj *d2graph.Object, m *d2ir.Map) { for _, f := range m.Fields { - if _, ok := d2ast.BoardKeywords[f.Name]; ok { + if _, ok := d2ast.BoardKeywords[f.Name.ScalarString()]; ok && f.Name.IsUnquoted() { continue } c.validateKey(obj, f) @@ -1003,8 +1006,9 @@ func (c *compiler) validateKeys(obj *d2graph.Object, m *d2ir.Map) { } func (c *compiler) validateKey(obj *d2graph.Object, f *d2ir.Field) { - keyword := strings.ToLower(f.Name) + keyword := strings.ToLower(f.Name.ScalarString()) _, isReserved := d2ast.ReservedKeywords[keyword] + isReserved = isReserved && f.Name.IsUnquoted() if isReserved { switch obj.Shape.Value { case d2target.ShapeCircle, d2target.ShapeSquare: @@ -1014,7 +1018,7 @@ func (c *compiler) validateKey(obj *d2graph.Object, f *d2ir.Field) { } } - switch f.Name { + switch f.Name.ScalarString() { case "style": if obj.Style.ThreeDee != nil { if !strings.EqualFold(obj.Shape.Value, d2target.ShapeSquare) && !strings.EqualFold(obj.Shape.Value, d2target.ShapeRectangle) && !strings.EqualFold(obj.Shape.Value, d2target.ShapeHexagon) { @@ -1049,7 +1053,7 @@ func (c *compiler) validateKey(obj *d2graph.Object, f *d2ir.Field) { return } - obj, ok := obj.HasChild([]string{f.Name}) + obj, ok := obj.HasChild([]string{f.Name.ScalarString()}) if ok && f.Map() != nil { c.validateKeys(obj, f.Map()) } @@ -1284,12 +1288,9 @@ func init() { } } -func d2graphIDA(irIDA []string) (ida []string) { +func d2graphIDA(irIDA []string) (ida []d2ast.String) { for _, el := range irIDA { - n := &d2ast.KeyPath{ - Path: []*d2ast.StringBox{d2ast.MakeValueBox(d2ast.RawString(el, true)).StringBox()}, - } - ida = append(ida, d2format.Format(n)) + ida = append(ida, d2ast.RawString(el, true)) } return ida } @@ -1297,7 +1298,7 @@ func d2graphIDA(irIDA []string) (ida []string) { // Unused for now until shape: edge_group func (c *compiler) preprocessSeqDiagrams(m *d2ir.Map) { for _, f := range m.Fields { - if f.Name == "shape" && f.Primary_.Value.ScalarString() == d2target.ShapeSequenceDiagram { + if f.Name.ScalarString() == "shape" && f.Name.IsUnquoted() && f.Primary_.Value.ScalarString() == d2target.ShapeSequenceDiagram { c.preprocessEdgeGroup(m, m) return } @@ -1360,12 +1361,12 @@ func (c *compiler) preprocessEdgeGroup(seqDiagram, m *d2ir.Map) { } func hoistActor(seqDiagram *d2ir.Map, f *d2ir.Field) { - f2 := seqDiagram.GetField(f.Name) + f2 := seqDiagram.GetField(f.Name.ScalarString()) if f2 == nil { seqDiagram.Fields = append(seqDiagram.Fields, f.Copy(seqDiagram).(*d2ir.Field)) } else { d2ir.OverlayField(f2, f) - d2ir.ParentMap(f).DeleteField(f.Name) + d2ir.ParentMap(f).DeleteField(f.Name.ScalarString()) } } @@ -1410,7 +1411,7 @@ func parentSeqDiagram(n d2ir.Node) *d2ir.Map { return nil } for _, f := range m.Fields { - if f.Name == "shape" && f.Primary_.Value.ScalarString() == d2target.ShapeSequenceDiagram { + if f.Name.ScalarString() == "shape" && f.Name.IsUnquoted() && f.Primary_.Value.ScalarString() == d2target.ShapeSequenceDiagram { return m } } @@ -1478,7 +1479,7 @@ func compileConfig(ir *d2ir.Map) (*d2target.Config, error) { config.Data = make(map[string]interface{}) for _, f := range f.Map().Fields { if f.Primary() != nil { - config.Data[f.Name] = f.Primary().Value.ScalarString() + config.Data[f.Name.ScalarString()] = f.Primary().Value.ScalarString() } else if f.Composite != nil { var arr []interface{} switch c := f.Composite.(type) { @@ -1490,7 +1491,7 @@ func compileConfig(ir *d2ir.Map) (*d2target.Config, error) { } } } - config.Data[f.Name] = arr + config.Data[f.Name.ScalarString()] = arr } } } @@ -1507,7 +1508,7 @@ func compileThemeOverrides(m *d2ir.Map) (*d2target.ThemeOverrides, error) { err := &d2parser.ParseError{} FOR: for _, f := range m.Fields { - switch strings.ToUpper(f.Name) { + switch strings.ToUpper(f.Name.ScalarString()) { case "N1": themeOverrides.N1 = go2.Pointer(f.Primary().Value.ScalarString()) case "N2": diff --git a/d2compiler/compile_test.go b/d2compiler/compile_test.go index 701dad396..d644b7fa9 100644 --- a/d2compiler/compile_test.go +++ b/d2compiler/compile_test.go @@ -1731,6 +1731,7 @@ y `, assertions: func(t *testing.T, g *d2graph.Graph) { assert.Equal(t, 2, len(g.Objects)) + assert.Equal(t, "x", g.Objects[0].Label.Value) }, }, { @@ -1747,7 +1748,7 @@ y `, assertions: func(t *testing.T, g *d2graph.Graph) { assert.Equal(t, 4, len(g.Objects[0].SQLTable.Columns)) - assert.Equal(t, `"shape"`, g.Objects[0].SQLTable.Columns[0].Name.Label) + assert.Equal(t, `shape`, g.Objects[0].SQLTable.Columns[0].Name.Label) }, }, { @@ -1757,7 +1758,7 @@ x `, assertions: func(t *testing.T, g *d2graph.Graph) { assert.Equal(t, 2, len(g.Objects)) - assert.Equal(t, `x.'"shape"'`, g.Objects[0].AbsID()) + assert.Equal(t, `x.shape`, g.Objects[0].AbsID()) }, }, { diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index 40c37e55e..30d9123c5 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -847,7 +847,7 @@ func (obj *Object) FindEdges(mk *d2ast.Key) ([]*Edge, bool) { return ea, true } -func (obj *Object) ensureChildEdge(ida []string) *Object { +func (obj *Object) ensureChildEdge(ida []d2ast.String) *Object { for i := range ida { switch obj.Shape.Value { case d2target.ShapeClass, d2target.ShapeSQLTable: @@ -863,12 +863,12 @@ func (obj *Object) ensureChildEdge(ida []string) *Object { // EnsureChild grabs the child by ids or creates it if it does not exist including all // intermediate nodes. -func (obj *Object) EnsureChild(ida []string) *Object { +func (obj *Object) EnsureChild(ida []d2ast.String) *Object { seq := obj.OuterSequenceDiagram() if seq != nil { for _, c := range seq.ChildrenArray { - if c.ID == ida[0] { - if obj.ID == ida[0] { + if c.ID == ida[0].ScalarString() { + if obj.ID == ida[0].ScalarString() { // In cases of a.a where EnsureChild is called on the parent a, the second a should // be created as a child of a and not as a child of the diagram. This is super // unfortunate code but alas. @@ -884,9 +884,11 @@ func (obj *Object) EnsureChild(ida []string) *Object { return obj } - _, is := d2ast.ReservedKeywordHolders[ida[0]] + _, is := d2ast.ReservedKeywordHolders[ida[0].ScalarString()] + is = is && ida[0].IsUnquoted() if len(ida) == 1 && !is { - _, ok := d2ast.ReservedKeywords[ida[0]] + _, ok := d2ast.ReservedKeywords[ida[0].ScalarString()] + ok = ok && ida[0].IsUnquoted() if ok { return obj } @@ -895,13 +897,13 @@ func (obj *Object) EnsureChild(ida []string) *Object { id := ida[0] ida = ida[1:] - if id == "_" { + if id.ScalarString() == "_" && id.IsUnquoted() { return obj.Parent.EnsureChild(ida) } - child, ok := obj.Children[strings.ToLower(id)] + child, ok := obj.Children[strings.ToLower(id.ScalarString())] if !ok { - child = obj.newObject(id) + child = obj.newObject(id.ScalarString()) } if len(ida) >= 1 { @@ -1298,10 +1300,10 @@ func (e *Edge) AbsID() string { return fmt.Sprintf("%s(%s %s %s)[%d]", commonKey, strings.Join(srcIDA, "."), e.ArrowString(), strings.Join(dstIDA, "."), e.Index) } -func (obj *Object) Connect(srcID, dstID []string, srcArrow, dstArrow bool, label string) (*Edge, error) { - for _, id := range [][]string{srcID, dstID} { +func (obj *Object) Connect(srcID, dstID []d2ast.String, srcArrow, dstArrow bool, label string) (*Edge, error) { + for _, id := range [][]d2ast.String{srcID, dstID} { for _, p := range id { - if _, ok := d2ast.ReservedKeywords[p]; ok { + if _, ok := d2ast.ReservedKeywords[p.ScalarString()]; ok && p.IsUnquoted() { return nil, errors.New("cannot connect to reserved keyword") } } @@ -1329,7 +1331,7 @@ func (obj *Object) Connect(srcID, dstID []string, srcArrow, dstArrow bool, label return e, nil } -func addSQLTableColumnIndices(e *Edge, srcID, dstID []string, obj, src, dst *Object) { +func addSQLTableColumnIndices(e *Edge, srcID, dstID []d2ast.String, obj, src, dst *Object) { if src.Shape.Value == d2target.ShapeSQLTable { if src == dst { // Ignore edge to column inside table. @@ -1339,7 +1341,7 @@ func addSQLTableColumnIndices(e *Edge, srcID, dstID []string, obj, src, dst *Obj srcAbsID := src.AbsIDArray() if len(objAbsID)+len(srcID) > len(srcAbsID) { for i, d2col := range src.SQLTable.Columns { - if d2col.Name.Label == srcID[len(srcID)-1] { + if d2col.Name.Label == srcID[len(srcID)-1].ScalarString() { d2col.Reference = dst.AbsID() e.SrcTableColumnIndex = new(int) *e.SrcTableColumnIndex = i @@ -1353,7 +1355,7 @@ func addSQLTableColumnIndices(e *Edge, srcID, dstID []string, obj, src, dst *Obj dstAbsID := dst.AbsIDArray() if len(objAbsID)+len(dstID) > len(dstAbsID) { for i, d2col := range dst.SQLTable.Columns { - if d2col.Name.Label == dstID[len(dstID)-1] { + if d2col.Name.Label == dstID[len(dstID)-1].ScalarString() { d2col.Reference = dst.AbsID() e.DstTableColumnIndex = new(int) *e.DstTableColumnIndex = i diff --git a/d2ir/compile.go b/d2ir/compile.go index ecc13a32b..41b1bce99 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -126,7 +126,7 @@ func (c *compiler) overlayClasses(m *Map) { func (c *compiler) compileSubstitutions(m *Map, varsStack []*Map) { for _, f := range m.Fields { - if f.Name == "vars" && f.Map() != nil { + if f.Name.ScalarString() == "vars" && f.Name.IsUnquoted() && f.Map() != nil { varsStack = append([]*Map{f.Map()}, varsStack...) } } @@ -148,7 +148,7 @@ func (c *compiler) compileSubstitutions(m *Map, varsStack []*Map) { } } } else if f.Map() != nil { - if f.Name == "vars" { + if f.Name.ScalarString() == "vars" && f.Name.IsUnquoted() { c.compileSubstitutions(f.Map(), varsStack) c.validateConfigs(f.Map().GetField("d2-config")) } else { @@ -179,7 +179,7 @@ func (c *compiler) validateConfigs(configs *Field) { for _, f := range configs.Map().Fields { var val string if f.Primary() == nil { - if f.Name != "theme-overrides" && f.Name != "dark-theme-overrides" && f.Name != "data" { + if f.Name.ScalarString() != "theme-overrides" && f.Name.ScalarString() != "dark-theme-overrides" && f.Name.ScalarString() != "data" { c.errorf(f.LastRef().AST(), `"%s" needs a value`, f.Name) continue } @@ -187,7 +187,7 @@ func (c *compiler) validateConfigs(configs *Field) { val = f.Primary().Value.ScalarString() } - switch f.Name { + switch f.Name.ScalarString() { case "sketch", "center": _, err := strconv.ParseBool(val) if err != nil { @@ -362,7 +362,7 @@ func (c *compiler) collectVariables(vars *Map, variables map[string]string) { } for _, f := range vars.Fields { if f.Primary() != nil { - variables[f.Name] = f.Primary().Value.ScalarString() + variables[f.Name.ScalarString()] = f.Primary().Value.ScalarString() } else if f.Map() != nil { c.collectVariables(f.Map(), variables) } @@ -398,7 +398,7 @@ func (c *compiler) resolveSubstitution(vars *Map, node Node, substitution *d2ast // // When resolving hi.vars.x, the vars stack includes itself. // So this next if clause says, "ignore if we're using the current scope's vars to try to resolve a substitution that requires a var from further in the stack" - if fok && fieldNode.Name == p.Unbox().ScalarString() && isCurrentScopeVars && parent.Name == "vars" { + if fok && fieldNode.Name.ScalarString() == p.Unbox().ScalarString() && isCurrentScopeVars && parent.Name.ScalarString() == "vars" && parent.Name.IsUnquoted() { return nil } @@ -758,7 +758,7 @@ func (c *compiler) ampersandFilter(refctx *RefContext) bool { case *Field: // The label value for fields is their key value f.Primary_ = &Scalar{ - Value: d2ast.FlatUnquotedString(n.Name), + Value: n.Name, } case *Edge: // But for edges, it's nothing @@ -834,7 +834,7 @@ func (c *compiler) _compileField(f *Field, refctx *RefContext) { // For vars, if we delete the field, it may just resolve to an outer scope var of the same name // Instead we keep it around, so that resolveSubstitutions can find it if !IsVar(ParentMap(f)) { - ParentMap(f).DeleteField(f.Name) + ParentMap(f).DeleteField(f.Name.ScalarString()) return } } @@ -943,7 +943,7 @@ func (c *compiler) _compileField(f *Field, refctx *RefContext) { Value: refctx.Key.Value.ScalarBox().Unbox(), } // If the link is a board, we need to transform it into an absolute path. - if f.Name == "link" { + if f.Name.ScalarString() == "link" && f.Name.IsUnquoted() { c.compileLink(f, refctx) } } @@ -966,7 +966,7 @@ func (c *compiler) extendLinks(m *Map, importF *Field, importDir string) { nodeBoardKind := NodeBoardKind(m) importIDA := IDA(importF) for _, f := range m.Fields { - if f.Name == "link" { + if f.Name.ScalarString() == "link" && f.Name.IsUnquoted() { if nodeBoardKind != "" { c.errorf(f.LastRef().AST(), "a board itself cannot be linked; only objects within a board can be linked") continue @@ -1005,7 +1005,7 @@ func (c *compiler) extendLinks(m *Map, importF *Field, importDir string) { s := d2format.Format(kp) f.Primary_.Value = d2ast.MakeValueBox(d2ast.FlatUnquotedString(s)).ScalarBox().Unbox() } - if f.Name == "icon" && f.Primary() != nil { + if f.Name.ScalarString() == "icon" && f.Name.IsUnquoted() && f.Primary() != nil { val := f.Primary().Value.ScalarString() // It's likely a substitution if val == "" { diff --git a/d2ir/compile_test.go b/d2ir/compile_test.go index e65a03ae2..c514df86e 100644 --- a/d2ir/compile_test.go +++ b/d2ir/compile_test.go @@ -195,6 +195,23 @@ func testCompileFields(t *testing.T) { assert.String(t, `[1; 2; 3; 4]`, f.Composite.String()) }, }, + { + name: "quoted", + run: func(t testing.TB) { + m, err := compile(t, `my_table: { + shape: sql_table + width: 200 + height: 200 + "shape": string + "icon": string + "width": int + "height": int +}`) + assert.Success(t, err) + assertQuery(t, m, 0, 0, "sql_table", "my_table.shape") + assertQuery(t, m, 0, 0, "string", `my_table."shape"`) + }, + }, { name: "null", run: func(t testing.TB) { diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index ae7d35147..1a86e7271 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -176,7 +176,7 @@ type Map struct { func (m *Map) initRoot() { m.parent = &Field{ - Name: "root", + Name: d2ast.FlatUnquotedString("root"), References: []*FieldReference{{ Context_: &RefContext{ ScopeMap: m, @@ -293,7 +293,7 @@ func NodeBoardKind(n Node) BoardKind { if f == nil { return "" } - switch f.Name { + switch f.Name.ScalarString() { case "layers": return BoardLayer case "scenarios": @@ -319,7 +319,7 @@ type Field struct { parent Node importAST d2ast.Node - Name string `json:"name"` + Name d2ast.String `json:"name"` // Primary_ to avoid clashing with Primary(). We need to keep it exported for // encoding/json to marshal it so cannot prefix _ instead. @@ -458,13 +458,13 @@ func (eid *EdgeID) resolve(m *Map) (_ *EdgeID, _ *Map, common []string, _ error) eid.SrcPath = eid.SrcPath[1:] } else { mf := ParentField(m) - eid.SrcPath = append([]string{mf.Name}, eid.SrcPath...) + eid.SrcPath = append([]string{mf.Name.ScalarString()}, eid.SrcPath...) } if eid.DstPath[0] == "_" { eid.DstPath = eid.DstPath[1:] } else { mf := ParentField(m) - eid.DstPath = append([]string{mf.Name}, eid.DstPath...) + eid.DstPath = append([]string{mf.Name.ScalarString()}, eid.DstPath...) } m = ParentMap(m) if m == nil { @@ -674,8 +674,8 @@ func (m *Map) IsContainer() bool { return false } for _, f := range m.Fields { - _, isReserved := d2ast.ReservedKeywords[f.Name] - if !isReserved { + _, isReserved := d2ast.ReservedKeywords[f.Name.ScalarString()] + if !(isReserved && f.Name.IsUnquoted()) { return true } } @@ -735,7 +735,7 @@ func (m *Map) getField(ida []string) *Field { } for _, f := range m.Fields { - if !strings.EqualFold(f.Name, s) { + if !strings.EqualFold(f.Name.ScalarString(), s) { continue } if len(rest) == 0 { @@ -841,7 +841,7 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b return nil } for _, f := range m.Fields { - if matchPattern(f.Name, us.Pattern) { + if matchPattern(f.Name.ScalarString(), us.Pattern) { if i == len(kp.Path)-1 { faAppend(f) } else { @@ -863,29 +863,28 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b return nil } - head := kp.Path[i].Unbox().ScalarString() + head := kp.Path[i].Unbox() - if _, ok := d2ast.ReservedKeywords[strings.ToLower(head)]; ok { - head = strings.ToLower(head) - if _, ok := d2ast.CompositeReservedKeywords[head]; !ok && i < len(kp.Path)-1 { + if _, ok := d2ast.ReservedKeywords[strings.ToLower(head.ScalarString())]; ok && head.IsUnquoted() { + if _, ok := d2ast.CompositeReservedKeywords[strings.ToLower(head.ScalarString())]; !ok && i < len(kp.Path)-1 { return d2parser.Errorf(kp.Path[i].Unbox(), fmt.Sprintf(`"%s" must be the last part of the key`, head)) } } - if head == "_" { + if head.ScalarString() == "_" && head.IsUnquoted() { return d2parser.Errorf(kp.Path[i].Unbox(), `parent "_" can only be used in the beginning of paths, e.g. "_.x"`) } - if head == "classes" && NodeBoardKind(m) == "" { + if head.ScalarString() == "classes" && head.IsUnquoted() && NodeBoardKind(m) == "" { return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head) } - if findBoardKeyword(head) != -1 && NodeBoardKind(m) == "" { + if findBoardKeyword(head.ScalarString()) != -1 && head.IsUnquoted() && NodeBoardKind(m) == "" { return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head) } for _, f := range m.Fields { - if !strings.EqualFold(f.Name, head) { + if !(strings.EqualFold(f.Name.ScalarString(), head.ScalarString()) && f.Name.IsUnquoted() == head.IsUnquoted()) { continue } @@ -922,14 +921,14 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b return nil } shape := ParentShape(m) - if _, ok := d2ast.ReservedKeywords[strings.ToLower(head)]; !ok && len(c.globRefContextStack) > 0 { + if _, ok := d2ast.ReservedKeywords[strings.ToLower(head.ScalarString())]; !(ok && head.IsUnquoted()) && len(c.globRefContextStack) > 0 { if shape == d2target.ShapeClass || shape == d2target.ShapeSQLTable { return nil } } f := &Field{ parent: m, - Name: head, + Name: kp.Path[i].Unbox(), } defer func() { if i < kp.FirstGlob() { @@ -995,7 +994,7 @@ func (m *Map) DeleteField(ida ...string) *Field { rest := ida[1:] for i, f := range m.Fields { - if !strings.EqualFold(f.Name, s) { + if !strings.EqualFold(f.Name.ScalarString(), s) { continue } if len(rest) == 0 { @@ -1022,10 +1021,10 @@ func (m *Map) DeleteField(ida ...string) *Field { // then that holder becomes meaningless and should be deleted too parent := ParentField(f) for keywordHolder := range d2ast.ReservedKeywordHolders { - if parent != nil && parent.Name == keywordHolder && len(parent.Map().Fields) == 0 { + if parent != nil && parent.Name.ScalarString() == keywordHolder && parent.Name.IsUnquoted() && len(parent.Map().Fields) == 0 { keywordHolderParentMap := ParentMap(parent) for i, f := range keywordHolderParentMap.Fields { - if f.Name == keywordHolder { + if f.Name.ScalarString() == keywordHolder && f.Name.IsUnquoted() { keywordHolderParentMap.Fields = append(keywordHolderParentMap.Fields[:i], keywordHolderParentMap.Fields[i+1:]...) break } @@ -1376,7 +1375,7 @@ func (f *Field) AST() d2ast.Node { k := &d2ast.Key{ Key: &d2ast.KeyPath{ Path: []*d2ast.StringBox{ - d2ast.MakeValueBox(d2ast.RawString(f.Name, true)).StringBox(), + d2ast.MakeValueBox(f.Name).StringBox(), }, }, } @@ -1517,7 +1516,7 @@ func IsVar(n Node) bool { if NodeBoardKind(n) != "" { return false } - if f, ok := n.(*Field); ok && f.Name == "vars" { + if f, ok := n.(*Field); ok && f.Name.ScalarString() == "vars" && f.Name.IsUnquoted() { return true } if n == (*Map)(nil) { @@ -1644,7 +1643,7 @@ func BoardIDA(n Node) (ida []string) { reverseIDA(ida) return ida } - ida = append(ida, n.Name) + ida = append(ida, n.Name.ScalarString()) case *Edge: ida = append(ida, n.IDString()) } @@ -1661,7 +1660,7 @@ func IDA(n Node) (ida []string) { for { switch n := n.(type) { case *Field: - ida = append(ida, n.Name) + ida = append(ida, n.Name.ScalarString()) if n.Root() { reverseIDA(ida) return ida @@ -1682,7 +1681,7 @@ func RelIDA(p, n Node) (ida []string) { for { switch n := n.(type) { case *Field: - ida = append(ida, n.Name) + ida = append(ida, n.Name.ScalarString()) if n.Root() { reverseIDA(ida) return ida @@ -1834,7 +1833,7 @@ func (m *Map) FindBoardRoot(path []string) *Map { if layersf != nil && layersf.Map() != nil { for _, f := range layersf.Map().Fields { - if f.Name == path[0] { + if f.Name.ScalarString() == path[0] { if len(path) == 1 { return f.Map() } @@ -1845,7 +1844,7 @@ func (m *Map) FindBoardRoot(path []string) *Map { if scenariosf != nil && scenariosf.Map() != nil { for _, f := range scenariosf.Map().Fields { - if f.Name == path[0] { + if f.Name.ScalarString() == path[0] { if len(path) == 1 { return f.Map() } @@ -1856,7 +1855,7 @@ func (m *Map) FindBoardRoot(path []string) *Map { if stepsf != nil && stepsf.Map() != nil { for _, f := range stepsf.Map().Fields { - if f.Name == path[0] { + if f.Name.ScalarString() == path[0] { if len(path) == 1 { return f.Map() } diff --git a/d2ir/d2ir_test.go b/d2ir/d2ir_test.go index c8b34dbc0..45ae84254 100644 --- a/d2ir/d2ir_test.go +++ b/d2ir/d2ir_test.go @@ -33,7 +33,7 @@ func TestCopy(t *testing.T) { const keyStr = `Absence makes the heart grow frantic.` f := &d2ir.Field{ - Name: keyStr, + Name: d2ast.FlatUnquotedString(keyStr), Primary_: s, Composite: a, @@ -48,7 +48,7 @@ func TestCopy(t *testing.T) { } m = m.Copy(nil).(*d2ir.Map) - f.Name = `Many a wife thinks her husband is the world's greatest lover.` + f.Name = d2ast.FlatUnquotedString(`Many a wife thinks her husband is the world's greatest lover.`) assert.Equal(t, m, m.Fields[0].Parent()) assert.Equal(t, keyStr, m.Fields[0].Name) diff --git a/d2ir/merge.go b/d2ir/merge.go index 3b22b27df..dd2e77be0 100644 --- a/d2ir/merge.go +++ b/d2ir/merge.go @@ -2,7 +2,7 @@ package d2ir func OverlayMap(base, overlay *Map) { for _, of := range overlay.Fields { - bf := base.GetField(of.Name) + bf := base.GetField(of.Name.ScalarString()) if bf == nil { base.Fields = append(base.Fields, of.Copy(base).(*Field)) continue @@ -31,7 +31,7 @@ func ExpandSubstitution(m, resolved *Map, placeholder *Field) { } for _, of := range resolved.Fields { - bf := m.GetField(of.Name) + bf := m.GetField(of.Name.ScalarString()) if bf == nil { m.Fields = append(m.Fields[:fi], append([]*Field{of.Copy(m).(*Field)}, m.Fields[fi:]...)...) fi++ diff --git a/d2ir/pattern.go b/d2ir/pattern.go index 474c99d38..35722e241 100644 --- a/d2ir/pattern.go +++ b/d2ir/pattern.go @@ -21,11 +21,11 @@ func (m *Map) multiGlob(pattern []string) ([]*Field, bool) { func (m *Map) _doubleGlob(fa *[]*Field) { for _, f := range m.Fields { - if _, ok := d2ast.ReservedKeywords[f.Name]; ok { - if f.Name == "layers" { + if _, ok := d2ast.ReservedKeywords[f.Name.ScalarString()]; ok && f.Name.IsUnquoted() { + if f.Name.ScalarString() == "layers" { continue } - if _, ok := d2ast.BoardKeywords[f.Name]; !ok { + if _, ok := d2ast.BoardKeywords[f.Name.ScalarString()]; !ok { continue } // We don't ever want to append layers, scenarios or steps directly. @@ -45,8 +45,8 @@ func (m *Map) _doubleGlob(fa *[]*Field) { func (m *Map) _tripleGlob(fa *[]*Field) { for _, f := range m.Fields { - if _, ok := d2ast.ReservedKeywords[f.Name]; ok { - if _, ok := d2ast.BoardKeywords[f.Name]; !ok { + if _, ok := d2ast.ReservedKeywords[f.Name.ScalarString()]; ok && f.Name.IsUnquoted() { + if _, ok := d2ast.BoardKeywords[f.Name.ScalarString()]; !ok { continue } // We don't ever want to append layers, scenarios or steps directly. diff --git a/testdata/d2compiler/TestCompile/reserved_quoted/1.exp.json b/testdata/d2compiler/TestCompile/reserved_quoted/1.exp.json new file mode 100644 index 000000000..2d3cfd527 --- /dev/null +++ b/testdata/d2compiler/TestCompile/reserved_quoted/1.exp.json @@ -0,0 +1,190 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,0:0:0-3:0:24", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,0:0:0-2:1:23", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,0:3:3-2:1:23", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,1:2:7-1:16:21", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,1:2:7-1:9:14", + "path": [ + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,1:2:7-1:9:14", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,1:11:16-1:16:21", + "value": [ + { + "string": "hello", + "raw_string": "hello" + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "x", + "id_val": "x", + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "x" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "label", + "id_val": "label", + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,1:2:7-1:9:14", + "path": [ + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/1.d2,1:2:7-1:9:14", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "hello" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + }, + "err": null +} diff --git a/testdata/d2compiler/TestCompile/reserved_quoted/2.exp.json b/testdata/d2compiler/TestCompile/reserved_quoted/2.exp.json new file mode 100644 index 000000000..003929f4e --- /dev/null +++ b/testdata/d2compiler/TestCompile/reserved_quoted/2.exp.json @@ -0,0 +1,457 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,0:0:0-9:2:128", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,0:0:0-8:1:125", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,0:0:0-0:8:8", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,0:0:0-0:8:8", + "value": [ + { + "string": "my_table", + "raw_string": "my_table" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,0:10:10-8:1:125", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,1:2:14-1:18:30", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,1:2:14-1:7:19", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,1:2:14-1:7:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,1:9:21-1:18:30", + "value": [ + { + "string": "sql_table", + "raw_string": "sql_table" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,2:2:33-2:12:43", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,2:2:33-2:7:38", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,2:2:33-2:7:38", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,2:9:40-2:12:43", + "raw": "200", + "value": "200" + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,3:2:46-3:13:57", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,3:2:46-3:8:52", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,3:2:46-3:8:52", + "value": [ + { + "string": "height", + "raw_string": "height" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,3:10:54-3:13:57", + "raw": "200", + "value": "200" + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,4:2:60-4:17:75", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,4:2:60-4:9:67", + "path": [ + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,4:2:60-4:9:67", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,4:11:69-4:17:75", + "value": [ + { + "string": "string", + "raw_string": "string" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,5:2:78-5:16:92", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,5:2:78-5:8:84", + "path": [ + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,5:2:78-5:8:84", + "value": [ + { + "string": "icon", + "raw_string": "icon" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,5:10:86-5:16:92", + "value": [ + { + "string": "string", + "raw_string": "string" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,6:2:95-6:14:107", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,6:2:95-6:9:102", + "path": [ + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,6:2:95-6:9:102", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,6:11:104-6:14:107", + "value": [ + { + "string": "int", + "raw_string": "int" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,7:2:110-7:15:123", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,7:2:110-7:10:118", + "path": [ + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,7:2:110-7:10:118", + "value": [ + { + "string": "height", + "raw_string": "height" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,7:12:120-7:15:123", + "value": [ + { + "string": "int", + "raw_string": "int" + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "my_table", + "id_val": "my_table", + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,0:0:0-0:8:8", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/2.d2,0:0:0-0:8:8", + "value": [ + { + "string": "my_table", + "raw_string": "my_table" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "sql_table": { + "columns": [ + { + "name": { + "label": "shape", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0 + }, + "type": { + "label": "string", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0 + }, + "constraint": null, + "reference": "" + }, + { + "name": { + "label": "icon", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0 + }, + "type": { + "label": "string", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0 + }, + "constraint": null, + "reference": "" + }, + { + "name": { + "label": "width", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0 + }, + "type": { + "label": "int", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0 + }, + "constraint": null, + "reference": "" + }, + { + "name": { + "label": "height", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0 + }, + "type": { + "label": "int", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0 + }, + "constraint": null, + "reference": "" + } + ] + }, + "attributes": { + "label": { + "value": "my_table" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "width": { + "value": "200" + }, + "height": { + "value": "200" + }, + "near_key": null, + "shape": { + "value": "sql_table" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + }, + "err": null +} diff --git a/testdata/d2compiler/TestCompile/reserved_quoted/3.exp.json b/testdata/d2compiler/TestCompile/reserved_quoted/3.exp.json new file mode 100644 index 000000000..ee0fc6d36 --- /dev/null +++ b/testdata/d2compiler/TestCompile/reserved_quoted/3.exp.json @@ -0,0 +1,304 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-2:2:14", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:9:9", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:9:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:2:2-0:9:9", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,1:0:10-1:1:11", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,1:0:10-1:1:11", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,1:0:10-1:1:11", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "shape", + "id_val": "shape", + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:9:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:2:2-0:9:9", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "key_path_index": 1, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:9:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:2:2-0:9:9", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "key_path_index": 1, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:9:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:2:2-0:9:9", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "key_path_index": 1, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:9:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:2:2-0:9:9", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "key_path_index": 1, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "shape" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "x", + "id_val": "x", + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,1:0:10-1:1:11", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,1:0:10-1:1:11", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "x" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + }, + "err": null +} diff --git a/testdata/d2compiler/TestCompile/reserved_quoted/4.exp.json b/testdata/d2compiler/TestCompile/reserved_quoted/4.exp.json new file mode 100644 index 000000000..05f1d439a --- /dev/null +++ b/testdata/d2compiler/TestCompile/reserved_quoted/4.exp.json @@ -0,0 +1,284 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:0:0-0:16:16", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:0:0-0:16:16", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:0:0-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:2:2-0:9:9", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:10:10-0:16:16", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "x", + "id_val": "x", + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:0:0-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:2:2-0:9:9", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:10:10-0:16:16", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "x" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "style", + "id_val": "style", + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:0:0-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:2:2-0:9:9", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:10:10-0:16:16", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "key_path_index": 1, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "style" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "fill", + "id_val": "fill", + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:0:0-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:2:2-0:9:9", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/4.d2,0:10:10-0:16:16", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "key_path_index": 2, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "fill" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + }, + "err": null +} diff --git a/testdata/d2ir/TestCompile/fields/array.exp.json b/testdata/d2ir/TestCompile/fields/array.exp.json index d648144d6..78aa29981 100644 --- a/testdata/d2ir/TestCompile/fields/array.exp.json +++ b/testdata/d2ir/TestCompile/fields/array.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/fields/array.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "values": [ { diff --git a/testdata/d2ir/TestCompile/fields/label.exp.json b/testdata/d2ir/TestCompile/fields/label.exp.json index 5c7aa801d..35311dec1 100644 --- a/testdata/d2ir/TestCompile/fields/label.exp.json +++ b/testdata/d2ir/TestCompile/fields/label.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/fields/label.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "primary": { "value": { "range": "TestCompile/fields/label.d2,0:3:3-0:6:6", diff --git a/testdata/d2ir/TestCompile/fields/nested.exp.json b/testdata/d2ir/TestCompile/fields/nested.exp.json index 3dfc1f981..f24741927 100644 --- a/testdata/d2ir/TestCompile/fields/nested.exp.json +++ b/testdata/d2ir/TestCompile/fields/nested.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/fields/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "y", + "name": { + "range": "TestCompile/fields/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "primary": { "value": { "range": "TestCompile/fields/nested.d2,0:5:5-0:8:8", diff --git a/testdata/d2ir/TestCompile/fields/primary/nested.exp.json b/testdata/d2ir/TestCompile/fields/primary/nested.exp.json index 9388dc418..d2220242c 100644 --- a/testdata/d2ir/TestCompile/fields/primary/nested.exp.json +++ b/testdata/d2ir/TestCompile/fields/primary/nested.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/fields/primary/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "y", + "name": { + "range": "TestCompile/fields/primary/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "primary": { "value": { "range": "TestCompile/fields/primary/nested.d2,0:5:5-0:8:8", @@ -20,7 +36,15 @@ "composite": { "fields": [ { - "name": "pqrs", + "name": { + "range": "TestCompile/fields/primary/nested.d2,0:11:11-0:15:15", + "value": [ + { + "string": "pqrs", + "raw_string": "pqrs" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/fields/primary/root.exp.json b/testdata/d2ir/TestCompile/fields/primary/root.exp.json index 13a6aa1ab..920ed0a58 100644 --- a/testdata/d2ir/TestCompile/fields/primary/root.exp.json +++ b/testdata/d2ir/TestCompile/fields/primary/root.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/fields/primary/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "primary": { "value": { "range": "TestCompile/fields/primary/root.d2,0:3:3-0:6:6", @@ -16,7 +24,15 @@ "composite": { "fields": [ { - "name": "pqrs", + "name": { + "range": "TestCompile/fields/primary/root.d2,0:9:9-0:13:13", + "value": [ + { + "string": "pqrs", + "raw_string": "pqrs" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/fields/quoted.exp.json b/testdata/d2ir/TestCompile/fields/quoted.exp.json new file mode 100644 index 000000000..14e00f923 --- /dev/null +++ b/testdata/d2ir/TestCompile/fields/quoted.exp.json @@ -0,0 +1,898 @@ +{ + "fields": [ + { + "name": { + "range": "TestCompile/fields/quoted.d2,0:0:0-0:8:8", + "value": [ + { + "string": "my_table", + "raw_string": "my_table" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/fields/quoted.d2,1:2:14-1:7:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/fields/quoted.d2,1:9:21-1:18:30", + "value": [ + { + "string": "sql_table", + "raw_string": "sql_table" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/fields/quoted.d2,1:2:14-1:7:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "key_path": { + "range": "TestCompile/fields/quoted.d2,1:2:14-1:7:19", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,1:2:14-1:7:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/fields/quoted.d2,1:2:14-1:18:30", + "key": { + "range": "TestCompile/fields/quoted.d2,1:2:14-1:7:19", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,1:2:14-1:7:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,1:9:21-1:18:30", + "value": [ + { + "string": "sql_table", + "raw_string": "sql_table" + } + ] + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/fields/quoted.d2,2:2:33-2:7:38", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/fields/quoted.d2,2:9:40-2:12:43", + "raw": "200", + "value": "200" + } + }, + "references": [ + { + "string": { + "range": "TestCompile/fields/quoted.d2,2:2:33-2:7:38", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + }, + "key_path": { + "range": "TestCompile/fields/quoted.d2,2:2:33-2:7:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,2:2:33-2:7:38", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/fields/quoted.d2,2:2:33-2:12:43", + "key": { + "range": "TestCompile/fields/quoted.d2,2:2:33-2:7:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,2:2:33-2:7:38", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/fields/quoted.d2,2:9:40-2:12:43", + "raw": "200", + "value": "200" + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/fields/quoted.d2,3:2:46-3:8:52", + "value": [ + { + "string": "height", + "raw_string": "height" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/fields/quoted.d2,3:10:54-3:13:57", + "raw": "200", + "value": "200" + } + }, + "references": [ + { + "string": { + "range": "TestCompile/fields/quoted.d2,3:2:46-3:8:52", + "value": [ + { + "string": "height", + "raw_string": "height" + } + ] + }, + "key_path": { + "range": "TestCompile/fields/quoted.d2,3:2:46-3:8:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,3:2:46-3:8:52", + "value": [ + { + "string": "height", + "raw_string": "height" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/fields/quoted.d2,3:2:46-3:13:57", + "key": { + "range": "TestCompile/fields/quoted.d2,3:2:46-3:8:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,3:2:46-3:8:52", + "value": [ + { + "string": "height", + "raw_string": "height" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/fields/quoted.d2,3:10:54-3:13:57", + "raw": "200", + "value": "200" + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/fields/quoted.d2,4:2:60-4:9:67", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/fields/quoted.d2,4:11:69-4:17:75", + "value": [ + { + "string": "string", + "raw_string": "string" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/fields/quoted.d2,4:2:60-4:9:67", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "key_path": { + "range": "TestCompile/fields/quoted.d2,4:2:60-4:9:67", + "path": [ + { + "double_quoted_string": { + "range": "TestCompile/fields/quoted.d2,4:2:60-4:9:67", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/fields/quoted.d2,4:2:60-4:17:75", + "key": { + "range": "TestCompile/fields/quoted.d2,4:2:60-4:9:67", + "path": [ + { + "double_quoted_string": { + "range": "TestCompile/fields/quoted.d2,4:2:60-4:9:67", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,4:11:69-4:17:75", + "value": [ + { + "string": "string", + "raw_string": "string" + } + ] + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/fields/quoted.d2,5:2:78-5:8:84", + "value": [ + { + "string": "icon", + "raw_string": "icon" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/fields/quoted.d2,5:10:86-5:16:92", + "value": [ + { + "string": "string", + "raw_string": "string" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/fields/quoted.d2,5:2:78-5:8:84", + "value": [ + { + "string": "icon", + "raw_string": "icon" + } + ] + }, + "key_path": { + "range": "TestCompile/fields/quoted.d2,5:2:78-5:8:84", + "path": [ + { + "double_quoted_string": { + "range": "TestCompile/fields/quoted.d2,5:2:78-5:8:84", + "value": [ + { + "string": "icon", + "raw_string": "icon" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/fields/quoted.d2,5:2:78-5:16:92", + "key": { + "range": "TestCompile/fields/quoted.d2,5:2:78-5:8:84", + "path": [ + { + "double_quoted_string": { + "range": "TestCompile/fields/quoted.d2,5:2:78-5:8:84", + "value": [ + { + "string": "icon", + "raw_string": "icon" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,5:10:86-5:16:92", + "value": [ + { + "string": "string", + "raw_string": "string" + } + ] + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/fields/quoted.d2,6:2:95-6:9:102", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/fields/quoted.d2,6:11:104-6:14:107", + "value": [ + { + "string": "int", + "raw_string": "int" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/fields/quoted.d2,6:2:95-6:9:102", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + }, + "key_path": { + "range": "TestCompile/fields/quoted.d2,6:2:95-6:9:102", + "path": [ + { + "double_quoted_string": { + "range": "TestCompile/fields/quoted.d2,6:2:95-6:9:102", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/fields/quoted.d2,6:2:95-6:14:107", + "key": { + "range": "TestCompile/fields/quoted.d2,6:2:95-6:9:102", + "path": [ + { + "double_quoted_string": { + "range": "TestCompile/fields/quoted.d2,6:2:95-6:9:102", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,6:11:104-6:14:107", + "value": [ + { + "string": "int", + "raw_string": "int" + } + ] + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/fields/quoted.d2,7:2:110-7:10:118", + "value": [ + { + "string": "height", + "raw_string": "height" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/fields/quoted.d2,7:12:120-7:15:123", + "value": [ + { + "string": "int", + "raw_string": "int" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/fields/quoted.d2,7:2:110-7:10:118", + "value": [ + { + "string": "height", + "raw_string": "height" + } + ] + }, + "key_path": { + "range": "TestCompile/fields/quoted.d2,7:2:110-7:10:118", + "path": [ + { + "double_quoted_string": { + "range": "TestCompile/fields/quoted.d2,7:2:110-7:10:118", + "value": [ + { + "string": "height", + "raw_string": "height" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/fields/quoted.d2,7:2:110-7:15:123", + "key": { + "range": "TestCompile/fields/quoted.d2,7:2:110-7:10:118", + "path": [ + { + "double_quoted_string": { + "range": "TestCompile/fields/quoted.d2,7:2:110-7:10:118", + "value": [ + { + "string": "height", + "raw_string": "height" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,7:12:120-7:15:123", + "value": [ + { + "string": "int", + "raw_string": "int" + } + ] + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/fields/quoted.d2,0:0:0-0:8:8", + "value": [ + { + "string": "my_table", + "raw_string": "my_table" + } + ] + }, + "key_path": { + "range": "TestCompile/fields/quoted.d2,0:0:0-0:8:8", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,0:0:0-0:8:8", + "value": [ + { + "string": "my_table", + "raw_string": "my_table" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/fields/quoted.d2,0:0:0-8:1:125", + "key": { + "range": "TestCompile/fields/quoted.d2,0:0:0-0:8:8", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,0:0:0-0:8:8", + "value": [ + { + "string": "my_table", + "raw_string": "my_table" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/fields/quoted.d2,0:10:10-8:1:125", + "nodes": [ + { + "map_key": { + "range": "TestCompile/fields/quoted.d2,1:2:14-1:18:30", + "key": { + "range": "TestCompile/fields/quoted.d2,1:2:14-1:7:19", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,1:2:14-1:7:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,1:9:21-1:18:30", + "value": [ + { + "string": "sql_table", + "raw_string": "sql_table" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/fields/quoted.d2,2:2:33-2:12:43", + "key": { + "range": "TestCompile/fields/quoted.d2,2:2:33-2:7:38", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,2:2:33-2:7:38", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/fields/quoted.d2,2:9:40-2:12:43", + "raw": "200", + "value": "200" + } + } + } + }, + { + "map_key": { + "range": "TestCompile/fields/quoted.d2,3:2:46-3:13:57", + "key": { + "range": "TestCompile/fields/quoted.d2,3:2:46-3:8:52", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,3:2:46-3:8:52", + "value": [ + { + "string": "height", + "raw_string": "height" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/fields/quoted.d2,3:10:54-3:13:57", + "raw": "200", + "value": "200" + } + } + } + }, + { + "map_key": { + "range": "TestCompile/fields/quoted.d2,4:2:60-4:17:75", + "key": { + "range": "TestCompile/fields/quoted.d2,4:2:60-4:9:67", + "path": [ + { + "double_quoted_string": { + "range": "TestCompile/fields/quoted.d2,4:2:60-4:9:67", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,4:11:69-4:17:75", + "value": [ + { + "string": "string", + "raw_string": "string" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/fields/quoted.d2,5:2:78-5:16:92", + "key": { + "range": "TestCompile/fields/quoted.d2,5:2:78-5:8:84", + "path": [ + { + "double_quoted_string": { + "range": "TestCompile/fields/quoted.d2,5:2:78-5:8:84", + "value": [ + { + "string": "icon", + "raw_string": "icon" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,5:10:86-5:16:92", + "value": [ + { + "string": "string", + "raw_string": "string" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/fields/quoted.d2,6:2:95-6:14:107", + "key": { + "range": "TestCompile/fields/quoted.d2,6:2:95-6:9:102", + "path": [ + { + "double_quoted_string": { + "range": "TestCompile/fields/quoted.d2,6:2:95-6:9:102", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,6:11:104-6:14:107", + "value": [ + { + "string": "int", + "raw_string": "int" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/fields/quoted.d2,7:2:110-7:15:123", + "key": { + "range": "TestCompile/fields/quoted.d2,7:2:110-7:10:118", + "path": [ + { + "double_quoted_string": { + "range": "TestCompile/fields/quoted.d2,7:2:110-7:10:118", + "value": [ + { + "string": "height", + "raw_string": "height" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/fields/quoted.d2,7:12:120-7:15:123", + "value": [ + { + "string": "int", + "raw_string": "int" + } + ] + } + } + } + } + ] + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + } + ], + "edges": null +} diff --git a/testdata/d2ir/TestCompile/fields/root.exp.json b/testdata/d2ir/TestCompile/fields/root.exp.json index 619b7fcc4..d099a144f 100644 --- a/testdata/d2ir/TestCompile/fields/root.exp.json +++ b/testdata/d2ir/TestCompile/fields/root.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/fields/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/imports/pattern-value.exp.json b/testdata/d2ir/TestCompile/imports/pattern-value.exp.json index d5f4c5203..8e8653a31 100644 --- a/testdata/d2ir/TestCompile/imports/pattern-value.exp.json +++ b/testdata/d2ir/TestCompile/imports/pattern-value.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "userWebsite", + "name": { + "range": "index.d2,0:0:0-0:11:11", + "value": [ + { + "string": "userWebsite", + "raw_string": "userWebsite" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "x.d2,0:0:0-0:5:5", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "x.d2,0:7:7-0:13:13", @@ -84,7 +100,15 @@ ] }, { - "name": "label", + "name": { + "range": "x.d2,1:0:14-1:5:19", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "x.d2,1:7:21-1:11:25", @@ -222,11 +246,27 @@ ] }, { - "name": "userMobile", + "name": { + "range": "index.d2,1:0:12-1:10:22", + "value": [ + { + "string": "userMobile", + "raw_string": "userMobile" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "x.d2,0:0:0-0:5:5", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "x.d2,0:7:7-0:13:13", @@ -305,7 +345,15 @@ ] }, { - "name": "label", + "name": { + "range": "x.d2,1:0:14-1:5:19", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "x.d2,1:7:21-1:11:25", diff --git a/testdata/d2ir/TestCompile/imports/value.exp.json b/testdata/d2ir/TestCompile/imports/value.exp.json index 703c3422a..64186e6af 100644 --- a/testdata/d2ir/TestCompile/imports/value.exp.json +++ b/testdata/d2ir/TestCompile/imports/value.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "x", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "x.d2,0:0:0-0:5:5", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "x.d2,0:7:7-0:13:13", @@ -84,7 +100,15 @@ ] }, { - "name": "label", + "name": { + "range": "x.d2,1:0:14-1:5:19", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "x.d2,1:7:21-1:11:25", From 10a0e3fac46ccb99ab726ee917c9194c82ac14f2 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sat, 23 Nov 2024 18:41:49 -0800 Subject: [PATCH 03/17] next --- ci/release/changelogs/next.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index 74d61119b..2b3a75c96 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -6,6 +6,7 @@ #### Improvements 🧹 - Composition: links pointing to own board are purged [#2203](https://github.com/terrastruct/d2/pull/2203) +- Syntax: reserved keywords must be unquoted [#2231](https://github.com/terrastruct/d2/pull/2231) #### Bugfixes ⛑️ From bc4cfa5243884f0e61499501b3032aacfabf2cef Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sat, 23 Nov 2024 18:49:27 -0800 Subject: [PATCH 04/17] fix null checks for globs --- d2ir/compile.go | 7 +- d2ir/d2ir.go | 6 + d2ir/pattern.go | 3 + .../TestCLI_E2E/vars-animation.exp.svg | 180 +++++++++--------- .../boards/board-label-primary.exp.json | 15 +- .../boards/isFolderOnly-shapes.exp.json | 10 +- .../TestCompile2/boards/isFolderOnly.exp.json | 65 ++++--- .../boards/no-inherit-label.exp.json | 5 +- .../TestCompile2/boards/recursive.exp.json | 75 +++++--- .../TestCompile2/boards/root.exp.json | 10 +- .../boards/scenarios_edge_index.exp.json | 20 +- .../boards/style-nested-boards.exp.json | 65 ++++--- .../alixander-lazy-globs-review/1.exp.json | 15 +- .../alixander-lazy-globs-review/2.exp.json | 30 +-- .../globs/reapply-scenario.exp.json | 15 +- .../globs/second-scenario.exp.json | 30 +-- .../TestCompile2/vars/boards/layer-2.exp.json | 20 +- .../TestCompile2/vars/boards/layer.exp.json | 5 +- .../TestCompile2/vars/boards/overlay.exp.json | 45 +++-- .../TestCompile2/vars/boards/replace.exp.json | 15 +- .../vars/boards/scenario.exp.json | 15 +- .../d2oracle/TestCreate/add_layer/2.exp.json | 5 +- .../d2oracle/TestCreate/add_layer/3.exp.json | 15 +- .../d2oracle/TestCreate/add_layer/4.exp.json | 5 +- .../d2oracle/TestCreate/layers-basic.exp.json | 10 +- .../TestCreate/layers-edge-duplicate.exp.json | 10 +- .../d2oracle/TestCreate/layers-edge.exp.json | 10 +- .../TestCreate/scenarios-basic.exp.json | 15 +- .../scenarios-edge-inherited.exp.json | 10 +- .../TestCreate/scenarios-edge.exp.json | 10 +- .../d2oracle/TestCreate/steps-basic.exp.json | 20 +- .../TestCreate/steps-conflict.exp.json | 20 +- .../d2oracle/TestCreate/steps-edge.exp.json | 15 +- .../d2oracle/TestDelete/children.exp.json | 2 +- .../TestDelete/children_scope.exp.json | 2 +- .../TestDelete/delete-layer-style.exp.json | 5 +- .../TestDelete/delete-not-layer-obj.exp.json | 5 +- .../TestDelete/edge-in-layer.exp.json | 15 +- .../d2oracle/TestDelete/import/2.exp.json | 5 +- .../TestDelete/label-near-in-layer.exp.json | 5 +- .../d2oracle/TestDelete/layers-basic.exp.json | 5 +- .../d2oracle/TestDelete/node_in_edge.exp.json | 2 +- .../TestDelete/node_in_edge_last.exp.json | 2 +- .../TestDelete/scenarios-basic.exp.json | 10 +- .../scenarios-edge-inherited.exp.json | 15 +- .../TestDelete/scenarios-inherited.exp.json | 10 +- .../d2oracle/TestDelete/shape_class.exp.json | 6 +- .../TestDelete/update-near-in-layer.exp.json | 5 +- .../d2oracle/TestMove/layers-basic.exp.json | 10 +- .../TestReconnectEdge/layers-basic.exp.json | 15 +- .../scenarios-basic.exp.json | 15 +- .../scenarios-outer-scope.exp.json | 15 +- .../TestRename/arrows_trim_common_2.exp.json | 2 +- .../d2oracle/TestRename/container.exp.json | 2 +- testdata/d2oracle/TestRename/flat.exp.json | 2 +- .../d2oracle/TestRename/layers-basic.exp.json | 5 +- .../TestRename/scenarios-basic.exp.json | 10 +- .../TestRename/scenarios-conflict.exp.json | 10 +- testdata/d2oracle/TestSet/import/8.exp.json | 15 +- .../layers-unusable-ref-style.exp.json | 20 +- .../TestSet/layers-usable-ref-style.exp.json | 15 +- .../d2oracle/TestSet/scenario-child.exp.json | 25 ++- .../TestSet/scenario-grandchild.exp.json | 70 ++++--- .../TestSet/scenarios-arrowhead.exp.json | 40 ++-- .../TestSet/scenarios-edge-set.exp.json | 25 ++- .../scenarios-existing-edge-set.exp.json | 25 ++- .../scenarios-label-primary-missing.exp.json | 20 +- .../TestSet/scenarios-label-primary.exp.json | 15 +- .../TestSet/scenarios-multiple.exp.json | 25 ++- ...scenarios-nested-usable-ref-style.exp.json | 20 +- .../scenarios-unusable-ref-style.exp.json | 20 +- .../scenarios-usable-ref-style.exp.json | 15 +- 72 files changed, 780 insertions(+), 546 deletions(-) diff --git a/d2ir/compile.go b/d2ir/compile.go index 41b1bce99..2f27bd4a0 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -126,6 +126,9 @@ func (c *compiler) overlayClasses(m *Map) { func (c *compiler) compileSubstitutions(m *Map, varsStack []*Map) { for _, f := range m.Fields { + if f.Name == nil { + continue + } if f.Name.ScalarString() == "vars" && f.Name.IsUnquoted() && f.Map() != nil { varsStack = append([]*Map{f.Map()}, varsStack...) } @@ -148,7 +151,7 @@ func (c *compiler) compileSubstitutions(m *Map, varsStack []*Map) { } } } else if f.Map() != nil { - if f.Name.ScalarString() == "vars" && f.Name.IsUnquoted() { + if f.Name != nil && f.Name.ScalarString() == "vars" && f.Name.IsUnquoted() { c.compileSubstitutions(f.Map(), varsStack) c.validateConfigs(f.Map().GetField("d2-config")) } else { @@ -398,7 +401,7 @@ func (c *compiler) resolveSubstitution(vars *Map, node Node, substitution *d2ast // // When resolving hi.vars.x, the vars stack includes itself. // So this next if clause says, "ignore if we're using the current scope's vars to try to resolve a substitution that requires a var from further in the stack" - if fok && fieldNode.Name.ScalarString() == p.Unbox().ScalarString() && isCurrentScopeVars && parent.Name.ScalarString() == "vars" && parent.Name.IsUnquoted() { + if fok && fieldNode.Name != nil && fieldNode.Name.ScalarString() == p.Unbox().ScalarString() && isCurrentScopeVars && parent.Name.ScalarString() == "vars" && parent.Name.IsUnquoted() { return nil } diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 1a86e7271..4de0c8ec0 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -735,6 +735,9 @@ func (m *Map) getField(ida []string) *Field { } for _, f := range m.Fields { + if f.Name == nil { + continue + } if !strings.EqualFold(f.Name.ScalarString(), s) { continue } @@ -841,6 +844,9 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b return nil } for _, f := range m.Fields { + if f.Name == nil { + continue + } if matchPattern(f.Name.ScalarString(), us.Pattern) { if i == len(kp.Path)-1 { faAppend(f) diff --git a/d2ir/pattern.go b/d2ir/pattern.go index 35722e241..a62021342 100644 --- a/d2ir/pattern.go +++ b/d2ir/pattern.go @@ -21,6 +21,9 @@ func (m *Map) multiGlob(pattern []string) ([]*Field, bool) { func (m *Map) _doubleGlob(fa *[]*Field) { for _, f := range m.Fields { + if f.Name == nil { + continue + } if _, ok := d2ast.ReservedKeywords[f.Name.ScalarString()]; ok && f.Name.IsUnquoted() { if f.Name.ScalarString() == "layers" { continue diff --git a/e2etests-cli/testdata/TestCLI_E2E/vars-animation.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/vars-animation.exp.svg index e0f86221d..67a938e4d 100644 --- a/e2etests-cli/testdata/TestCLI_E2E/vars-animation.exp.svg +++ b/e2etests-cli/testdata/TestCLI_E2E/vars-animation.exp.svg @@ -1,16 +1,16 @@ CHICKEN'S PLAN +}]]>CHICKEN'S PLAN -CHICKEN'S PLANAPPROACH ROAD +CHICKEN'S PLANAPPROACH ROAD -CHICKEN'S PLANAPPROACH ROADCROSS ROAD +CHICKEN'S PLANAPPROACH ROADCROSS ROAD -CHICKEN'S PLANAPPROACH ROADCROSS ROADMAKE YOU WONDER WHY +CHICKEN'S PLANAPPROACH ROADCROSS ROADMAKE YOU WONDER WHY diff --git a/testdata/d2compiler/TestCompile2/boards/board-label-primary.exp.json b/testdata/d2compiler/TestCompile2/boards/board-label-primary.exp.json index b1ef6ce86..a779a2f70 100644 --- a/testdata/d2compiler/TestCompile2/boards/board-label-primary.exp.json +++ b/testdata/d2compiler/TestCompile2/boards/board-label-primary.exp.json @@ -292,10 +292,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/board-label-primary.d2,3:4:28-3:6:30", "value": [ { - "string": "RJ" + "string": "RJ", + "raw_string": "RJ" } ] } @@ -394,10 +395,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/board-label-primary.d2,6:4:46-6:9:51", "value": [ { - "string": "label" + "string": "label", + "raw_string": "label" } ] } @@ -426,10 +428,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/board-label-primary.d2,7:4:61-7:6:63", "value": [ { - "string": "RJ" + "string": "RJ", + "raw_string": "RJ" } ] } diff --git a/testdata/d2compiler/TestCompile2/boards/isFolderOnly-shapes.exp.json b/testdata/d2compiler/TestCompile2/boards/isFolderOnly-shapes.exp.json index cd20cadf7..bd5884c85 100644 --- a/testdata/d2compiler/TestCompile2/boards/isFolderOnly-shapes.exp.json +++ b/testdata/d2compiler/TestCompile2/boards/isFolderOnly-shapes.exp.json @@ -161,10 +161,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly-shapes.d2,1:0:1-1:9:10", "value": [ { - "string": "direction" + "string": "direction", + "raw_string": "direction" } ] } @@ -193,10 +194,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly-shapes.d2,5:4:39-5:6:41", "value": [ { - "string": "RJ" + "string": "RJ", + "raw_string": "RJ" } ] } diff --git a/testdata/d2compiler/TestCompile2/boards/isFolderOnly.exp.json b/testdata/d2compiler/TestCompile2/boards/isFolderOnly.exp.json index 8e093a0f6..b83fbd95c 100644 --- a/testdata/d2compiler/TestCompile2/boards/isFolderOnly.exp.json +++ b/testdata/d2compiler/TestCompile2/boards/isFolderOnly.exp.json @@ -332,10 +332,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,3:4:24-3:9:29", "value": [ { - "string": "santa" + "string": "santa", + "raw_string": "santa" } ] } @@ -434,10 +435,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,6:4:47-6:10:53", "value": [ { - "string": "clause" + "string": "clause", + "raw_string": "clause" } ] } @@ -456,10 +458,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,7:2:56-7:11:65", "value": [ { - "string": "scenarios" + "string": "scenarios", + "raw_string": "scenarios" } ] } @@ -479,10 +482,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,8:3:72-8:11:80", "value": [ { - "string": "seinfeld" + "string": "seinfeld", + "raw_string": "seinfeld" } ] } @@ -502,10 +506,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,6:4:47-6:10:53", "value": [ { - "string": "clause" + "string": "clause", + "raw_string": "clause" } ] } @@ -529,10 +534,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,10:3:92-10:11:100", "value": [ { - "string": "missoula" + "string": "missoula", + "raw_string": "missoula" } ] } @@ -552,10 +558,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,6:4:47-6:10:53", "value": [ { - "string": "clause" + "string": "clause", + "raw_string": "clause" } ] } @@ -574,10 +581,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,11:4:108-11:9:113", "value": [ { - "string": "steps" + "string": "steps", + "raw_string": "steps" } ] } @@ -597,10 +605,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,12:5:122-12:11:128", "value": [ { - "string": "missus" + "string": "missus", + "raw_string": "missus" } ] } @@ -724,10 +733,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,6:4:47-6:10:53", "value": [ { - "string": "clause" + "string": "clause", + "raw_string": "clause" } ] } @@ -826,10 +836,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,6:4:47-6:10:53", "value": [ { - "string": "clause" + "string": "clause", + "raw_string": "clause" } ] } @@ -848,10 +859,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,11:4:108-11:9:113", "value": [ { - "string": "steps" + "string": "steps", + "raw_string": "steps" } ] } @@ -871,10 +883,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/isFolderOnly.d2,12:5:122-12:11:128", "value": [ { - "string": "missus" + "string": "missus", + "raw_string": "missus" } ] } diff --git a/testdata/d2compiler/TestCompile2/boards/no-inherit-label.exp.json b/testdata/d2compiler/TestCompile2/boards/no-inherit-label.exp.json index 54890fce4..843612380 100644 --- a/testdata/d2compiler/TestCompile2/boards/no-inherit-label.exp.json +++ b/testdata/d2compiler/TestCompile2/boards/no-inherit-label.exp.json @@ -161,10 +161,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/no-inherit-label.d2,5:4:32-5:6:34", "value": [ { - "string": "RJ" + "string": "RJ", + "raw_string": "RJ" } ] } diff --git a/testdata/d2compiler/TestCompile2/boards/recursive.exp.json b/testdata/d2compiler/TestCompile2/boards/recursive.exp.json index 8324c327d..a15839583 100644 --- a/testdata/d2compiler/TestCompile2/boards/recursive.exp.json +++ b/testdata/d2compiler/TestCompile2/boards/recursive.exp.json @@ -382,10 +382,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", "value": [ { - "string": "santa" + "string": "santa", + "raw_string": "santa" } ] } @@ -484,10 +485,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", "value": [ { - "string": "clause" + "string": "clause", + "raw_string": "clause" } ] } @@ -506,10 +508,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-8:7:66", "value": [ { - "string": "steps" + "string": "steps", + "raw_string": "steps" } ] } @@ -529,10 +532,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-9:11:81", "value": [ { - "string": "seinfeld" + "string": "seinfeld", + "raw_string": "seinfeld" } ] } @@ -552,10 +556,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", "value": [ { - "string": "clause" + "string": "clause", + "raw_string": "clause" } ] } @@ -574,10 +579,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", "value": [ { - "string": "reindeer" + "string": "reindeer", + "raw_string": "reindeer" } ] } @@ -601,10 +607,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-12:11:114", "value": [ { - "string": "missoula" + "string": "missoula", + "raw_string": "missoula" } ] } @@ -624,10 +631,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", "value": [ { - "string": "clause" + "string": "clause", + "raw_string": "clause" } ] } @@ -646,10 +654,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", "value": [ { - "string": "reindeer" + "string": "reindeer", + "raw_string": "reindeer" } ] } @@ -668,10 +677,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", "value": [ { - "string": "montana" + "string": "montana", + "raw_string": "montana" } ] } @@ -780,10 +790,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", "value": [ { - "string": "clause" + "string": "clause", + "raw_string": "clause" } ] } @@ -802,10 +813,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", "value": [ { - "string": "reindeer" + "string": "reindeer", + "raw_string": "reindeer" } ] } @@ -949,10 +961,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", "value": [ { - "string": "clause" + "string": "clause", + "raw_string": "clause" } ] } @@ -971,10 +984,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", "value": [ { - "string": "reindeer" + "string": "reindeer", + "raw_string": "reindeer" } ] } @@ -993,10 +1007,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", "value": [ { - "string": "montana" + "string": "montana", + "raw_string": "montana" } ] } diff --git a/testdata/d2compiler/TestCompile2/boards/root.exp.json b/testdata/d2compiler/TestCompile2/boards/root.exp.json index d610fe2e0..9114f54fb 100644 --- a/testdata/d2compiler/TestCompile2/boards/root.exp.json +++ b/testdata/d2compiler/TestCompile2/boards/root.exp.json @@ -249,10 +249,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,4:4:29-4:9:34", "value": [ { - "string": "santa" + "string": "santa", + "raw_string": "santa" } ] } @@ -351,10 +352,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,7:4:52-7:10:58", "value": [ { - "string": "clause" + "string": "clause", + "raw_string": "clause" } ] } diff --git a/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.exp.json b/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.exp.json index 4fa49ab8b..a8143b2ea 100644 --- a/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.exp.json +++ b/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.exp.json @@ -357,10 +357,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -379,10 +380,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,0:5:5-0:6:6", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -446,10 +448,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:16:44-4:21:49", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -469,10 +472,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/scenarios_edge_index.d2,4:22:50-4:29:57", "value": [ { - "string": "opacity" + "string": "opacity", + "raw_string": "opacity" } ] } diff --git a/testdata/d2compiler/TestCompile2/boards/style-nested-boards.exp.json b/testdata/d2compiler/TestCompile2/boards/style-nested-boards.exp.json index 817cad6cf..3cca1d32c 100644 --- a/testdata/d2compiler/TestCompile2/boards/style-nested-boards.exp.json +++ b/testdata/d2compiler/TestCompile2/boards/style-nested-boards.exp.json @@ -454,10 +454,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,20:4:139-20:5:140", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -558,10 +559,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,4:4:48-4:5:49", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -581,10 +583,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,0:3:3-0:8:8", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -604,10 +607,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,0:9:9-0:15:15", "value": [ { - "string": "stroke" + "string": "stroke", + "raw_string": "stroke" } ] } @@ -730,10 +734,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,7:4:65-7:5:66", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -753,10 +758,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,0:3:3-0:8:8", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -776,10 +782,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,0:9:9-0:15:15", "value": [ { - "string": "stroke" + "string": "stroke", + "raw_string": "stroke" } ] } @@ -904,10 +911,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,12:4:93-12:5:94", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -927,10 +935,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,0:3:3-0:8:8", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -950,10 +959,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,0:9:9-0:15:15", "value": [ { - "string": "stroke" + "string": "stroke", + "raw_string": "stroke" } ] } @@ -1076,10 +1086,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,12:4:93-12:5:94", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -1099,10 +1110,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,0:3:3-0:8:8", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -1122,10 +1134,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/boards/style-nested-boards.d2,0:9:9-0:15:15", "value": [ { - "string": "stroke" + "string": "stroke", + "raw_string": "stroke" } ] } diff --git a/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/1.exp.json b/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/1.exp.json index 9d857a0fc..ea7fc0a46 100644 --- a/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/1.exp.json +++ b/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/1.exp.json @@ -446,10 +446,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/1.d2,11:4:101-11:5:102", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -469,10 +470,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/1.d2,1:4:5-1:9:10", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -492,10 +494,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/1.d2,1:10:11-1:14:15", "value": [ { - "string": "fill" + "string": "fill", + "raw_string": "fill" } ] } diff --git a/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/2.exp.json b/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/2.exp.json index 24f29b12f..f71559a58 100644 --- a/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/2.exp.json +++ b/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/2.exp.json @@ -211,10 +211,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/2.d2,5:4:48-5:5:49", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -234,10 +235,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/2.d2,1:3:4-1:8:9", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -257,10 +259,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/2.d2,1:9:10-1:13:14", "value": [ { - "string": "fill" + "string": "fill", + "raw_string": "fill" } ] } @@ -299,10 +302,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/2.d2,5:9:53-5:10:54", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -322,10 +326,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/2.d2,1:3:4-1:8:9", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -345,10 +350,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/alixander-lazy-globs-review/2.d2,1:9:10-1:13:14", "value": [ { - "string": "fill" + "string": "fill", + "raw_string": "fill" } ] } diff --git a/testdata/d2compiler/TestCompile2/globs/reapply-scenario.exp.json b/testdata/d2compiler/TestCompile2/globs/reapply-scenario.exp.json index 80e132917..bd5af6c7a 100644 --- a/testdata/d2compiler/TestCompile2/globs/reapply-scenario.exp.json +++ b/testdata/d2compiler/TestCompile2/globs/reapply-scenario.exp.json @@ -362,10 +362,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/reapply-scenario.d2,2:0:20-2:1:21", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -385,10 +386,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/reapply-scenario.d2,3:2:27-3:3:28", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -408,10 +410,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/reapply-scenario.d2,1:5:6-1:10:11", "value": [ { - "string": "shape" + "string": "shape", + "raw_string": "shape" } ] } diff --git a/testdata/d2compiler/TestCompile2/globs/second-scenario.exp.json b/testdata/d2compiler/TestCompile2/globs/second-scenario.exp.json index 727036175..e03f20ba0 100644 --- a/testdata/d2compiler/TestCompile2/globs/second-scenario.exp.json +++ b/testdata/d2compiler/TestCompile2/globs/second-scenario.exp.json @@ -300,10 +300,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/second-scenario.d2,5:4:45-5:5:46", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -323,10 +324,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/second-scenario.d2,6:6:56-6:7:57", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -346,10 +348,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/second-scenario.d2,1:5:6-1:10:11", "value": [ { - "string": "shape" + "string": "shape", + "raw_string": "shape" } ] } @@ -513,10 +516,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/second-scenario.d2,10:4:79-10:5:80", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -536,10 +540,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/second-scenario.d2,11:6:90-11:7:91", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -559,10 +564,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/globs/second-scenario.d2,1:5:6-1:10:11", "value": [ { - "string": "shape" + "string": "shape", + "raw_string": "shape" } ] } diff --git a/testdata/d2compiler/TestCompile2/vars/boards/layer-2.exp.json b/testdata/d2compiler/TestCompile2/vars/boards/layer-2.exp.json index deafde506..6a49f19f5 100644 --- a/testdata/d2compiler/TestCompile2/vars/boards/layer-2.exp.json +++ b/testdata/d2compiler/TestCompile2/vars/boards/layer-2.exp.json @@ -358,10 +358,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/layer-2.d2,8:4:65-8:8:69", "value": [ { - "string": "vars" + "string": "vars", + "raw_string": "vars" } ] } @@ -381,10 +382,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/layer-2.d2,9:6:79-9:7:80", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -418,10 +420,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/layer-2.d2,11:4:104-11:6:106", "value": [ { - "string": "hi" + "string": "hi", + "raw_string": "hi" } ] } @@ -450,10 +453,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/layer-2.d2,12:4:117-12:9:122", "value": [ { - "string": "hello" + "string": "hello", + "raw_string": "hello" } ] } diff --git a/testdata/d2compiler/TestCompile2/vars/boards/layer.exp.json b/testdata/d2compiler/TestCompile2/vars/boards/layer.exp.json index 651a8f2ec..6a99dab5b 100644 --- a/testdata/d2compiler/TestCompile2/vars/boards/layer.exp.json +++ b/testdata/d2compiler/TestCompile2/vars/boards/layer.exp.json @@ -215,10 +215,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/layer.d2,7:4:47-7:6:49", "value": [ { - "string": "hi" + "string": "hi", + "raw_string": "hi" } ] } diff --git a/testdata/d2compiler/TestCompile2/vars/boards/overlay.exp.json b/testdata/d2compiler/TestCompile2/vars/boards/overlay.exp.json index 0344bf673..26fab8e09 100644 --- a/testdata/d2compiler/TestCompile2/vars/boards/overlay.exp.json +++ b/testdata/d2compiler/TestCompile2/vars/boards/overlay.exp.json @@ -541,10 +541,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/overlay.d2,16:4:134-16:8:138", "value": [ { - "string": "vars" + "string": "vars", + "raw_string": "vars" } ] } @@ -564,10 +565,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/overlay.d2,17:6:148-17:7:149", "value": [ { - "string": "y" + "string": "y", + "raw_string": "y" } ] } @@ -601,10 +603,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/overlay.d2,19:4:170-19:5:171", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -633,10 +636,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/overlay.d2,20:4:182-20:5:183", "value": [ { - "string": "y" + "string": "y", + "raw_string": "y" } ] } @@ -792,10 +796,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/overlay.d2,1:0:1-1:4:5", "value": [ { - "string": "vars" + "string": "vars", + "raw_string": "vars" } ] } @@ -815,10 +820,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/overlay.d2,2:2:11-2:3:12", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -847,10 +853,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/overlay.d2,8:6:64-8:7:65", "value": [ { - "string": "y" + "string": "y", + "raw_string": "y" } ] } @@ -884,10 +891,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/overlay.d2,10:4:86-10:5:87", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -916,10 +924,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/overlay.d2,11:4:98-11:5:99", "value": [ { - "string": "y" + "string": "y", + "raw_string": "y" } ] } diff --git a/testdata/d2compiler/TestCompile2/vars/boards/replace.exp.json b/testdata/d2compiler/TestCompile2/vars/boards/replace.exp.json index a43035991..4fdefffce 100644 --- a/testdata/d2compiler/TestCompile2/vars/boards/replace.exp.json +++ b/testdata/d2compiler/TestCompile2/vars/boards/replace.exp.json @@ -277,10 +277,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/replace.d2,1:0:1-1:4:5", "value": [ { - "string": "vars" + "string": "vars", + "raw_string": "vars" } ] } @@ -300,10 +301,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/replace.d2,2:2:11-2:3:12", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -337,10 +339,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/replace.d2,10:4:95-10:5:96", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } diff --git a/testdata/d2compiler/TestCompile2/vars/boards/scenario.exp.json b/testdata/d2compiler/TestCompile2/vars/boards/scenario.exp.json index 3e7cfeca1..ed15fda22 100644 --- a/testdata/d2compiler/TestCompile2/vars/boards/scenario.exp.json +++ b/testdata/d2compiler/TestCompile2/vars/boards/scenario.exp.json @@ -215,10 +215,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/scenario.d2,1:0:1-1:4:5", "value": [ { - "string": "vars" + "string": "vars", + "raw_string": "vars" } ] } @@ -238,10 +239,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/scenario.d2,2:2:11-2:3:12", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -275,10 +277,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile2/vars/boards/scenario.d2,7:4:50-7:6:52", "value": [ { - "string": "hi" + "string": "hi", + "raw_string": "hi" } ] } diff --git a/testdata/d2oracle/TestCreate/add_layer/2.exp.json b/testdata/d2oracle/TestCreate/add_layer/2.exp.json index 2b4f7031f..bd411a1f2 100644 --- a/testdata/d2oracle/TestCreate/add_layer/2.exp.json +++ b/testdata/d2oracle/TestCreate/add_layer/2.exp.json @@ -225,10 +225,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/add_layer/2.d2,4:4:24-4:5:25", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } diff --git a/testdata/d2oracle/TestCreate/add_layer/3.exp.json b/testdata/d2oracle/TestCreate/add_layer/3.exp.json index 9a7caee0f..acd0d3440 100644 --- a/testdata/d2oracle/TestCreate/add_layer/3.exp.json +++ b/testdata/d2oracle/TestCreate/add_layer/3.exp.json @@ -254,10 +254,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/add_layer/3.d2,4:4:24-4:5:25", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -276,10 +277,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/add_layer/3.d2,5:4:30-5:10:36", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -299,10 +301,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/add_layer/3.d2,6:6:46-6:7:47", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } diff --git a/testdata/d2oracle/TestCreate/add_layer/4.exp.json b/testdata/d2oracle/TestCreate/add_layer/4.exp.json index 5adb73476..9002f903d 100644 --- a/testdata/d2oracle/TestCreate/add_layer/4.exp.json +++ b/testdata/d2oracle/TestCreate/add_layer/4.exp.json @@ -197,10 +197,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/add_layer/4.d2,4:4:24-4:5:25", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } diff --git a/testdata/d2oracle/TestCreate/layers-basic.exp.json b/testdata/d2oracle/TestCreate/layers-basic.exp.json index fd96eec76..721b66eb3 100644 --- a/testdata/d2oracle/TestCreate/layers-basic.exp.json +++ b/testdata/d2oracle/TestCreate/layers-basic.exp.json @@ -220,10 +220,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:24-4:5:25", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -242,10 +243,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,5:4:30-5:5:31", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json b/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json index 3d0e35b9f..610e0f54a 100644 --- a/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json +++ b/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json @@ -365,10 +365,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:29-4:5:30", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -387,10 +388,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:34-4:10:35", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestCreate/layers-edge.exp.json b/testdata/d2oracle/TestCreate/layers-edge.exp.json index d21cbdf87..d6b57544f 100644 --- a/testdata/d2oracle/TestCreate/layers-edge.exp.json +++ b/testdata/d2oracle/TestCreate/layers-edge.exp.json @@ -243,10 +243,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:24-4:5:25", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -265,10 +266,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,5:9:35-5:10:36", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestCreate/scenarios-basic.exp.json b/testdata/d2oracle/TestCreate/scenarios-basic.exp.json index e6f6e4791..a3f613edd 100644 --- a/testdata/d2oracle/TestCreate/scenarios-basic.exp.json +++ b/testdata/d2oracle/TestCreate/scenarios-basic.exp.json @@ -288,10 +288,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -310,10 +311,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,1:0:2-1:1:3", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -332,10 +334,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,6:4:35-6:5:36", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } diff --git a/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json b/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json index bf7c7c758..d400206de 100644 --- a/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json +++ b/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json @@ -342,10 +342,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -364,10 +365,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:5:5-0:6:6", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestCreate/scenarios-edge.exp.json b/testdata/d2oracle/TestCreate/scenarios-edge.exp.json index 090920158..3954aedfa 100644 --- a/testdata/d2oracle/TestCreate/scenarios-edge.exp.json +++ b/testdata/d2oracle/TestCreate/scenarios-edge.exp.json @@ -311,10 +311,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -333,10 +334,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,1:0:2-1:1:3", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestCreate/steps-basic.exp.json b/testdata/d2oracle/TestCreate/steps-basic.exp.json index 394b6c479..a9e214f25 100644 --- a/testdata/d2oracle/TestCreate/steps-basic.exp.json +++ b/testdata/d2oracle/TestCreate/steps-basic.exp.json @@ -288,10 +288,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -310,10 +311,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,1:0:2-1:1:3", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -332,10 +334,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:25-5:5:26", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -354,10 +357,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,6:4:31-6:5:32", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } diff --git a/testdata/d2oracle/TestCreate/steps-conflict.exp.json b/testdata/d2oracle/TestCreate/steps-conflict.exp.json index faa16fc82..50176089a 100644 --- a/testdata/d2oracle/TestCreate/steps-conflict.exp.json +++ b/testdata/d2oracle/TestCreate/steps-conflict.exp.json @@ -288,10 +288,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -310,10 +311,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,1:0:2-1:1:3", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -332,10 +334,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:25-5:5:26", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -354,10 +357,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,6:4:31-6:7:34", "value": [ { - "string": "d 2" + "string": "d 2", + "raw_string": "d 2" } ] } diff --git a/testdata/d2oracle/TestCreate/steps-edge.exp.json b/testdata/d2oracle/TestCreate/steps-edge.exp.json index 3298522ab..fbe757b84 100644 --- a/testdata/d2oracle/TestCreate/steps-edge.exp.json +++ b/testdata/d2oracle/TestCreate/steps-edge.exp.json @@ -311,10 +311,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -333,10 +334,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,1:0:2-1:1:3", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -355,10 +357,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:25-5:5:26", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestDelete/children.exp.json b/testdata/d2oracle/TestDelete/children.exp.json index a0fdc1628..284e75cd0 100644 --- a/testdata/d2oracle/TestDelete/children.exp.json +++ b/testdata/d2oracle/TestDelete/children.exp.json @@ -133,7 +133,7 @@ ], "objects": [ { - "id": "\"what's up\"", + "id": "what's up", "id_val": "what's up", "references": [ { diff --git a/testdata/d2oracle/TestDelete/children_scope.exp.json b/testdata/d2oracle/TestDelete/children_scope.exp.json index 13e8a86d1..873898ef7 100644 --- a/testdata/d2oracle/TestDelete/children_scope.exp.json +++ b/testdata/d2oracle/TestDelete/children_scope.exp.json @@ -285,7 +285,7 @@ "zIndex": 0 }, { - "id": "\"what's up\"", + "id": "what's up", "id_val": "what's up", "references": [ { diff --git a/testdata/d2oracle/TestDelete/delete-layer-style.exp.json b/testdata/d2oracle/TestDelete/delete-layer-style.exp.json index 4756b825d..58a3a4bd5 100644 --- a/testdata/d2oracle/TestDelete/delete-layer-style.exp.json +++ b/testdata/d2oracle/TestDelete/delete-layer-style.exp.json @@ -128,10 +128,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/delete-layer-style.d2,2:4:21-2:5:22", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } diff --git a/testdata/d2oracle/TestDelete/delete-not-layer-obj.exp.json b/testdata/d2oracle/TestDelete/delete-not-layer-obj.exp.json index 6471d0958..76a06f92c 100644 --- a/testdata/d2oracle/TestDelete/delete-not-layer-obj.exp.json +++ b/testdata/d2oracle/TestDelete/delete-not-layer-obj.exp.json @@ -197,10 +197,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/delete-not-layer-obj.d2,4:4:24-4:5:25", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } diff --git a/testdata/d2oracle/TestDelete/edge-in-layer.exp.json b/testdata/d2oracle/TestDelete/edge-in-layer.exp.json index 403548280..8839f5026 100644 --- a/testdata/d2oracle/TestDelete/edge-in-layer.exp.json +++ b/testdata/d2oracle/TestDelete/edge-in-layer.exp.json @@ -180,10 +180,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/edge-in-layer.d2,2:4:24-2:5:25", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -203,10 +204,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/edge-in-layer.d2,3:6:35-3:7:36", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -225,10 +227,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/edge-in-layer.d2,3:11:40-3:12:41", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestDelete/import/2.exp.json b/testdata/d2oracle/TestDelete/import/2.exp.json index 03dae3eb1..79d2c4a66 100644 --- a/testdata/d2oracle/TestDelete/import/2.exp.json +++ b/testdata/d2oracle/TestDelete/import/2.exp.json @@ -266,10 +266,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "index.d2,4:4:34-4:5:35", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } diff --git a/testdata/d2oracle/TestDelete/label-near-in-layer.exp.json b/testdata/d2oracle/TestDelete/label-near-in-layer.exp.json index 28bc88fa7..d2f5bee0c 100644 --- a/testdata/d2oracle/TestDelete/label-near-in-layer.exp.json +++ b/testdata/d2oracle/TestDelete/label-near-in-layer.exp.json @@ -128,10 +128,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/label-near-in-layer.d2,2:4:21-2:5:22", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } diff --git a/testdata/d2oracle/TestDelete/layers-basic.exp.json b/testdata/d2oracle/TestDelete/layers-basic.exp.json index b8f5f3fce..01354d3bd 100644 --- a/testdata/d2oracle/TestDelete/layers-basic.exp.json +++ b/testdata/d2oracle/TestDelete/layers-basic.exp.json @@ -197,10 +197,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,4:4:24-4:5:25", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestDelete/node_in_edge.exp.json b/testdata/d2oracle/TestDelete/node_in_edge.exp.json index dc3c6c44f..693282d17 100644 --- a/testdata/d2oracle/TestDelete/node_in_edge.exp.json +++ b/testdata/d2oracle/TestDelete/node_in_edge.exp.json @@ -463,7 +463,7 @@ "zIndex": 0 }, { - "id": "\"what's up\"", + "id": "what's up", "id_val": "what's up", "references": [ { diff --git a/testdata/d2oracle/TestDelete/node_in_edge_last.exp.json b/testdata/d2oracle/TestDelete/node_in_edge_last.exp.json index 117af5395..8acca1102 100644 --- a/testdata/d2oracle/TestDelete/node_in_edge_last.exp.json +++ b/testdata/d2oracle/TestDelete/node_in_edge_last.exp.json @@ -639,7 +639,7 @@ "zIndex": 0 }, { - "id": "\"what's up\"", + "id": "what's up", "id_val": "what's up", "references": [ { diff --git a/testdata/d2oracle/TestDelete/scenarios-basic.exp.json b/testdata/d2oracle/TestDelete/scenarios-basic.exp.json index 40a69618b..81557a95f 100644 --- a/testdata/d2oracle/TestDelete/scenarios-basic.exp.json +++ b/testdata/d2oracle/TestDelete/scenarios-basic.exp.json @@ -197,10 +197,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -219,10 +220,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,4:4:27-4:5:28", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestDelete/scenarios-edge-inherited.exp.json b/testdata/d2oracle/TestDelete/scenarios-edge-inherited.exp.json index 51771025c..8dcd684ac 100644 --- a/testdata/d2oracle/TestDelete/scenarios-edge-inherited.exp.json +++ b/testdata/d2oracle/TestDelete/scenarios-edge-inherited.exp.json @@ -374,10 +374,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-edge-inherited.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -396,10 +397,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-edge-inherited.d2,0:5:5-0:6:6", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -418,10 +420,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-edge-inherited.d2,5:4:38-5:5:39", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } diff --git a/testdata/d2oracle/TestDelete/scenarios-inherited.exp.json b/testdata/d2oracle/TestDelete/scenarios-inherited.exp.json index 26752dc82..500570aef 100644 --- a/testdata/d2oracle/TestDelete/scenarios-inherited.exp.json +++ b/testdata/d2oracle/TestDelete/scenarios-inherited.exp.json @@ -247,10 +247,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-inherited.d2,4:4:27-4:5:28", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -269,10 +270,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-inherited.d2,5:4:33-5:5:34", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } diff --git a/testdata/d2oracle/TestDelete/shape_class.exp.json b/testdata/d2oracle/TestDelete/shape_class.exp.json index e5f1f7ea9..3422a0889 100644 --- a/testdata/d2oracle/TestDelete/shape_class.exp.json +++ b/testdata/d2oracle/TestDelete/shape_class.exp.json @@ -56,8 +56,8 @@ "edges": null, "objects": [ { - "id": "\"github.com/terrastruct/d2parser.git\"", - "id_val": "github.com/terrastruct/d2parser.git", + "id": "github.com/terrastruct/d2parser.git", + "id_val": "github", "references": [ { "key": { @@ -82,7 +82,7 @@ ], "attributes": { "label": { - "value": "github.com/terrastruct/d2parser.git" + "value": "github" }, "labelDimensions": { "width": 0, diff --git a/testdata/d2oracle/TestDelete/update-near-in-layer.exp.json b/testdata/d2oracle/TestDelete/update-near-in-layer.exp.json index c30b0d330..42fcbcbd2 100644 --- a/testdata/d2oracle/TestDelete/update-near-in-layer.exp.json +++ b/testdata/d2oracle/TestDelete/update-near-in-layer.exp.json @@ -128,10 +128,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestDelete/update-near-in-layer.d2,2:4:21-2:5:22", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } diff --git a/testdata/d2oracle/TestMove/layers-basic.exp.json b/testdata/d2oracle/TestMove/layers-basic.exp.json index 1ebf31684..26bf618a0 100644 --- a/testdata/d2oracle/TestMove/layers-basic.exp.json +++ b/testdata/d2oracle/TestMove/layers-basic.exp.json @@ -226,10 +226,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:4:24-4:5:25", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -249,10 +250,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,5:6:35-5:7:36", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } diff --git a/testdata/d2oracle/TestReconnectEdge/layers-basic.exp.json b/testdata/d2oracle/TestReconnectEdge/layers-basic.exp.json index 9a8fbf16b..6b6324715 100644 --- a/testdata/d2oracle/TestReconnectEdge/layers-basic.exp.json +++ b/testdata/d2oracle/TestReconnectEdge/layers-basic.exp.json @@ -266,10 +266,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestReconnectEdge/layers-basic.d2,4:4:24-4:5:25", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -288,10 +289,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestReconnectEdge/layers-basic.d2,5:4:30-5:5:31", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -310,10 +312,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestReconnectEdge/layers-basic.d2,6:4:36-6:5:37", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } diff --git a/testdata/d2oracle/TestReconnectEdge/scenarios-basic.exp.json b/testdata/d2oracle/TestReconnectEdge/scenarios-basic.exp.json index 9f986050c..829fa8f3d 100644 --- a/testdata/d2oracle/TestReconnectEdge/scenarios-basic.exp.json +++ b/testdata/d2oracle/TestReconnectEdge/scenarios-basic.exp.json @@ -266,10 +266,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestReconnectEdge/scenarios-basic.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -288,10 +289,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestReconnectEdge/scenarios-basic.d2,4:4:27-4:5:28", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -310,10 +312,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestReconnectEdge/scenarios-basic.d2,5:4:33-5:5:34", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } diff --git a/testdata/d2oracle/TestReconnectEdge/scenarios-outer-scope.exp.json b/testdata/d2oracle/TestReconnectEdge/scenarios-outer-scope.exp.json index 2e1e86126..5aeba3378 100644 --- a/testdata/d2oracle/TestReconnectEdge/scenarios-outer-scope.exp.json +++ b/testdata/d2oracle/TestReconnectEdge/scenarios-outer-scope.exp.json @@ -243,10 +243,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestReconnectEdge/scenarios-outer-scope.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -265,10 +266,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestReconnectEdge/scenarios-outer-scope.d2,4:4:27-4:5:28", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -287,10 +289,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestReconnectEdge/scenarios-outer-scope.d2,5:4:38-5:5:39", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestRename/arrows_trim_common_2.exp.json b/testdata/d2oracle/TestRename/arrows_trim_common_2.exp.json index ab086e248..6072c8f2c 100644 --- a/testdata/d2oracle/TestRename/arrows_trim_common_2.exp.json +++ b/testdata/d2oracle/TestRename/arrows_trim_common_2.exp.json @@ -751,7 +751,7 @@ "zIndex": 0 }, { - "id": "\"q)\"", + "id": "q)", "id_val": "q)", "references": [ { diff --git a/testdata/d2oracle/TestRename/container.exp.json b/testdata/d2oracle/TestRename/container.exp.json index 1d4593223..b46e3e1e7 100644 --- a/testdata/d2oracle/TestRename/container.exp.json +++ b/testdata/d2oracle/TestRename/container.exp.json @@ -1258,7 +1258,7 @@ "zIndex": 0 }, { - "id": "\"\"", + "id": "", "id_val": "", "references": [ { diff --git a/testdata/d2oracle/TestRename/flat.exp.json b/testdata/d2oracle/TestRename/flat.exp.json index 028991927..54bfec7f3 100644 --- a/testdata/d2oracle/TestRename/flat.exp.json +++ b/testdata/d2oracle/TestRename/flat.exp.json @@ -56,7 +56,7 @@ "edges": null, "objects": [ { - "id": "\"---\"", + "id": "---", "id_val": "---", "references": [ { diff --git a/testdata/d2oracle/TestRename/layers-basic.exp.json b/testdata/d2oracle/TestRename/layers-basic.exp.json index 3ed3c1f79..32bc3fc82 100644 --- a/testdata/d2oracle/TestRename/layers-basic.exp.json +++ b/testdata/d2oracle/TestRename/layers-basic.exp.json @@ -197,10 +197,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestRename/layers-basic.d2,4:4:24-4:5:25", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestRename/scenarios-basic.exp.json b/testdata/d2oracle/TestRename/scenarios-basic.exp.json index 3189b8434..ca3c52946 100644 --- a/testdata/d2oracle/TestRename/scenarios-basic.exp.json +++ b/testdata/d2oracle/TestRename/scenarios-basic.exp.json @@ -197,10 +197,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestRename/scenarios-basic.d2,0:0:0-0:1:1", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -219,10 +220,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestRename/scenarios-basic.d2,4:4:27-4:5:28", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestRename/scenarios-conflict.exp.json b/testdata/d2oracle/TestRename/scenarios-conflict.exp.json index 0a968b476..0116d26b0 100644 --- a/testdata/d2oracle/TestRename/scenarios-conflict.exp.json +++ b/testdata/d2oracle/TestRename/scenarios-conflict.exp.json @@ -197,10 +197,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestRename/scenarios-conflict.d2,0:0:0-0:1:1", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -219,10 +220,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestRename/scenarios-conflict.d2,4:4:27-4:7:30", "value": [ { - "string": "x 2" + "string": "x 2", + "raw_string": "x 2" } ] } diff --git a/testdata/d2oracle/TestSet/import/8.exp.json b/testdata/d2oracle/TestSet/import/8.exp.json index c4e4373ba..af3862f3c 100644 --- a/testdata/d2oracle/TestSet/import/8.exp.json +++ b/testdata/d2oracle/TestSet/import/8.exp.json @@ -249,10 +249,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "yo.d2,0:0:0-0:1:1", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -272,10 +273,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "index.d2,5:6:37-5:11:42", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -295,10 +297,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "index.d2,5:12:43-5:16:47", "value": [ { - "string": "fill" + "string": "fill", + "raw_string": "fill" } ] } diff --git a/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json b/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json index 39dd972b0..b7c8ba9b5 100644 --- a/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json @@ -248,10 +248,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:24-4:5:25", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -270,10 +271,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:4:30-5:5:31", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -293,10 +295,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:6:32-5:11:37", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -316,10 +319,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:12:38-5:19:45", "value": [ { - "string": "opacity" + "string": "opacity", + "raw_string": "opacity" } ] } diff --git a/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json b/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json index 157eadec4..a2e059610 100644 --- a/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json @@ -243,10 +243,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:4:24-4:5:25", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -266,10 +267,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:8:28-4:13:33", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -289,10 +291,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:14:34-4:21:41", "value": [ { - "string": "opacity" + "string": "opacity", + "raw_string": "opacity" } ] } diff --git a/testdata/d2oracle/TestSet/scenario-child.exp.json b/testdata/d2oracle/TestSet/scenario-child.exp.json index e2c9e891e..c21d48e46 100644 --- a/testdata/d2oracle/TestSet/scenario-child.exp.json +++ b/testdata/d2oracle/TestSet/scenario-child.exp.json @@ -380,10 +380,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-child.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -402,10 +403,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-child.d2,0:5:5-0:6:6", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -424,10 +426,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-child.d2,4:4:32-4:6:34", "value": [ { - "string": "hi" + "string": "hi", + "raw_string": "hi" } ] } @@ -491,10 +494,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-child.d2,5:16:51-5:21:56", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -514,10 +518,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-child.d2,5:22:57-5:34:69", "value": [ { - "string": "stroke-width" + "string": "stroke-width", + "raw_string": "stroke-width" } ] } diff --git a/testdata/d2oracle/TestSet/scenario-grandchild.exp.json b/testdata/d2oracle/TestSet/scenario-grandchild.exp.json index 0f8d74762..15a6f6ac7 100644 --- a/testdata/d2oracle/TestSet/scenario-grandchild.exp.json +++ b/testdata/d2oracle/TestSet/scenario-grandchild.exp.json @@ -498,10 +498,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -520,10 +521,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,0:5:5-0:6:6", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -542,10 +544,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,4:4:32-4:13:41", "value": [ { - "string": "scenarios" + "string": "scenarios", + "raw_string": "scenarios" } ] } @@ -565,10 +568,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,5:6:51-5:7:52", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -588,10 +592,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -610,10 +615,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,0:5:5-0:6:6", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -677,10 +683,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,6:20:76-6:25:81", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -700,10 +707,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,6:26:82-6:30:86", "value": [ { - "string": "bold" + "string": "bold", + "raw_string": "bold" } ] } @@ -727,10 +735,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,7:26:119-7:38:131", "value": [ { - "string": "stroke-width" + "string": "stroke-width", + "raw_string": "stroke-width" } ] } @@ -975,10 +984,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -997,10 +1007,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,0:5:5-0:6:6", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -1064,10 +1075,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,6:20:76-6:25:81", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -1087,10 +1099,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,6:26:82-6:30:86", "value": [ { - "string": "bold" + "string": "bold", + "raw_string": "bold" } ] } @@ -1114,10 +1127,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenario-grandchild.d2,7:26:119-7:38:131", "value": [ { - "string": "stroke-width" + "string": "stroke-width", + "raw_string": "stroke-width" } ] } diff --git a/testdata/d2oracle/TestSet/scenarios-arrowhead.exp.json b/testdata/d2oracle/TestSet/scenarios-arrowhead.exp.json index 6227312a5..f2cc29ee0 100644 --- a/testdata/d2oracle/TestSet/scenarios-arrowhead.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-arrowhead.exp.json @@ -654,10 +654,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-arrowhead.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -676,10 +677,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-arrowhead.d2,0:5:5-0:6:6", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -698,10 +700,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-arrowhead.d2,3:0:47-3:1:48", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -720,10 +723,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-arrowhead.d2,3:5:52-3:6:53", "value": [ { - "string": "y" + "string": "y", + "raw_string": "y" } ] } @@ -742,10 +746,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-arrowhead.d2,10:4:142-10:5:143", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -764,10 +769,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-arrowhead.d2,10:9:147-10:10:148", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -831,10 +837,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-arrowhead.d2,1:2:12-1:18:28", "value": [ { - "string": "target-arrowhead" + "string": "target-arrowhead", + "raw_string": "target-arrowhead" } ] } @@ -854,10 +861,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-arrowhead.d2,1:19:29-1:24:34", "value": [ { - "string": "shape" + "string": "shape", + "raw_string": "shape" } ] } diff --git a/testdata/d2oracle/TestSet/scenarios-edge-set.exp.json b/testdata/d2oracle/TestSet/scenarios-edge-set.exp.json index 681028ae3..656860ac7 100644 --- a/testdata/d2oracle/TestSet/scenarios-edge-set.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-edge-set.exp.json @@ -380,10 +380,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-edge-set.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -402,10 +403,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-edge-set.d2,0:5:5-0:6:6", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -424,10 +426,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-edge-set.d2,4:4:32-4:5:33", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -491,10 +494,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-edge-set.d2,5:16:50-5:21:55", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -514,10 +518,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-edge-set.d2,5:22:56-5:29:63", "value": [ { - "string": "opacity" + "string": "opacity", + "raw_string": "opacity" } ] } diff --git a/testdata/d2oracle/TestSet/scenarios-existing-edge-set.exp.json b/testdata/d2oracle/TestSet/scenarios-existing-edge-set.exp.json index 5f85a1b48..82cae340c 100644 --- a/testdata/d2oracle/TestSet/scenarios-existing-edge-set.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-existing-edge-set.exp.json @@ -388,10 +388,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-existing-edge-set.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -410,10 +411,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-existing-edge-set.d2,0:5:5-0:6:6", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -432,10 +434,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-existing-edge-set.d2,5:4:65-5:5:66", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -543,10 +546,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-existing-edge-set.d2,4:13:41-4:18:46", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -566,10 +570,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-existing-edge-set.d2,4:19:47-4:26:54", "value": [ { - "string": "opacity" + "string": "opacity", + "raw_string": "opacity" } ] } diff --git a/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json b/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json index cef4033e3..2b40ff6a0 100644 --- a/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json @@ -280,10 +280,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -313,10 +314,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:2:7-1:7:12", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -336,10 +338,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:8:13-1:15:20", "value": [ { - "string": "opacity" + "string": "opacity", + "raw_string": "opacity" } ] } @@ -374,10 +377,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:53-6:5:54", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json b/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json index 532add34b..aad9656af 100644 --- a/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json @@ -303,10 +303,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -336,10 +337,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,1:2:7-1:7:12", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -359,10 +361,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,1:8:13-1:15:20", "value": [ { - "string": "opacity" + "string": "opacity", + "raw_string": "opacity" } ] } diff --git a/testdata/d2oracle/TestSet/scenarios-multiple.exp.json b/testdata/d2oracle/TestSet/scenarios-multiple.exp.json index f49af2dfc..695d324ce 100644 --- a/testdata/d2oracle/TestSet/scenarios-multiple.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-multiple.exp.json @@ -303,10 +303,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-multiple.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -326,10 +327,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-multiple.d2,5:6:35-5:11:40", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -349,10 +351,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-multiple.d2,5:12:41-5:16:45", "value": [ { - "string": "fill" + "string": "fill", + "raw_string": "fill" } ] } @@ -381,10 +384,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-multiple.d2,6:12:63-6:19:70", "value": [ { - "string": "opacity" + "string": "opacity", + "raw_string": "opacity" } ] } @@ -419,10 +423,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-multiple.d2,4:4:27-4:5:28", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json b/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json index b201b16cc..5fc07b8ca 100644 --- a/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json @@ -366,10 +366,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -389,10 +390,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,1:2:7-1:3:8", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -422,10 +424,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:16:64-7:21:69", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -445,10 +448,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:22:70-7:29:77", "value": [ { - "string": "opacity" + "string": "opacity", + "raw_string": "opacity" } ] } diff --git a/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json b/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json index 8b8ef383c..d3f179e0b 100644 --- a/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json @@ -248,10 +248,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -271,10 +272,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:6:35-5:11:40", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -294,10 +296,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:12:41-5:19:48", "value": [ { - "string": "opacity" + "string": "opacity", + "raw_string": "opacity" } ] } @@ -332,10 +335,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:27-4:5:28", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json b/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json index c99418180..ce99229ee 100644 --- a/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json @@ -263,10 +263,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -296,10 +297,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:14:44-4:19:49", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -319,10 +321,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:20:50-4:27:57", "value": [ { - "string": "opacity" + "string": "opacity", + "raw_string": "opacity" } ] } From da0f3a5dead3f3afbe4c470ddecc2e92a194d16a Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sat, 23 Nov 2024 18:50:30 -0800 Subject: [PATCH 05/17] fix vars nil check --- d2ir/compile_test.go | 2 +- d2ir/d2ir.go | 2 +- .../d2ir/TestCompile/classes/basic.exp.json | 50 ++++++- .../TestCompile/vars/spread-in-place.exp.json | 130 ++++++++++++++++-- 4 files changed, 164 insertions(+), 20 deletions(-) diff --git a/d2ir/compile_test.go b/d2ir/compile_test.go index c514df86e..c0ac8f4c4 100644 --- a/d2ir/compile_test.go +++ b/d2ir/compile_test.go @@ -739,7 +739,7 @@ dora: { } `) assert.Success(t, err) - assert.Equal(t, "grid-columns", m.Fields[1].Map().Fields[0].Name) + assert.Equal(t, "grid-columns", m.Fields[1].Map().Fields[0].Name.ScalarString()) }, }, } diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 4de0c8ec0..f10bc63aa 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -890,7 +890,7 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b } for _, f := range m.Fields { - if !(strings.EqualFold(f.Name.ScalarString(), head.ScalarString()) && f.Name.IsUnquoted() == head.IsUnquoted()) { + if !(f.Name != nil && strings.EqualFold(f.Name.ScalarString(), head.ScalarString()) && f.Name.IsUnquoted() == head.IsUnquoted()) { continue } diff --git a/testdata/d2ir/TestCompile/classes/basic.exp.json b/testdata/d2ir/TestCompile/classes/basic.exp.json index 86e555a27..45f877d4f 100644 --- a/testdata/d2ir/TestCompile/classes/basic.exp.json +++ b/testdata/d2ir/TestCompile/classes/basic.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/classes/basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -59,19 +67,51 @@ ] }, { - "name": "classes", + "name": { + "range": "TestCompile/classes/basic.d2,1:0:2-1:7:9", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/basic.d2,2:2:15-2:7:20", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/basic.d2,3:4:28-3:9:33", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/basic.d2,3:10:34-3:14:38", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/basic.d2,3:16:40-3:22:46", diff --git a/testdata/d2ir/TestCompile/vars/spread-in-place.exp.json b/testdata/d2ir/TestCompile/vars/spread-in-place.exp.json index f56925645..384c3a9d9 100644 --- a/testdata/d2ir/TestCompile/vars/spread-in-place.exp.json +++ b/testdata/d2ir/TestCompile/vars/spread-in-place.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "vars", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,0:0:0-0:4:4", + "value": [ + { + "string": "vars", + "raw_string": "vars" + } + ] + }, "composite": { "fields": [ { - "name": "person-shape", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,1:2:10-1:14:22", + "value": [ + { + "string": "person-shape", + "raw_string": "person-shape" + } + ] + }, "composite": { "fields": [ { - "name": "grid-columns", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,2:4:30-2:16:42", + "value": [ + { + "string": "grid-columns", + "raw_string": "grid-columns" + } + ] + }, "primary": { "value": { "range": "TestCompile/vars/spread-in-place.d2,2:18:44-2:19:45", @@ -80,7 +104,15 @@ ] }, { - "name": "grid-rows", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,3:4:50-3:13:59", + "value": [ + { + "string": "grid-rows", + "raw_string": "grid-rows" + } + ] + }, "primary": { "value": { "range": "TestCompile/vars/spread-in-place.d2,3:15:61-3:16:62", @@ -151,7 +183,15 @@ ] }, { - "name": "grid-gap", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,4:4:67-4:12:75", + "value": [ + { + "string": "grid-gap", + "raw_string": "grid-gap" + } + ] + }, "primary": { "value": { "range": "TestCompile/vars/spread-in-place.d2,4:14:77-4:15:78", @@ -222,7 +262,15 @@ ] }, { - "name": "head", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,5:4:83-5:8:87", + "value": [ + { + "string": "head", + "raw_string": "head" + } + ] + }, "references": [ { "string": { @@ -280,7 +328,15 @@ ] }, { - "name": "body", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,6:4:92-6:8:96", + "value": [ + { + "string": "body", + "raw_string": "body" + } + ] + }, "references": [ { "string": { @@ -763,11 +819,27 @@ ] }, { - "name": "dora", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,10:0:104-10:4:108", + "value": [ + { + "string": "dora", + "raw_string": "dora" + } + ] + }, "composite": { "fields": [ { - "name": "grid-columns", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,2:4:30-2:16:42", + "value": [ + { + "string": "grid-columns", + "raw_string": "grid-columns" + } + ] + }, "primary": { "value": { "range": "TestCompile/vars/spread-in-place.d2,2:18:44-2:19:45", @@ -838,7 +910,15 @@ ] }, { - "name": "grid-rows", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,3:4:50-3:13:59", + "value": [ + { + "string": "grid-rows", + "raw_string": "grid-rows" + } + ] + }, "primary": { "value": { "range": "TestCompile/vars/spread-in-place.d2,3:15:61-3:16:62", @@ -909,7 +989,15 @@ ] }, { - "name": "grid-gap", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,4:4:67-4:12:75", + "value": [ + { + "string": "grid-gap", + "raw_string": "grid-gap" + } + ] + }, "primary": { "value": { "range": "TestCompile/vars/spread-in-place.d2,4:14:77-4:15:78", @@ -980,7 +1068,15 @@ ] }, { - "name": "head", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,5:4:83-5:8:87", + "value": [ + { + "string": "head", + "raw_string": "head" + } + ] + }, "references": [ { "string": { @@ -1038,7 +1134,15 @@ ] }, { - "name": "body", + "name": { + "range": "TestCompile/vars/spread-in-place.d2,12:2:135-12:6:139", + "value": [ + { + "string": "body", + "raw_string": "body" + } + ] + }, "references": [ { "string": { From 6f7a90d157366912dcf6588f49c4b2cb61c9f33d Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sat, 23 Nov 2024 18:51:48 -0800 Subject: [PATCH 06/17] fix err msg --- d2ir/d2ir.go | 6 +- .../TestCompile/classes/inherited.exp.json | 600 ++++++++++++++++-- .../TestCompile/classes/layer-modify.exp.json | 110 +++- .../d2ir/TestCompile/classes/merge.exp.json | 120 +++- .../d2ir/TestCompile/classes/nested.exp.json | 170 ++++- .../d2ir/TestCompile/edges/chain.exp.json | 40 +- .../d2ir/TestCompile/edges/nested.exp.json | 40 +- testdata/d2ir/TestCompile/edges/root.exp.json | 20 +- .../TestCompile/edges/underscore.exp.json | 30 +- .../d2ir/TestCompile/filters/array.exp.json | 100 ++- .../d2ir/TestCompile/filters/base.exp.json | 50 +- .../d2ir/TestCompile/filters/edge.exp.json | 70 +- .../filters/label-filter/1.exp.json | 170 ++++- .../filters/label-filter/2.exp.json | 60 +- .../filters/label-filter/3.exp.json | 40 +- .../TestCompile/filters/lazy-filter.exp.json | 70 +- .../TestCompile/filters/not-basic.exp.json | 50 +- .../d2ir/TestCompile/filters/order.exp.json | 50 +- .../filters/primary-filter.exp.json | 90 ++- .../TestCompile/imports/boards-deep.exp.json | 130 +++- .../d2ir/TestCompile/imports/boards.exp.json | 90 ++- .../TestCompile/imports/merge-arrays.exp.json | 20 +- .../TestCompile/imports/nested-scope.exp.json | 30 +- .../TestCompile/imports/nested/array.exp.json | 10 +- .../TestCompile/imports/nested/map.exp.json | 30 +- .../imports/nested/scalar.exp.json | 10 +- .../imports/nested/spread.exp.json | 20 +- .../imports/nested/spread_primary.exp.json | 30 +- .../d2ir/TestCompile/imports/spread.exp.json | 10 +- .../imports/steps-inheritence.exp.json | 160 ++++- .../d2ir/TestCompile/imports/vars/1.exp.json | 30 +- .../d2ir/TestCompile/imports/vars/2.exp.json | 30 +- .../d2ir/TestCompile/imports/vars/3.exp.json | 30 +- .../layers/errs/4/good_edge.exp.json | 30 +- .../d2ir/TestCompile/layers/root.exp.json | 70 +- .../patterns/alixander-review/1.exp.json | 140 +++- .../patterns/alixander-review/2.exp.json | 40 +- .../patterns/alixander-review/3.exp.json | 80 ++- .../patterns/alixander-review/4.exp.json | 60 +- .../patterns/alixander-review/5.exp.json | 80 ++- .../patterns/alixander-review/6.exp.json | 60 +- .../patterns/alixander-review/7.exp.json | 70 +- .../patterns/alixander-review/8.exp.json | 40 +- .../d2ir/TestCompile/patterns/case/1.exp.json | 20 +- .../d2ir/TestCompile/patterns/case/2.exp.json | 20 +- .../patterns/double-glob/1.exp.json | 90 ++- .../patterns/double-glob/defaults.exp.json | 230 ++++++- .../double-glob/edge-no-container.exp.json | 60 +- .../patterns/double-glob/edge/1.exp.json | 50 +- .../patterns/double-glob/edge/2.exp.json | 30 +- .../patterns/edge-glob-index.exp.json | 80 ++- .../patterns/edge-glob-null.exp.json | 40 +- .../edge-glob-style-inherit/1.exp.json | 120 +++- .../edge-glob-style-inherit/2.exp.json | 420 ++++++++++-- .../TestCompile/patterns/edge-nexus.exp.json | 50 +- .../d2ir/TestCompile/patterns/edge/1.exp.json | 20 +- .../d2ir/TestCompile/patterns/edge/2.exp.json | 30 +- .../d2ir/TestCompile/patterns/edge/3.exp.json | 30 +- .../d2ir/TestCompile/patterns/edge/4.exp.json | 60 +- .../TestCompile/patterns/escaped.exp.json | 30 +- .../field-glob-style-inherit.exp.json | 80 ++- .../patterns/glob-edge-glob-index.exp.json | 110 +++- .../patterns/import-glob/1.exp.json | 20 +- .../patterns/import-glob/2.exp.json | 60 +- .../patterns/nested/prefix-suffix/3.exp.json | 60 +- .../TestCompile/patterns/override/1.exp.json | 30 +- .../TestCompile/patterns/override/2.exp.json | 50 +- .../TestCompile/patterns/override/3.exp.json | 100 ++- .../TestCompile/patterns/override/4.exp.json | 30 +- .../TestCompile/patterns/override/5.exp.json | 30 +- .../TestCompile/patterns/override/6.exp.json | 20 +- .../TestCompile/patterns/override/7.exp.json | 20 +- .../patterns/prefix-suffix.exp.json | 20 +- .../patterns/prefix-suffix/2.exp.json | 20 +- .../patterns/prefix-suffix/3.exp.json | 20 +- .../d2ir/TestCompile/patterns/prefix.exp.json | 20 +- .../patterns/prevent-chain-recursion.exp.json | 120 +++- .../TestCompile/patterns/reserved.exp.json | 60 +- .../TestCompile/patterns/scenarios.exp.json | 100 ++- .../patterns/single-glob/defaults.exp.json | 260 +++++++- .../d2ir/TestCompile/patterns/suffix.exp.json | 20 +- .../patterns/table-class-exception.exp.json | 130 +++- .../patterns/triple-glob/defaults.exp.json | 240 ++++++- .../triple-glob/edge-defaults.exp.json | 280 +++++++- .../d2ir/TestCompile/scenarios/edge.exp.json | 80 ++- .../scenarios/multiple-scenario-map.exp.json | 110 +++- .../d2ir/TestCompile/scenarios/root.exp.json | 130 +++- .../d2ir/TestCompile/steps/recursive.exp.json | 250 +++++++- testdata/d2ir/TestCompile/steps/root.exp.json | 160 ++++- 89 files changed, 6474 insertions(+), 722 deletions(-) diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index f10bc63aa..87bf71fa5 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -873,7 +873,7 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b if _, ok := d2ast.ReservedKeywords[strings.ToLower(head.ScalarString())]; ok && head.IsUnquoted() { if _, ok := d2ast.CompositeReservedKeywords[strings.ToLower(head.ScalarString())]; !ok && i < len(kp.Path)-1 { - return d2parser.Errorf(kp.Path[i].Unbox(), fmt.Sprintf(`"%s" must be the last part of the key`, head)) + return d2parser.Errorf(kp.Path[i].Unbox(), fmt.Sprintf(`"%s" must be the last part of the key`, head.ScalarString())) } } @@ -882,11 +882,11 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b } if head.ScalarString() == "classes" && head.IsUnquoted() && NodeBoardKind(m) == "" { - return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head) + return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head.ScalarString()) } if findBoardKeyword(head.ScalarString()) != -1 && head.IsUnquoted() && NodeBoardKind(m) == "" { - return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head) + return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head.ScalarString()) } for _, f := range m.Fields { diff --git a/testdata/d2ir/TestCompile/classes/inherited.exp.json b/testdata/d2ir/TestCompile/classes/inherited.exp.json index 1cce8f672..e0eeeaccd 100644 --- a/testdata/d2ir/TestCompile/classes/inherited.exp.json +++ b/testdata/d2ir/TestCompile/classes/inherited.exp.json @@ -1,19 +1,51 @@ { "fields": [ { - "name": "classes", + "name": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", @@ -452,27 +484,75 @@ ] }, { - "name": "scenarios", + "name": { + "range": "TestCompile/classes/inherited.d2,5:0:51-5:9:60", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "hawaii", + "name": { + "range": "TestCompile/classes/inherited.d2,6:2:66-6:8:72", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + }, "composite": { "fields": [ { - "name": "classes", + "name": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", @@ -911,27 +991,75 @@ ] }, { - "name": "steps", + "name": { + "range": "TestCompile/classes/inherited.d2,7:2:78-7:7:83", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + }, "composite": { "fields": [ { - "name": "1", + "name": { + "range": "TestCompile/classes/inherited.d2,8:6:93-8:7:94", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + }, "composite": { "fields": [ { - "name": "classes", + "name": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", @@ -1232,15 +1360,39 @@ ] }, { - "name": "cherry", + "name": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", @@ -1811,7 +1963,15 @@ ] }, { - "name": "x", + "name": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -2059,23 +2219,63 @@ ] }, { - "name": "2", + "name": { + "range": "TestCompile/classes/inherited.d2,16:6:211-16:7:212", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + }, "composite": { "fields": [ { - "name": "classes", + "name": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", @@ -2376,15 +2576,39 @@ ] }, { - "name": "cherry", + "name": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/inherited.d2,11:24:161-11:27:164", @@ -2955,7 +3179,15 @@ ] }, { - "name": "x", + "name": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -3013,7 +3245,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -3159,23 +3399,63 @@ ] }, { - "name": "3", + "name": { + "range": "TestCompile/classes/inherited.d2,19:6:240-19:7:241", + "value": [ + { + "string": "3", + "raw_string": "3" + } + ] + }, "composite": { "fields": [ { - "name": "classes", + "name": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", @@ -3476,15 +3756,39 @@ ] }, { - "name": "cherry", + "name": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", @@ -4460,7 +4764,15 @@ ] }, { - "name": "x", + "name": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -4518,7 +4830,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -4819,23 +5139,63 @@ ] }, { - "name": "4", + "name": { + "range": "TestCompile/classes/inherited.d2,27:6:359-27:7:360", + "value": [ + { + "string": "4", + "raw_string": "4" + } + ] + }, "composite": { "fields": [ { - "name": "classes", + "name": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", @@ -5136,15 +5496,39 @@ ] }, { - "name": "cherry", + "name": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", @@ -6120,7 +6504,15 @@ ] }, { - "name": "x", + "name": { + "range": "TestCompile/classes/inherited.d2,14:8:195-14:9:196", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -6231,7 +6623,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/classes/inherited.d2,17:8:224-17:9:225", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -6342,15 +6742,39 @@ ] }, { - "name": "layers", + "name": { + "range": "TestCompile/classes/inherited.d2,28:8:372-28:14:378", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "deep", + "name": { + "range": "TestCompile/classes/inherited.d2,29:10:392-29:14:396", + "value": [ + { + "string": "deep", + "raw_string": "deep" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/classes/inherited.d2,30:12:412-30:13:413", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -6408,19 +6832,51 @@ ] }, { - "name": "classes", + "name": { + "range": "TestCompile/classes/inherited.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/inherited.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/inherited.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/inherited.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/inherited.d2,2:16:38-2:22:44", @@ -6721,15 +7177,39 @@ ] }, { - "name": "cherry", + "name": { + "range": "TestCompile/classes/inherited.d2,10:10:127-10:16:133", + "value": [ + { + "string": "cherry", + "raw_string": "cherry" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/inherited.d2,11:12:149-11:17:154", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/inherited.d2,11:18:155-11:22:159", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/inherited.d2,22:24:308-22:28:312", diff --git a/testdata/d2ir/TestCompile/classes/layer-modify.exp.json b/testdata/d2ir/TestCompile/classes/layer-modify.exp.json index a3cb58791..22838f5c1 100644 --- a/testdata/d2ir/TestCompile/classes/layer-modify.exp.json +++ b/testdata/d2ir/TestCompile/classes/layer-modify.exp.json @@ -1,19 +1,51 @@ { "fields": [ { - "name": "classes", + "name": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "orb", + "name": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/layer-modify.d2,2:16:36-2:22:42", @@ -452,27 +484,75 @@ ] }, { - "name": "layers", + "name": { + "range": "TestCompile/classes/layer-modify.d2,5:0:49-5:6:55", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/classes/layer-modify.d2,6:2:61-6:3:62", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "classes", + "name": { + "range": "TestCompile/classes/layer-modify.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "orb", + "name": { + "range": "TestCompile/classes/layer-modify.d2,1:2:13-1:5:16", + "value": [ + { + "string": "orb", + "raw_string": "orb" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/layer-modify.d2,2:4:24-2:9:29", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/layer-modify.d2,2:10:30-2:14:34", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/layer-modify.d2,2:16:36-2:22:42", @@ -573,7 +653,15 @@ ] }, { - "name": "stroke", + "name": { + "range": "TestCompile/classes/layer-modify.d2,7:22:88-7:28:94", + "value": [ + { + "string": "stroke", + "raw_string": "stroke" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/layer-modify.d2,7:30:96-7:33:99", diff --git a/testdata/d2ir/TestCompile/classes/merge.exp.json b/testdata/d2ir/TestCompile/classes/merge.exp.json index b192ca8a3..50d54cbd5 100644 --- a/testdata/d2ir/TestCompile/classes/merge.exp.json +++ b/testdata/d2ir/TestCompile/classes/merge.exp.json @@ -1,19 +1,51 @@ { "fields": [ { - "name": "classes", + "name": { + "range": "TestCompile/classes/merge.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/merge.d2,2:16:38-2:22:44", @@ -205,7 +237,15 @@ ] }, { - "name": "width", + "name": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/merge.d2,3:9:54-3:11:56", @@ -581,27 +621,75 @@ ] }, { - "name": "layers", + "name": { + "range": "TestCompile/classes/merge.d2,6:0:63-6:6:69", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "hawaii", + "name": { + "range": "TestCompile/classes/merge.d2,7:2:75-7:8:81", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + }, "composite": { "fields": [ { - "name": "classes", + "name": { + "range": "TestCompile/classes/merge.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/merge.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/merge.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/merge.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/merge.d2,2:16:38-2:22:44", @@ -793,7 +881,15 @@ ] }, { - "name": "width", + "name": { + "range": "TestCompile/classes/merge.d2,3:2:47-3:7:52", + "value": [ + { + "string": "width", + "raw_string": "width" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/merge.d2,10:15:130-10:19:134", diff --git a/testdata/d2ir/TestCompile/classes/nested.exp.json b/testdata/d2ir/TestCompile/classes/nested.exp.json index 007eecf1b..0c8c582de 100644 --- a/testdata/d2ir/TestCompile/classes/nested.exp.json +++ b/testdata/d2ir/TestCompile/classes/nested.exp.json @@ -1,19 +1,51 @@ { "fields": [ { - "name": "classes", + "name": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", @@ -452,23 +484,63 @@ ] }, { - "name": "layers", + "name": { + "range": "TestCompile/classes/nested.d2,5:0:51-5:6:57", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "hawaii", + "name": { + "range": "TestCompile/classes/nested.d2,6:2:63-6:8:69", + "value": [ + { + "string": "hawaii", + "raw_string": "hawaii" + } + ] + }, "composite": { "fields": [ { - "name": "layers", + "name": { + "range": "TestCompile/classes/nested.d2,7:2:75-7:8:81", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "maui", + "name": { + "range": "TestCompile/classes/nested.d2,8:6:91-8:10:95", + "value": [ + { + "string": "maui", + "raw_string": "maui" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/classes/nested.d2,9:8:107-9:9:108", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -526,19 +598,51 @@ ] }, { - "name": "classes", + "name": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", @@ -1182,19 +1286,51 @@ ] }, { - "name": "classes", + "name": { + "range": "TestCompile/classes/nested.d2,0:0:0-0:7:7", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "mango", + "name": { + "range": "TestCompile/classes/nested.d2,1:2:13-1:7:18", + "value": [ + { + "string": "mango", + "raw_string": "mango" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/classes/nested.d2,2:4:26-2:9:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/classes/nested.d2,2:10:32-2:14:36", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/classes/nested.d2,2:16:38-2:22:44", diff --git a/testdata/d2ir/TestCompile/edges/chain.exp.json b/testdata/d2ir/TestCompile/edges/chain.exp.json index 0500f467b..aeb0aafab 100644 --- a/testdata/d2ir/TestCompile/edges/chain.exp.json +++ b/testdata/d2ir/TestCompile/edges/chain.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -192,7 +200,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -569,7 +585,15 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "references": [ { "string": { @@ -946,7 +970,15 @@ ] }, { - "name": "d", + "name": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/edges/nested.exp.json b/testdata/d2ir/TestCompile/edges/nested.exp.json index 5be013c80..bb4c4c6a2 100644 --- a/testdata/d2ir/TestCompile/edges/nested.exp.json +++ b/testdata/d2ir/TestCompile/edges/nested.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "y", + "name": { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -350,11 +366,27 @@ ] }, { - "name": "z", + "name": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "composite": { "fields": [ { - "name": "p", + "name": { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/edges/root.exp.json b/testdata/d2ir/TestCompile/edges/root.exp.json index 2c986a481..b442d6bdd 100644 --- a/testdata/d2ir/TestCompile/edges/root.exp.json +++ b/testdata/d2ir/TestCompile/edges/root.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -118,7 +126,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/edges/underscore.exp.json b/testdata/d2ir/TestCompile/edges/underscore.exp.json index bdb82ef60..3145a947b 100644 --- a/testdata/d2ir/TestCompile/edges/underscore.exp.json +++ b/testdata/d2ir/TestCompile/edges/underscore.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "p", + "name": { + "range": "TestCompile/edges/underscore.d2,0:0:0-0:1:1", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -266,7 +282,15 @@ ] }, { - "name": "x", + "name": { + "range": "TestCompile/edges/underscore.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/filters/array.exp.json b/testdata/d2ir/TestCompile/filters/array.exp.json index b65935e1b..d45038668 100644 --- a/testdata/d2ir/TestCompile/filters/array.exp.json +++ b/testdata/d2ir/TestCompile/filters/array.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "the-little-cannon", + "name": { + "range": "TestCompile/filters/array.d2,0:0:0-0:17:17", + "value": [ + { + "string": "the-little-cannon", + "raw_string": "the-little-cannon" + } + ] + }, "composite": { "fields": [ { - "name": "class", + "name": { + "range": "TestCompile/filters/array.d2,1:1:22-1:6:27", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + }, "composite": { "values": [ { @@ -245,11 +261,27 @@ ] }, { - "name": "style", + "name": { + "range": "TestCompile/filters/array.d2,12:1:150-12:6:155", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "multiple", + "name": { + "range": "TestCompile/filters/array.d2,12:7:156-12:15:164", + "value": [ + { + "string": "multiple", + "raw_string": "multiple" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/array.d2,12:17:166-12:21:170", @@ -542,11 +574,27 @@ ] }, { - "name": "dino", + "name": { + "range": "TestCompile/filters/array.d2,3:0:50-3:4:54", + "value": [ + { + "string": "dino", + "raw_string": "dino" + } + ] + }, "composite": { "fields": [ { - "name": "class", + "name": { + "range": "TestCompile/filters/array.d2,4:1:59-4:6:64", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + }, "composite": { "values": [ { @@ -838,11 +886,27 @@ ] }, { - "name": "catapult", + "name": { + "range": "TestCompile/filters/array.d2,6:0:89-6:8:97", + "value": [ + { + "string": "catapult", + "raw_string": "catapult" + } + ] + }, "composite": { "fields": [ { - "name": "class", + "name": { + "range": "TestCompile/filters/array.d2,7:1:102-7:6:107", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + }, "composite": { "values": [ { @@ -1082,11 +1146,27 @@ ] }, { - "name": "style", + "name": { + "range": "TestCompile/filters/array.d2,12:1:150-12:6:155", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "multiple", + "name": { + "range": "TestCompile/filters/array.d2,12:7:156-12:15:164", + "value": [ + { + "string": "multiple", + "raw_string": "multiple" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/array.d2,12:17:166-12:21:170", diff --git a/testdata/d2ir/TestCompile/filters/base.exp.json b/testdata/d2ir/TestCompile/filters/base.exp.json index 98d52c7fe..20ddadedf 100644 --- a/testdata/d2ir/TestCompile/filters/base.exp.json +++ b/testdata/d2ir/TestCompile/filters/base.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "jacob", + "name": { + "range": "TestCompile/filters/base.d2,0:0:0-0:5:5", + "value": [ + { + "string": "jacob", + "raw_string": "jacob" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/filters/base.d2,1:1:10-1:6:15", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/base.d2,1:8:17-1:14:23", @@ -246,11 +262,27 @@ ] }, { - "name": "jeremy", + "name": { + "range": "TestCompile/filters/base.d2,3:0:26-3:6:32", + "value": [ + { + "string": "jeremy", + "raw_string": "jeremy" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/filters/base.d2,4:1:37-4:6:42", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/base.d2,4:8:44-4:17:53", @@ -457,7 +489,15 @@ ] }, { - "name": "label", + "name": { + "range": "TestCompile/filters/base.d2,8:1:81-8:6:86", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/base.d2,8:8:88-8:23:103", diff --git a/testdata/d2ir/TestCompile/filters/edge.exp.json b/testdata/d2ir/TestCompile/filters/edge.exp.json index b975d17d3..6ca3f3911 100644 --- a/testdata/d2ir/TestCompile/filters/edge.exp.json +++ b/testdata/d2ir/TestCompile/filters/edge.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -828,7 +836,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -1168,11 +1184,27 @@ "map": { "fields": [ { - "name": "source-arrowhead", + "name": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:17:27", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/filters/edge.d2,1:18:28-1:23:33", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/edge.d2,1:25:35-1:32:42", @@ -1536,11 +1568,27 @@ ] }, { - "name": "target-arrowhead", + "name": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:17:60", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/filters/edge.d2,2:18:61-2:23:66", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/edge.d2,2:25:68-2:32:75", @@ -1904,7 +1952,15 @@ ] }, { - "name": "label", + "name": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/edge.d2,9:8:177-9:32:201", diff --git a/testdata/d2ir/TestCompile/filters/label-filter/1.exp.json b/testdata/d2ir/TestCompile/filters/label-filter/1.exp.json index a6cb88ffd..919c0b32e 100644 --- a/testdata/d2ir/TestCompile/filters/label-filter/1.exp.json +++ b/testdata/d2ir/TestCompile/filters/label-filter/1.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,1:0:1-1:1:2", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/label-filter/1.d2,9:17:80-9:18:81", @@ -684,15 +708,39 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,2:0:3-2:1:4", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/label-filter/1.d2,6:17:42-6:20:45", @@ -1205,7 +1253,15 @@ ] }, { - "name": "p", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,3:0:5-3:1:6", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/label-filter/1.d2,3:3:8-3:4:9", @@ -1220,11 +1276,27 @@ "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/label-filter/1.d2,13:17:118-13:20:121", @@ -1909,15 +1981,39 @@ ] }, { - "name": "a", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,4:0:10-4:1:11", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/label-filter/1.d2,6:17:42-6:20:45", @@ -2499,15 +2595,39 @@ ] }, { - "name": "z", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,4:5:15-4:6:16", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/label-filter/1.d2,6:17:42-6:20:45", @@ -3117,11 +3237,27 @@ "map": { "fields": [ { - "name": "target-arrowhead", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,17:1:155-17:17:171", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/filters/label-filter/1.d2,17:18:172-17:23:177", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/label-filter/1.d2,17:25:179-17:32:186", diff --git a/testdata/d2ir/TestCompile/filters/label-filter/2.exp.json b/testdata/d2ir/TestCompile/filters/label-filter/2.exp.json index 0fc2941dc..43db3ce00 100644 --- a/testdata/d2ir/TestCompile/filters/label-filter/2.exp.json +++ b/testdata/d2ir/TestCompile/filters/label-filter/2.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/filters/label-filter/2.d2,8:0:83-8:1:84", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -240,7 +248,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/filters/label-filter/2.d2,8:5:88-8:6:89", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -507,11 +523,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/filters/label-filter/2.d2,1:12:13-1:17:18", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/filters/label-filter/2.d2,1:18:19-1:25:26", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/label-filter/2.d2,5:17:78-5:18:79", @@ -1844,11 +1876,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/filters/label-filter/2.d2,1:12:13-1:17:18", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/filters/label-filter/2.d2,1:18:19-1:25:26", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/label-filter/2.d2,1:27:28-1:30:31", diff --git a/testdata/d2ir/TestCompile/filters/label-filter/3.exp.json b/testdata/d2ir/TestCompile/filters/label-filter/3.exp.json index 868349959..d238e7807 100644 --- a/testdata/d2ir/TestCompile/filters/label-filter/3.exp.json +++ b/testdata/d2ir/TestCompile/filters/label-filter/3.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/filters/label-filter/3.d2,6:0:53-6:1:54", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -128,7 +136,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/filters/label-filter/3.d2,6:5:58-6:6:59", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -283,11 +299,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/filters/label-filter/3.d2,3:2:31-3:7:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/filters/label-filter/3.d2,3:8:37-3:15:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/label-filter/3.d2,3:17:46-3:20:49", diff --git a/testdata/d2ir/TestCompile/filters/lazy-filter.exp.json b/testdata/d2ir/TestCompile/filters/lazy-filter.exp.json index d61c21bc4..c7031c8ae 100644 --- a/testdata/d2ir/TestCompile/filters/lazy-filter.exp.json +++ b/testdata/d2ir/TestCompile/filters/lazy-filter.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/filters/lazy-filter.d2,6:0:42-6:1:43", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/filters/lazy-filter.d2,3:2:20-3:7:25", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/filters/lazy-filter.d2,3:8:26-3:12:30", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/lazy-filter.d2,3:14:32-3:20:38", @@ -260,11 +284,27 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/filters/lazy-filter.d2,7:0:44-7:1:45", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "label", + "name": { + "range": "TestCompile/filters/lazy-filter.d2,8:2:48-8:7:53", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/lazy-filter.d2,8:9:55-8:10:56", @@ -557,11 +597,27 @@ ] }, { - "name": "style", + "name": { + "range": "TestCompile/filters/lazy-filter.d2,3:2:20-3:7:25", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/filters/lazy-filter.d2,3:8:26-3:12:30", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/lazy-filter.d2,3:14:32-3:20:38", diff --git a/testdata/d2ir/TestCompile/filters/not-basic.exp.json b/testdata/d2ir/TestCompile/filters/not-basic.exp.json index 661fcd6b5..8038ce65b 100644 --- a/testdata/d2ir/TestCompile/filters/not-basic.exp.json +++ b/testdata/d2ir/TestCompile/filters/not-basic.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "jacob", + "name": { + "range": "TestCompile/filters/not-basic.d2,0:0:0-0:5:5", + "value": [ + { + "string": "jacob", + "raw_string": "jacob" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/filters/not-basic.d2,1:1:10-1:6:15", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/not-basic.d2,1:8:17-1:14:23", @@ -212,7 +228,15 @@ ] }, { - "name": "label", + "name": { + "range": "TestCompile/filters/not-basic.d2,8:1:82-8:6:87", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/not-basic.d2,8:8:89-8:27:108", @@ -389,11 +413,27 @@ ] }, { - "name": "jeremy", + "name": { + "range": "TestCompile/filters/not-basic.d2,3:0:26-3:6:32", + "value": [ + { + "string": "jeremy", + "raw_string": "jeremy" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/filters/not-basic.d2,4:1:37-4:6:42", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/not-basic.d2,4:8:44-4:17:53", diff --git a/testdata/d2ir/TestCompile/filters/order.exp.json b/testdata/d2ir/TestCompile/filters/order.exp.json index aaaa8b71e..db2197ee6 100644 --- a/testdata/d2ir/TestCompile/filters/order.exp.json +++ b/testdata/d2ir/TestCompile/filters/order.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "jacob", + "name": { + "range": "TestCompile/filters/order.d2,0:0:0-0:5:5", + "value": [ + { + "string": "jacob", + "raw_string": "jacob" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/filters/order.d2,1:1:10-1:6:15", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/order.d2,1:8:17-1:14:23", @@ -246,11 +262,27 @@ ] }, { - "name": "jeremy", + "name": { + "range": "TestCompile/filters/order.d2,3:0:26-3:6:32", + "value": [ + { + "string": "jeremy", + "raw_string": "jeremy" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/filters/order.d2,4:1:37-4:6:42", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/order.d2,4:8:44-4:17:53", @@ -457,7 +489,15 @@ ] }, { - "name": "label", + "name": { + "range": "TestCompile/filters/order.d2,7:1:62-7:6:67", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/order.d2,7:8:69-7:23:84", diff --git a/testdata/d2ir/TestCompile/filters/primary-filter.exp.json b/testdata/d2ir/TestCompile/filters/primary-filter.exp.json index d17adef3f..d8543a7d8 100644 --- a/testdata/d2ir/TestCompile/filters/primary-filter.exp.json +++ b/testdata/d2ir/TestCompile/filters/primary-filter.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "parent", + "name": { + "range": "TestCompile/filters/primary-filter.d2,1:0:1-1:6:7", + "value": [ + { + "string": "parent", + "raw_string": "parent" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/filters/primary-filter.d2,2:2:13-2:3:14", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": null, "edges": null @@ -350,7 +366,15 @@ ] }, { - "name": "b1", + "name": { + "range": "TestCompile/filters/primary-filter.d2,2:7:18-2:9:20", + "value": [ + { + "string": "b1", + "raw_string": "b1" + } + ] + }, "composite": { "fields": null, "edges": null @@ -695,7 +719,15 @@ ] }, { - "name": "b3", + "name": { + "range": "TestCompile/filters/primary-filter.d2,4:7:38-4:9:40", + "value": [ + { + "string": "b3", + "raw_string": "b3" + } + ] + }, "composite": { "fields": null, "edges": null @@ -816,7 +848,15 @@ ] }, { - "name": "c1", + "name": { + "range": "TestCompile/filters/primary-filter.d2,6:8:50-6:10:52", + "value": [ + { + "string": "c1", + "raw_string": "c1" + } + ] + }, "composite": { "fields": [], "edges": null @@ -1879,19 +1919,51 @@ ] }, { - "name": "classes", + "name": { + "range": "TestCompile/filters/primary-filter.d2,20:0:185-20:7:192", + "value": [ + { + "string": "classes", + "raw_string": "classes" + } + ] + }, "composite": { "fields": [ { - "name": "hidden", + "name": { + "range": "TestCompile/filters/primary-filter.d2,21:2:198-21:8:204", + "value": [ + { + "string": "hidden", + "raw_string": "hidden" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/filters/primary-filter.d2,22:4:212-22:9:217", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/filters/primary-filter.d2,23:6:227-23:10:231", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/filters/primary-filter.d2,23:12:233-23:15:236", diff --git a/testdata/d2ir/TestCompile/imports/boards-deep.exp.json b/testdata/d2ir/TestCompile/imports/boards-deep.exp.json index 3925c7050..892926586 100644 --- a/testdata/d2ir/TestCompile/imports/boards-deep.exp.json +++ b/testdata/d2ir/TestCompile/imports/boards-deep.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "a", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "link", + "name": { + "range": "index.d2,0:2:2-0:6:6", + "value": [ + { + "string": "link", + "raw_string": "link" + } + ] + }, "primary": { "value": { "range": ",0:0:0-0:0:0", @@ -196,19 +212,51 @@ ] }, { - "name": "layers", + "name": { + "range": "index.d2,0:18:18-0:24:24", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "b", + "name": { + "range": "index.d2,0:28:28-0:29:29", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "b", + "name": { + "range": "b.d2,0:0:0-0:1:1", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "link", + "name": { + "range": "b.d2,0:2:2-0:6:6", + "value": [ + { + "string": "link", + "raw_string": "link" + } + ] + }, "primary": { "value": { "range": ",0:0:0-0:0:0", @@ -399,19 +447,51 @@ ] }, { - "name": "layers", + "name": { + "range": "b.d2,0:18:18-0:24:24", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "c", + "name": { + "range": "b.d2,0:28:28-0:29:29", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "composite": { "fields": [ { - "name": "c", + "name": { + "range": "c.d2,0:0:0-0:1:1", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "composite": { "fields": [ { - "name": "link", + "name": { + "range": "c.d2,0:2:2-0:6:6", + "value": [ + { + "string": "link", + "raw_string": "link" + } + ] + }, "primary": { "value": { "range": ",0:0:0-0:0:0", @@ -602,15 +682,39 @@ ] }, { - "name": "layers", + "name": { + "range": "c.d2,0:18:18-0:24:24", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "d", + "name": { + "range": "c.d2,0:28:28-0:29:29", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "composite": { "fields": [ { - "name": "d", + "name": { + "range": "d.d2,0:0:0-0:1:1", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/imports/boards.exp.json b/testdata/d2ir/TestCompile/imports/boards.exp.json index a9de84ecf..c2e7e9a19 100644 --- a/testdata/d2ir/TestCompile/imports/boards.exp.json +++ b/testdata/d2ir/TestCompile/imports/boards.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "x", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "link", + "name": { + "range": "index.d2,0:2:2-0:6:6", + "value": [ + { + "string": "link", + "raw_string": "link" + } + ] + }, "primary": { "value": { "range": ",0:0:0-0:0:0", @@ -196,19 +212,51 @@ ] }, { - "name": "layers", + "name": { + "range": "index.d2,0:18:18-0:24:24", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "index.d2,0:28:28-0:29:29", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "y", + "name": { + "range": "x.d2,0:0:0-0:1:1", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "composite": { "fields": [ { - "name": "link", + "name": { + "range": "x.d2,0:2:2-0:6:6", + "value": [ + { + "string": "link", + "raw_string": "link" + } + ] + }, "primary": { "value": { "range": ",0:0:0-0:0:0", @@ -399,15 +447,39 @@ ] }, { - "name": "layers", + "name": { + "range": "x.d2,0:18:18-0:24:24", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "y", + "name": { + "range": "x.d2,0:28:28-0:29:29", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "composite": { "fields": [ { - "name": "meow", + "name": { + "range": "y.d2,0:0:0-0:4:4", + "value": [ + { + "string": "meow", + "raw_string": "meow" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/imports/merge-arrays.exp.json b/testdata/d2ir/TestCompile/imports/merge-arrays.exp.json index a0da3f4da..c897ec4af 100644 --- a/testdata/d2ir/TestCompile/imports/merge-arrays.exp.json +++ b/testdata/d2ir/TestCompile/imports/merge-arrays.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "x", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "class", + "name": { + "range": "index.d2,0:2:2-0:7:7", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + }, "composite": { "values": [ { diff --git a/testdata/d2ir/TestCompile/imports/nested-scope.exp.json b/testdata/d2ir/TestCompile/imports/nested-scope.exp.json index 8ed85fd1f..b3ea88c1b 100644 --- a/testdata/d2ir/TestCompile/imports/nested-scope.exp.json +++ b/testdata/d2ir/TestCompile/imports/nested-scope.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "elem", + "name": { + "range": "second.d2,0:0:0-0:4:4", + "value": [ + { + "string": "elem", + "raw_string": "elem" + } + ] + }, "composite": { "fields": [ { - "name": "third", + "name": { + "range": "third.d2,0:0:0-0:5:5", + "value": [ + { + "string": "third", + "raw_string": "third" + } + ] + }, "composite": { "fields": [ { - "name": "elem", + "name": { + "range": "third.d2,1:2:11-1:6:15", + "value": [ + { + "string": "elem", + "raw_string": "elem" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/imports/nested/array.exp.json b/testdata/d2ir/TestCompile/imports/nested/array.exp.json index c35c86882..7081d05e0 100644 --- a/testdata/d2ir/TestCompile/imports/nested/array.exp.json +++ b/testdata/d2ir/TestCompile/imports/nested/array.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "values": [ { diff --git a/testdata/d2ir/TestCompile/imports/nested/map.exp.json b/testdata/d2ir/TestCompile/imports/nested/map.exp.json index 2377f1914..39559df56 100644 --- a/testdata/d2ir/TestCompile/imports/nested/map.exp.json +++ b/testdata/d2ir/TestCompile/imports/nested/map.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "x", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "x.d2,1:1:6-1:6:11", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "x.d2,1:8:13-1:14:19", @@ -84,7 +100,15 @@ ] }, { - "name": "label", + "name": { + "range": "x.d2,2:1:21-2:6:26", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "x.d2,2:8:28-2:12:32", diff --git a/testdata/d2ir/TestCompile/imports/nested/scalar.exp.json b/testdata/d2ir/TestCompile/imports/nested/scalar.exp.json index 7fb4ed533..76558fb51 100644 --- a/testdata/d2ir/TestCompile/imports/nested/scalar.exp.json +++ b/testdata/d2ir/TestCompile/imports/nested/scalar.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "primary": { "value": { "range": "x.d2,0:3:3-0:7:7", diff --git a/testdata/d2ir/TestCompile/imports/nested/spread.exp.json b/testdata/d2ir/TestCompile/imports/nested/spread.exp.json index 6250a7662..fb9eaa89c 100644 --- a/testdata/d2ir/TestCompile/imports/nested/spread.exp.json +++ b/testdata/d2ir/TestCompile/imports/nested/spread.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "jon", + "name": { + "range": "x.d2,0:5:5-0:8:8", + "value": [ + { + "string": "jon", + "raw_string": "jon" + } + ] + }, "references": [ { "string": { @@ -59,7 +67,15 @@ ] }, { - "name": "jan", + "name": { + "range": "x.d2,0:10:10-0:13:13", + "value": [ + { + "string": "jan", + "raw_string": "jan" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/imports/nested/spread_primary.exp.json b/testdata/d2ir/TestCompile/imports/nested/spread_primary.exp.json index d712911fe..f8c0489a4 100644 --- a/testdata/d2ir/TestCompile/imports/nested/spread_primary.exp.json +++ b/testdata/d2ir/TestCompile/imports/nested/spread_primary.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "q", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, "primary": { "value": { "range": "x.d2,0:3:3-0:7:7", @@ -16,7 +24,15 @@ "composite": { "fields": [ { - "name": "jon", + "name": { + "range": "x.d2,0:10:10-0:13:13", + "value": [ + { + "string": "jon", + "raw_string": "jon" + } + ] + }, "references": [ { "string": { @@ -74,7 +90,15 @@ ] }, { - "name": "jan", + "name": { + "range": "x.d2,0:15:15-0:18:18", + "value": [ + { + "string": "jan", + "raw_string": "jan" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/imports/spread.exp.json b/testdata/d2ir/TestCompile/imports/spread.exp.json index db398ce59..d1901521b 100644 --- a/testdata/d2ir/TestCompile/imports/spread.exp.json +++ b/testdata/d2ir/TestCompile/imports/spread.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "x.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "primary": { "value": { "range": "x.d2,0:3:3-0:7:7", diff --git a/testdata/d2ir/TestCompile/imports/steps-inheritence.exp.json b/testdata/d2ir/TestCompile/imports/steps-inheritence.exp.json index 0218343fa..12e600fb8 100644 --- a/testdata/d2ir/TestCompile/imports/steps-inheritence.exp.json +++ b/testdata/d2ir/TestCompile/imports/steps-inheritence.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "z", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -59,15 +67,39 @@ ] }, { - "name": "scenarios", + "name": { + "range": "index.d2,0:28:28-0:37:37", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "index.d2,0:41:41-0:42:42", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -125,7 +157,15 @@ ] }, { - "name": "a", + "name": { + "range": "x.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -261,11 +301,27 @@ ] }, { - "name": "y", + "name": { + "range": "index.d2,0:48:48-0:49:49", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -323,7 +379,15 @@ ] }, { - "name": "b", + "name": { + "range": "y.d2,0:0:0-0:1:1", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -608,15 +672,39 @@ ] }, { - "name": "steps", + "name": { + "range": "index.d2,0:3:3-0:8:8", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + }, "composite": { "fields": [ { - "name": "1", + "name": { + "range": "index.d2,0:12:12-0:13:13", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -674,7 +762,15 @@ ] }, { - "name": "a", + "name": { + "range": "x.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -810,11 +906,27 @@ ] }, { - "name": "2", + "name": { + "range": "index.d2,0:19:19-0:20:20", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -872,7 +984,15 @@ ] }, { - "name": "a", + "name": { + "range": "x.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -930,7 +1050,15 @@ ] }, { - "name": "b", + "name": { + "range": "y.d2,0:0:0-0:1:1", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/imports/vars/1.exp.json b/testdata/d2ir/TestCompile/imports/vars/1.exp.json index b3f70120c..70fc1b29a 100644 --- a/testdata/d2ir/TestCompile/imports/vars/1.exp.json +++ b/testdata/d2ir/TestCompile/imports/vars/1.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "vars", + "name": { + "range": "index.d2,0:0:0-0:4:4", + "value": [ + { + "string": "vars", + "raw_string": "vars" + } + ] + }, "composite": { "fields": [ { - "name": "meow", + "name": { + "range": "x.d2,0:0:0-0:4:4", + "value": [ + { + "string": "meow", + "raw_string": "meow" + } + ] + }, "primary": { "value": { "range": "x.d2,0:6:6-0:18:18", @@ -169,7 +185,15 @@ ] }, { - "name": "q", + "name": { + "range": "index.d2,0:17:17-0:18:18", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, "primary": { "value": { "range": "x.d2,0:6:6-0:18:18", diff --git a/testdata/d2ir/TestCompile/imports/vars/2.exp.json b/testdata/d2ir/TestCompile/imports/vars/2.exp.json index c1368afb1..e87de9f66 100644 --- a/testdata/d2ir/TestCompile/imports/vars/2.exp.json +++ b/testdata/d2ir/TestCompile/imports/vars/2.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "vars", + "name": { + "range": "index.d2,0:0:0-0:4:4", + "value": [ + { + "string": "vars", + "raw_string": "vars" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "index.d2,0:8:8-0:9:9", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "primary": { "value": { "range": "a.d2,0:11:11-0:12:12", @@ -317,7 +333,15 @@ ] }, { - "name": "hi", + "name": { + "range": "a.d2,0:16:16-0:18:18", + "value": [ + { + "string": "hi", + "raw_string": "hi" + } + ] + }, "primary": { "value": { "range": "a.d2,0:11:11-0:12:12", diff --git a/testdata/d2ir/TestCompile/imports/vars/3.exp.json b/testdata/d2ir/TestCompile/imports/vars/3.exp.json index 68e6c6c4e..b2fec7be2 100644 --- a/testdata/d2ir/TestCompile/imports/vars/3.exp.json +++ b/testdata/d2ir/TestCompile/imports/vars/3.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "vars", + "name": { + "range": "a.d2,0:0:0-0:4:4", + "value": [ + { + "string": "vars", + "raw_string": "vars" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "a.d2,0:8:8-0:9:9", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "primary": { "value": { "range": "index.d2,0:18:18-0:19:19", @@ -317,7 +333,15 @@ ] }, { - "name": "hi", + "name": { + "range": "index.d2,0:23:23-0:25:25", + "value": [ + { + "string": "hi", + "raw_string": "hi" + } + ] + }, "primary": { "value": { "range": "index.d2,0:18:18-0:19:19", diff --git a/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json b/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json index 668820d84..02d9d1eed 100644 --- a/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json +++ b/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "layers", + "name": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "y", + "name": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/layers/root.exp.json b/testdata/d2ir/TestCompile/layers/root.exp.json index eda3c52a7..7596f3e4a 100644 --- a/testdata/d2ir/TestCompile/layers/root.exp.json +++ b/testdata/d2ir/TestCompile/layers/root.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -118,7 +126,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -235,23 +251,63 @@ ] }, { - "name": "layers", + "name": { + "range": "TestCompile/layers/root.d2,1:0:7-1:6:13", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "bingo", + "name": { + "range": "TestCompile/layers/root.d2,2:1:18-2:6:23", + "value": [ + { + "string": "bingo", + "raw_string": "bingo" + } + ] + }, "composite": { "fields": [ { - "name": "p", + "name": { + "range": "TestCompile/layers/root.d2,2:10:27-2:11:28", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "composite": { "fields": [ { - "name": "q", + "name": { + "range": "TestCompile/layers/root.d2,2:12:29-2:13:30", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "TestCompile/layers/root.d2,2:14:31-2:15:32", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/1.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/1.exp.json index b6516bba8..b506ac4bf 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/1.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,5:0:65-5:1:66", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", @@ -146,7 +170,15 @@ ] }, { - "name": "multiple", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", + "value": [ + { + "string": "multiple", + "raw_string": "multiple" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", @@ -3723,7 +3755,15 @@ ] }, { - "name": "shape", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", @@ -4689,15 +4729,39 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,6:2:72-6:3:73", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", @@ -5687,7 +5751,15 @@ ] }, { - "name": "shape", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", @@ -6610,23 +6682,63 @@ ] }, { - "name": "layers", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,9:0:77-9:6:83", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "next", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,10:2:89-10:6:93", + "value": [ + { + "string": "next", + "raw_string": "next" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,11:4:101-11:5:102", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/2.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/2.exp.json index d88480af2..f8ffd52a6 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/2.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/alixander-review/2.d2,1:0:1-1:1:2", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -59,7 +67,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -654,7 +670,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/alixander-review/2.d2,5:0:12-5:1:13", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -712,7 +736,15 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/alixander-review/2.d2,6:0:14-6:1:15", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/3.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/3.exp.json index 1defbbfb0..42b241363 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/3.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/3.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "b", + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -899,7 +915,15 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "references": [ { "string": { @@ -1644,19 +1668,51 @@ ] }, { - "name": "layers", + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,5:0:16-5:6:22", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,6:2:28-6:3:29", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "composite": { "fields": [ { - "name": "d", + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,7:4:37-7:5:38", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "composite": { "fields": [ { - "name": "b", + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -2434,7 +2490,15 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/4.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/4.exp.json index 3b9a8519e..7014f5396 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/4.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/4.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "child", + "name": { + "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", + "value": [ + { + "string": "child", + "raw_string": "child" + } + ] + }, "references": [ { "string": { @@ -579,11 +595,27 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/alixander-review/4.d2,4:0:13-4:1:14", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "child", + "name": { + "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", + "value": [ + { + "string": "child", + "raw_string": "child" + } + ] + }, "references": [ { "string": { @@ -987,11 +1019,27 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/alixander-review/4.d2,5:0:15-5:1:16", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "composite": { "fields": [ { - "name": "child", + "name": { + "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", + "value": [ + { + "string": "child", + "raw_string": "child" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/5.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/5.exp.json index d7c15fa34..141698860 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/5.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/5.exp.json @@ -1,23 +1,63 @@ { "fields": [ { - "name": "scenarios", + "name": { + "range": "TestCompile/patterns/alixander-review/5.d2,3:0:21-3:9:30", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "b", + "name": { + "range": "TestCompile/patterns/alixander-review/5.d2,4:2:36-4:3:37", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", @@ -1176,15 +1216,39 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:9:50-5:10:51", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/6.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/6.exp.json index de8c8b7c4..c5fe6579c 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/6.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/6.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/alixander-review/6.d2,3:0:33-3:1:34", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -240,7 +248,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/patterns/alixander-review/6.d2,3:5:38-3:6:39", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -507,11 +523,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/alixander-review/6.d2,1:12:13-1:17:18", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/alixander-review/6.d2,1:18:19-1:25:26", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/6.d2,1:27:28-1:30:31", @@ -1130,11 +1162,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/alixander-review/6.d2,1:12:13-1:17:18", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/alixander-review/6.d2,1:18:19-1:25:26", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/6.d2,1:27:28-1:30:31", diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/7.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/7.exp.json index f10e20827..33c4e7195 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/7.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/7.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "table", + "name": { + "range": "TestCompile/patterns/alixander-review/7.d2,8:0:53-8:5:58", + "value": [ + { + "string": "table", + "raw_string": "table" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/alixander-review/7.d2,2:2:8-2:7:13", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/alixander-review/7.d2,2:8:14-2:12:18", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/7.d2,9:14:76-9:18:80", @@ -541,7 +565,15 @@ ] }, { - "name": "shape", + "name": { + "range": "TestCompile/patterns/alixander-review/7.d2,10:2:83-10:7:88", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/7.d2,10:9:90-10:18:99", @@ -620,7 +652,15 @@ ] }, { - "name": "a", + "name": { + "range": "TestCompile/patterns/alixander-review/7.d2,11:2:102-11:3:103", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/7.d2,11:5:105-11:6:106", @@ -635,11 +675,27 @@ "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/alixander-review/7.d2,5:2:34-5:7:39", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/alixander-review/7.d2,5:8:40-5:12:44", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/7.d2,5:14:46-5:17:49", diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/8.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/8.exp.json index 8beb437d0..d1770ba79 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/8.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/8.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "b", + "name": { + "range": "TestCompile/patterns/alixander-review/8.d2,4:0:62-4:1:63", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -118,7 +126,15 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/alixander-review/8.d2,4:5:67-4:6:68", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "references": [ { "string": { @@ -252,11 +268,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/alixander-review/8.d2,2:12:43-2:17:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "stroke", + "name": { + "range": "TestCompile/patterns/alixander-review/8.d2,2:18:49-2:24:55", + "value": [ + { + "string": "stroke", + "raw_string": "stroke" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/alixander-review/8.d2,2:26:57-2:29:60", diff --git a/testdata/d2ir/TestCompile/patterns/case/1.exp.json b/testdata/d2ir/TestCompile/patterns/case/1.exp.json index 5d27f6319..bf15513f5 100644 --- a/testdata/d2ir/TestCompile/patterns/case/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/case/1.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "animal", + "name": { + "range": "TestCompile/patterns/case/1.d2,0:0:0-0:6:6", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/case/1.d2,2:4:29-2:11:36", @@ -80,7 +88,15 @@ ] }, { - "name": "action", + "name": { + "range": "TestCompile/patterns/case/1.d2,1:0:13-1:6:19", + "value": [ + { + "string": "action", + "raw_string": "action" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/case/1.d2,2:4:29-2:11:36", diff --git a/testdata/d2ir/TestCompile/patterns/case/2.exp.json b/testdata/d2ir/TestCompile/patterns/case/2.exp.json index c0331792b..7ba09d8c0 100644 --- a/testdata/d2ir/TestCompile/patterns/case/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/case/2.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "diddy kong", + "name": { + "range": "TestCompile/patterns/case/2.d2,0:0:0-0:10:10", + "value": [ + { + "string": "diddy kong", + "raw_string": "diddy kong" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/case/2.d2,2:7:30-2:10:33", @@ -70,7 +78,15 @@ ] }, { - "name": "Donkey Kong", + "name": { + "range": "TestCompile/patterns/case/2.d2,1:0:11-1:11:22", + "value": [ + { + "string": "Donkey Kong", + "raw_string": "Donkey Kong" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/case/2.d2,2:7:30-2:10:33", diff --git a/testdata/d2ir/TestCompile/patterns/double-glob/1.exp.json b/testdata/d2ir/TestCompile/patterns/double-glob/1.exp.json index 5c880b983..da8744885 100644 --- a/testdata/d2ir/TestCompile/patterns/double-glob/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/double-glob/1.exp.json @@ -1,19 +1,51 @@ { "fields": [ { - "name": "shared", + "name": { + "range": "TestCompile/patterns/double-glob/1.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + }, "composite": { "fields": [ { - "name": "animate", + "name": { + "range": "TestCompile/patterns/double-glob/1.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/double-glob/1.d2,2:3:32-2:8:37", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/double-glob/1.d2,2:9:38-2:13:42", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/double-glob/1.d2,2:15:44-2:18:47", @@ -350,15 +382,39 @@ ] }, { - "name": "animal", + "name": { + "range": "TestCompile/patterns/double-glob/1.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/double-glob/1.d2,2:3:32-2:8:37", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/double-glob/1.d2,2:9:38-2:13:42", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/double-glob/1.d2,2:15:44-2:18:47", @@ -695,11 +751,27 @@ ] }, { - "name": "style", + "name": { + "range": "TestCompile/patterns/double-glob/1.d2,2:3:32-2:8:37", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/double-glob/1.d2,2:9:38-2:13:42", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/double-glob/1.d2,2:15:44-2:18:47", diff --git a/testdata/d2ir/TestCompile/patterns/double-glob/defaults.exp.json b/testdata/d2ir/TestCompile/patterns/double-glob/defaults.exp.json index 1abe7f643..c633a8199 100644 --- a/testdata/d2ir/TestCompile/patterns/double-glob/defaults.exp.json +++ b/testdata/d2ir/TestCompile/patterns/double-glob/defaults.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,4:0:22-4:1:23", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,1:1:7-1:6:12", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/double-glob/defaults.d2,1:8:14-1:12:18", @@ -143,11 +159,27 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,5:0:24-5:1:25", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,1:1:7-1:6:12", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/double-glob/defaults.d2,1:8:14-1:12:18", @@ -285,11 +317,27 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,6:0:26-6:1:27", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,1:1:7-1:6:12", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/double-glob/defaults.d2,1:8:14-1:12:18", @@ -427,11 +475,27 @@ ] }, { - "name": "d", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,7:0:28-7:1:29", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,1:1:7-1:6:12", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/double-glob/defaults.d2,1:8:14-1:12:18", @@ -569,19 +633,51 @@ ] }, { - "name": "scenarios", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,9:0:31-9:9:40", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,9:10:41-9:11:42", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,4:0:22-4:1:23", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,1:1:7-1:6:12", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/double-glob/defaults.d2,1:8:14-1:12:18", @@ -782,11 +878,27 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,5:0:24-5:1:25", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,1:1:7-1:6:12", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/double-glob/defaults.d2,1:8:14-1:12:18", @@ -987,11 +1099,27 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,6:0:26-6:1:27", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,1:1:7-1:6:12", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/double-glob/defaults.d2,1:8:14-1:12:18", @@ -1192,11 +1320,27 @@ ] }, { - "name": "d", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,7:0:28-7:1:29", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,1:1:7-1:6:12", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/double-glob/defaults.d2,1:8:14-1:12:18", @@ -1397,11 +1541,27 @@ ] }, { - "name": "p", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,9:15:46-9:16:47", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,1:1:7-1:6:12", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/double-glob/defaults.d2,1:8:14-1:12:18", @@ -2323,15 +2483,39 @@ ] }, { - "name": "layers", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,10:0:50-10:6:56", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,10:7:57-10:8:58", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "p", + "name": { + "range": "TestCompile/patterns/double-glob/defaults.d2,10:12:62-10:13:63", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/double-glob/edge-no-container.exp.json b/testdata/d2ir/TestCompile/patterns/double-glob/edge-no-container.exp.json index 280e2698a..e51884ec3 100644 --- a/testdata/d2ir/TestCompile/patterns/double-glob/edge-no-container.exp.json +++ b/testdata/d2ir/TestCompile/patterns/double-glob/edge-no-container.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "zone A", + "name": { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,0:0:0-0:6:6", + "value": [ + { + "string": "zone A", + "raw_string": "zone A" + } + ] + }, "composite": { "fields": [ { - "name": "machine A", + "name": { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,1:1:11-1:10:20", + "value": [ + { + "string": "machine A", + "raw_string": "machine A" + } + ] + }, "references": [ { "string": { @@ -63,11 +79,27 @@ ] }, { - "name": "machine B", + "name": { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,2:1:22-2:10:31", + "value": [ + { + "string": "machine B", + "raw_string": "machine B" + } + ] + }, "composite": { "fields": [ { - "name": "submachine A", + "name": { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,3:2:37-3:14:49", + "value": [ + { + "string": "submachine A", + "raw_string": "submachine A" + } + ] + }, "references": [ { "string": { @@ -125,7 +157,15 @@ ] }, { - "name": "submachine B", + "name": { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,4:2:52-4:14:64", + "value": [ + { + "string": "submachine B", + "raw_string": "submachine B" + } + ] + }, "references": [ { "string": { @@ -617,7 +657,15 @@ ] }, { - "name": "load balancer", + "name": { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,7:13:83-7:26:96", + "value": [ + { + "string": "load balancer", + "raw_string": "load balancer" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/double-glob/edge/1.exp.json b/testdata/d2ir/TestCompile/patterns/double-glob/edge/1.exp.json index 1aec90b3b..ac6f162e9 100644 --- a/testdata/d2ir/TestCompile/patterns/double-glob/edge/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/double-glob/edge/1.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "fast", + "name": { + "range": "TestCompile/patterns/double-glob/edge/1.d2,0:0:0-0:4:4", + "value": [ + { + "string": "fast", + "raw_string": "fast" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/double-glob/edge/1.d2,1:2:10-1:3:11", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -63,7 +79,15 @@ ] }, { - "name": "far", + "name": { + "range": "TestCompile/patterns/double-glob/edge/1.d2,2:2:14-2:5:17", + "value": [ + { + "string": "far", + "raw_string": "far" + } + ] + }, "references": [ { "string": { @@ -376,11 +400,27 @@ ] }, { - "name": "task", + "name": { + "range": "TestCompile/patterns/double-glob/edge/1.d2,5:0:21-5:4:25", + "value": [ + { + "string": "task", + "raw_string": "task" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/double-glob/edge/1.d2,6:2:31-6:3:32", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/double-glob/edge/2.exp.json b/testdata/d2ir/TestCompile/patterns/double-glob/edge/2.exp.json index 694a4faf2..f38e7e726 100644 --- a/testdata/d2ir/TestCompile/patterns/double-glob/edge/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/double-glob/edge/2.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/double-glob/edge/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "b", + "name": { + "range": "TestCompile/patterns/double-glob/edge/2.d2,2:3:6-2:4:7", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -229,7 +245,15 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/double-glob/edge/2.d2,2:8:11-2:9:12", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/edge-glob-index.exp.json b/testdata/d2ir/TestCompile/patterns/edge-glob-index.exp.json index c35f511d5..625cbddbc 100644 --- a/testdata/d2ir/TestCompile/patterns/edge-glob-index.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge-glob-index.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/edge-glob-index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -804,7 +812,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/edge-glob-index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -1624,11 +1640,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-index.d2,3:12:33-3:17:38", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/edge-glob-index.d2,3:18:39-3:22:43", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-index.d2,3:24:45-3:27:48", @@ -2217,11 +2249,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-index.d2,3:12:33-3:17:38", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/edge-glob-index.d2,3:18:39-3:22:43", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-index.d2,3:24:45-3:27:48", @@ -2810,11 +2858,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-index.d2,3:12:33-3:17:38", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/edge-glob-index.d2,3:18:39-3:22:43", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-index.d2,3:24:45-3:27:48", diff --git a/testdata/d2ir/TestCompile/patterns/edge-glob-null.exp.json b/testdata/d2ir/TestCompile/patterns/edge-glob-null.exp.json index a61325deb..7a8ed01c5 100644 --- a/testdata/d2ir/TestCompile/patterns/edge-glob-null.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge-glob-null.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/edge-glob-null.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -118,7 +126,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/edge-glob-null.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -235,7 +251,15 @@ ] }, { - "name": "x", + "name": { + "range": "TestCompile/patterns/edge-glob-null.d2,2:0:25-2:1:26", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -352,7 +376,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/patterns/edge-glob-null.d2,2:5:30-2:6:31", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/1.exp.json b/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/1.exp.json index b78377170..241cca559 100644 --- a/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/1.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,1:0:29-1:1:30", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -164,7 +172,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,1:5:34-1:6:35", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -327,15 +343,39 @@ ] }, { - "name": "scenarios", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,5:0:61-5:9:70", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "1", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,6:2:76-6:3:77", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,1:0:29-1:1:30", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -551,7 +591,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,1:5:34-1:6:35", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -714,11 +762,27 @@ ] }, { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,0:12:12-0:17:17", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,0:18:18-0:25:25", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "composite": { "fields": null, "edges": null @@ -1542,11 +1606,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,0:12:12-0:17:17", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,0:18:18-0:25:25", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,2:17:56-2:18:57", @@ -3357,11 +3437,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,0:12:12-0:17:17", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,0:18:18-0:25:25", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,2:17:56-2:18:57", diff --git a/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/2.exp.json b/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/2.exp.json index bfd84a1da..2c010d9ef 100644 --- a/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/2.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", @@ -1671,15 +1695,39 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", @@ -3232,23 +3280,63 @@ ] }, { - "name": "steps", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,4:0:56-4:5:61", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + }, "composite": { "fields": [ { - "name": "1", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", @@ -5012,15 +5100,39 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", @@ -6366,11 +6478,27 @@ ] }, { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "composite": { "fields": null, "edges": null @@ -7194,11 +7322,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", @@ -8745,19 +8889,51 @@ ] }, { - "name": "2", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", @@ -10820,15 +10996,39 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", @@ -12473,11 +12673,27 @@ ] }, { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "composite": { "fields": [], "edges": null @@ -13697,11 +13913,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", @@ -15235,19 +15467,51 @@ ] }, { - "name": "3", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,11:2:145-11:3:146", + "value": [ + { + "string": "3", + "raw_string": "3" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", @@ -17459,15 +17723,39 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:21:171-12:22:172", @@ -19570,11 +19858,27 @@ ] }, { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "composite": { "fields": [], "edges": null @@ -21190,11 +21494,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", @@ -24578,11 +24898,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", diff --git a/testdata/d2ir/TestCompile/patterns/edge-nexus.exp.json b/testdata/d2ir/TestCompile/patterns/edge-nexus.exp.json index 687051252..42fb7fc68 100644 --- a/testdata/d2ir/TestCompile/patterns/edge-nexus.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge-nexus.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/edge-nexus.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -59,7 +67,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/edge-nexus.d2,1:0:2-1:1:3", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -117,7 +133,15 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/edge-nexus.d2,2:0:4-2:1:5", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "references": [ { "string": { @@ -175,7 +199,15 @@ ] }, { - "name": "d", + "name": { + "range": "TestCompile/patterns/edge-nexus.d2,3:0:6-3:1:7", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "references": [ { "string": { @@ -233,7 +265,15 @@ ] }, { - "name": "nexus", + "name": { + "range": "TestCompile/patterns/edge-nexus.d2,4:5:13-4:10:18", + "value": [ + { + "string": "nexus", + "raw_string": "nexus" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/edge/1.exp.json b/testdata/d2ir/TestCompile/patterns/edge/1.exp.json index e961e1ac3..d550db9c1 100644 --- a/testdata/d2ir/TestCompile/patterns/edge/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge/1.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "animate", + "name": { + "range": "TestCompile/patterns/edge/1.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + }, "references": [ { "string": { @@ -59,7 +67,15 @@ ] }, { - "name": "animal", + "name": { + "range": "TestCompile/patterns/edge/1.d2,1:0:8-1:6:14", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/edge/2.exp.json b/testdata/d2ir/TestCompile/patterns/edge/2.exp.json index 02950f5d0..0679c9e6f 100644 --- a/testdata/d2ir/TestCompile/patterns/edge/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge/2.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "shared", + "name": { + "range": "TestCompile/patterns/edge/2.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + }, "composite": { "fields": [ { - "name": "animate", + "name": { + "range": "TestCompile/patterns/edge/2.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + }, "references": [ { "string": { @@ -85,7 +101,15 @@ ] }, { - "name": "animal", + "name": { + "range": "TestCompile/patterns/edge/2.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/edge/3.exp.json b/testdata/d2ir/TestCompile/patterns/edge/3.exp.json index 8d19eaaa5..563e08697 100644 --- a/testdata/d2ir/TestCompile/patterns/edge/3.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge/3.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "shared", + "name": { + "range": "TestCompile/patterns/edge/3.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + }, "composite": { "fields": [ { - "name": "animate", + "name": { + "range": "TestCompile/patterns/edge/3.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + }, "references": [ { "string": { @@ -85,7 +101,15 @@ ] }, { - "name": "animal", + "name": { + "range": "TestCompile/patterns/edge/3.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/edge/4.exp.json b/testdata/d2ir/TestCompile/patterns/edge/4.exp.json index b3fa57457..8024698a6 100644 --- a/testdata/d2ir/TestCompile/patterns/edge/4.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge/4.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "app_a", + "name": { + "range": "TestCompile/patterns/edge/4.d2,0:0:0-0:5:5", + "value": [ + { + "string": "app_a", + "raw_string": "app_a" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/edge/4.d2,1:3:12-1:4:13", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -250,7 +266,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/patterns/edge/4.d2,8:18:55-8:19:56", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -694,11 +718,27 @@ ] }, { - "name": "app_b", + "name": { + "range": "TestCompile/patterns/edge/4.d2,4:1:19-4:6:24", + "value": [ + { + "string": "app_b", + "raw_string": "app_b" + } + ] + }, "composite": { "fields": [ { - "name": "y", + "name": { + "range": "TestCompile/patterns/edge/4.d2,5:3:31-5:4:32", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -943,7 +983,15 @@ ] }, { - "name": "x", + "name": { + "range": "TestCompile/patterns/edge/4.d2,8:7:44-8:8:45", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/escaped.exp.json b/testdata/d2ir/TestCompile/patterns/escaped.exp.json index 8048e9a5a..868e2dcec 100644 --- a/testdata/d2ir/TestCompile/patterns/escaped.exp.json +++ b/testdata/d2ir/TestCompile/patterns/escaped.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "animal", + "name": { + "range": "TestCompile/patterns/escaped.d2,0:0:0-0:6:6", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/escaped.d2,0:8:8-0:12:12", @@ -80,7 +88,15 @@ ] }, { - "name": "action", + "name": { + "range": "TestCompile/patterns/escaped.d2,1:0:13-1:6:19", + "value": [ + { + "string": "action", + "raw_string": "action" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/escaped.d2,1:8:21-1:11:24", @@ -159,7 +175,15 @@ ] }, { - "name": "a*", + "name": { + "range": "TestCompile/patterns/escaped.d2,2:0:25-2:2:27", + "value": [ + { + "string": "a*", + "raw_string": "a\\*" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/escaped.d2,2:5:30-2:12:37", diff --git a/testdata/d2ir/TestCompile/patterns/field-glob-style-inherit.exp.json b/testdata/d2ir/TestCompile/patterns/field-glob-style-inherit.exp.json index 554e30926..b5c8274b6 100644 --- a/testdata/d2ir/TestCompile/patterns/field-glob-style-inherit.exp.json +++ b/testdata/d2ir/TestCompile/patterns/field-glob-style-inherit.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:17:41-2:18:42", @@ -1166,23 +1190,63 @@ ] }, { - "name": "scenarios", + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,5:0:46-5:9:55", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "1", + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,6:2:61-6:3:62", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:17:41-2:18:42", diff --git a/testdata/d2ir/TestCompile/patterns/glob-edge-glob-index.exp.json b/testdata/d2ir/TestCompile/patterns/glob-edge-glob-index.exp.json index 10b67da74..30745c840 100644 --- a/testdata/d2ir/TestCompile/patterns/glob-edge-glob-index.exp.json +++ b/testdata/d2ir/TestCompile/patterns/glob-edge-glob-index.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -342,7 +350,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -1435,7 +1451,15 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,3:0:21-3:1:22", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "references": [ { "string": { @@ -1569,11 +1593,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,4:12:40-4:17:45", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,4:18:46-4:22:50", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/glob-edge-glob-index.d2,4:24:52-4:27:55", @@ -2180,11 +2220,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,4:12:40-4:17:45", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,4:18:46-4:22:50", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/glob-edge-glob-index.d2,4:24:52-4:27:55", @@ -2791,11 +2847,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,4:12:40-4:17:45", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,4:18:46-4:22:50", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/glob-edge-glob-index.d2,4:24:52-4:27:55", @@ -3402,11 +3474,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,4:12:40-4:17:45", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,4:18:46-4:22:50", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/glob-edge-glob-index.d2,4:24:52-4:27:55", diff --git a/testdata/d2ir/TestCompile/patterns/import-glob/1.exp.json b/testdata/d2ir/TestCompile/patterns/import-glob/1.exp.json index 7c0aa92b0..11a4d9bb5 100644 --- a/testdata/d2ir/TestCompile/patterns/import-glob/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/import-glob/1.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "before", + "name": { + "range": "index.d2,0:0:0-0:6:6", + "value": [ + { + "string": "before", + "raw_string": "before" + } + ] + }, "primary": { "value": { "range": "globs.d2,2:5:24-2:9:28", @@ -70,7 +78,15 @@ ] }, { - "name": "after", + "name": { + "range": "index.d2,0:22:22-0:27:27", + "value": [ + { + "string": "after", + "raw_string": "after" + } + ] + }, "primary": { "value": { "range": "globs.d2,2:5:24-2:9:28", diff --git a/testdata/d2ir/TestCompile/patterns/import-glob/2.exp.json b/testdata/d2ir/TestCompile/patterns/import-glob/2.exp.json index a55fa2287..2d7375ac9 100644 --- a/testdata/d2ir/TestCompile/patterns/import-glob/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/import-glob/2.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "rules.d2,2:0:30-2:1:31", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "primary": { "value": { "range": "rules.d2,1:5:25-1:9:29", @@ -16,11 +24,27 @@ "composite": { "fields": [ { - "name": "style", + "name": { + "range": "rules.d2,0:4:4-0:9:9", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "rules.d2,0:10:10-0:14:14", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "rules.d2,0:16:16-0:19:19", @@ -948,7 +972,15 @@ ] }, { - "name": "hi", + "name": { + "range": "index.d2,1:0:13-1:2:15", + "value": [ + { + "string": "hi", + "raw_string": "hi" + } + ] + }, "primary": { "value": { "range": "rules.d2,1:5:25-1:9:29", @@ -963,11 +995,27 @@ "composite": { "fields": [ { - "name": "style", + "name": { + "range": "rules.d2,0:4:4-0:9:9", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "rules.d2,0:10:10-0:14:14", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "rules.d2,0:16:16-0:19:19", diff --git a/testdata/d2ir/TestCompile/patterns/nested/prefix-suffix/3.exp.json b/testdata/d2ir/TestCompile/patterns/nested/prefix-suffix/3.exp.json index c25616563..5bc579641 100644 --- a/testdata/d2ir/TestCompile/patterns/nested/prefix-suffix/3.exp.json +++ b/testdata/d2ir/TestCompile/patterns/nested/prefix-suffix/3.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "animate", + "name": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + }, "composite": { "fields": [ { - "name": "constant", + "name": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:8:8-0:16:16", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + }, "composite": { "fields": [ { - "name": "tinkertinker", + "name": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:17:17-0:29:29", + "value": [ + { + "string": "tinkertinker", + "raw_string": "tinkertinker" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:33:108-2:40:115", @@ -505,15 +529,39 @@ ] }, { - "name": "astronaut", + "name": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:9:45", + "value": [ + { + "string": "astronaut", + "raw_string": "astronaut" + } + ] + }, "composite": { "fields": [ { - "name": "constant", + "name": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:10:46-1:18:54", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + }, "composite": { "fields": [ { - "name": "thinkerthinker", + "name": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:19:55-1:33:69", + "value": [ + { + "string": "thinkerthinker", + "raw_string": "thinkerthinker" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:33:108-2:40:115", diff --git a/testdata/d2ir/TestCompile/patterns/override/1.exp.json b/testdata/d2ir/TestCompile/patterns/override/1.exp.json index 8efff4de9..2829984b4 100644 --- a/testdata/d2ir/TestCompile/patterns/override/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/override/1.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/override/1.d2,4:0:43-4:1:44", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/override/1.d2,1:3:4-1:8:9", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/override/1.d2,1:9:10-1:13:14", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/override/1.d2,2:15:38-2:18:41", diff --git a/testdata/d2ir/TestCompile/patterns/override/2.exp.json b/testdata/d2ir/TestCompile/patterns/override/2.exp.json index 54f0423bd..c976d62ad 100644 --- a/testdata/d2ir/TestCompile/patterns/override/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/override/2.exp.json @@ -1,23 +1,63 @@ { "fields": [ { - "name": "layers", + "name": { + "range": "TestCompile/patterns/override/2.d2,3:0:25-3:6:31", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "hi", + "name": { + "range": "TestCompile/patterns/override/2.d2,4:2:37-4:4:39", + "value": [ + { + "string": "hi", + "raw_string": "hi" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/override/2.d2,7:4:117-7:5:118", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/override/2.d2,1:4:5-1:9:10", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/override/2.d2,1:10:11-1:14:15", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/override/2.d2,5:19:62-5:22:65", diff --git a/testdata/d2ir/TestCompile/patterns/override/3.exp.json b/testdata/d2ir/TestCompile/patterns/override/3.exp.json index 604061dc0..c8fce0556 100644 --- a/testdata/d2ir/TestCompile/patterns/override/3.exp.json +++ b/testdata/d2ir/TestCompile/patterns/override/3.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/override/3.d2,3:0:28-3:1:29", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -118,7 +126,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/override/3.d2,3:5:33-3:6:34", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -235,23 +251,63 @@ ] }, { - "name": "layers", + "name": { + "range": "TestCompile/patterns/override/3.d2,5:0:36-5:6:42", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "hi", + "name": { + "range": "TestCompile/patterns/override/3.d2,6:2:48-6:4:50", + "value": [ + { + "string": "hi", + "raw_string": "hi" + } + ] + }, "composite": { "fields": [ { - "name": "scenarios", + "name": { + "range": "TestCompile/patterns/override/3.d2,9:4:90-9:13:99", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "b", + "name": { + "range": "TestCompile/patterns/override/3.d2,10:6:109-10:7:110", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/override/3.d2,12:8:175-12:9:176", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -368,7 +424,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/override/3.d2,12:13:180-12:14:181", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -502,7 +566,15 @@ "map": { "fields": [ { - "name": "label", + "name": { + "range": "TestCompile/patterns/override/3.d2,1:16:17-1:21:22", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/override/3.d2,7:27:81-7:30:84", @@ -8101,7 +8173,15 @@ "map": { "fields": [ { - "name": "label", + "name": { + "range": "TestCompile/patterns/override/3.d2,1:16:17-1:21:22", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/override/3.d2,1:23:24-1:25:26", diff --git a/testdata/d2ir/TestCompile/patterns/override/4.exp.json b/testdata/d2ir/TestCompile/patterns/override/4.exp.json index 40b076ead..6d3d73bb5 100644 --- a/testdata/d2ir/TestCompile/patterns/override/4.exp.json +++ b/testdata/d2ir/TestCompile/patterns/override/4.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/override/4.d2,3:0:28-3:1:29", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -157,7 +165,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/override/4.d2,3:5:33-3:6:34", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -330,7 +346,15 @@ "map": { "fields": [ { - "name": "label", + "name": { + "range": "TestCompile/patterns/override/4.d2,1:16:17-1:21:22", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/override/4.d2,4:9:47-4:12:50", diff --git a/testdata/d2ir/TestCompile/patterns/override/5.exp.json b/testdata/d2ir/TestCompile/patterns/override/5.exp.json index e73c6eed9..08d282a70 100644 --- a/testdata/d2ir/TestCompile/patterns/override/5.exp.json +++ b/testdata/d2ir/TestCompile/patterns/override/5.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/override/5.d2,4:0:74-4:1:75", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -118,7 +126,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/override/5.d2,4:5:79-4:6:80", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -252,7 +268,15 @@ "map": { "fields": [ { - "name": "label", + "name": { + "range": "TestCompile/patterns/override/5.d2,1:16:17-1:21:22", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/override/5.d2,6:23:105-6:26:108", diff --git a/testdata/d2ir/TestCompile/patterns/override/6.exp.json b/testdata/d2ir/TestCompile/patterns/override/6.exp.json index f52183c3e..2c9d0debd 100644 --- a/testdata/d2ir/TestCompile/patterns/override/6.exp.json +++ b/testdata/d2ir/TestCompile/patterns/override/6.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/override/6.d2,2:0:29-2:1:30", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [], "edges": null @@ -221,7 +229,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/override/6.d2,7:0:138-7:1:139", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [], "edges": null diff --git a/testdata/d2ir/TestCompile/patterns/override/7.exp.json b/testdata/d2ir/TestCompile/patterns/override/7.exp.json index 6658f0928..8f4638294 100644 --- a/testdata/d2ir/TestCompile/patterns/override/7.exp.json +++ b/testdata/d2ir/TestCompile/patterns/override/7.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/override/7.d2,3:0:93-3:1:94", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [], "edges": null @@ -168,7 +176,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/override/7.d2,6:0:136-6:1:137", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [], "edges": null diff --git a/testdata/d2ir/TestCompile/patterns/prefix-suffix.exp.json b/testdata/d2ir/TestCompile/patterns/prefix-suffix.exp.json index db2c68dc4..38d6844b5 100644 --- a/testdata/d2ir/TestCompile/patterns/prefix-suffix.exp.json +++ b/testdata/d2ir/TestCompile/patterns/prefix-suffix.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "tinker", + "name": { + "range": "TestCompile/patterns/prefix-suffix.d2,0:0:0-0:6:6", + "value": [ + { + "string": "tinker", + "raw_string": "tinker" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prefix-suffix.d2,2:5:31-2:12:38", @@ -80,7 +88,15 @@ ] }, { - "name": "thinker", + "name": { + "range": "TestCompile/patterns/prefix-suffix.d2,1:0:13-1:7:20", + "value": [ + { + "string": "thinker", + "raw_string": "thinker" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prefix-suffix.d2,2:5:31-2:12:38", diff --git a/testdata/d2ir/TestCompile/patterns/prefix-suffix/2.exp.json b/testdata/d2ir/TestCompile/patterns/prefix-suffix/2.exp.json index 32d2fc713..3113b66d4 100644 --- a/testdata/d2ir/TestCompile/patterns/prefix-suffix/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/prefix-suffix/2.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "tinker", + "name": { + "range": "TestCompile/patterns/prefix-suffix/2.d2,0:0:0-0:6:6", + "value": [ + { + "string": "tinker", + "raw_string": "tinker" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prefix-suffix/2.d2,2:9:35-2:16:42", @@ -80,7 +88,15 @@ ] }, { - "name": "thinker", + "name": { + "range": "TestCompile/patterns/prefix-suffix/2.d2,1:0:13-1:7:20", + "value": [ + { + "string": "thinker", + "raw_string": "thinker" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prefix-suffix/2.d2,2:9:35-2:16:42", diff --git a/testdata/d2ir/TestCompile/patterns/prefix-suffix/3.exp.json b/testdata/d2ir/TestCompile/patterns/prefix-suffix/3.exp.json index dfb1a9f64..d525b4b23 100644 --- a/testdata/d2ir/TestCompile/patterns/prefix-suffix/3.exp.json +++ b/testdata/d2ir/TestCompile/patterns/prefix-suffix/3.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "tinkertinker", + "name": { + "range": "TestCompile/patterns/prefix-suffix/3.d2,0:0:0-0:12:12", + "value": [ + { + "string": "tinkertinker", + "raw_string": "tinkertinker" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prefix-suffix/3.d2,2:17:56-2:24:63", @@ -80,7 +88,15 @@ ] }, { - "name": "thinkerthinker", + "name": { + "range": "TestCompile/patterns/prefix-suffix/3.d2,1:0:19-1:14:33", + "value": [ + { + "string": "thinkerthinker", + "raw_string": "thinkerthinker" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prefix-suffix/3.d2,2:17:56-2:24:63", diff --git a/testdata/d2ir/TestCompile/patterns/prefix.exp.json b/testdata/d2ir/TestCompile/patterns/prefix.exp.json index 920eddc82..532640cc5 100644 --- a/testdata/d2ir/TestCompile/patterns/prefix.exp.json +++ b/testdata/d2ir/TestCompile/patterns/prefix.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "animal", + "name": { + "range": "TestCompile/patterns/prefix.d2,0:0:0-0:6:6", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prefix.d2,2:4:29-2:11:36", @@ -80,7 +88,15 @@ ] }, { - "name": "action", + "name": { + "range": "TestCompile/patterns/prefix.d2,1:0:13-1:6:19", + "value": [ + { + "string": "action", + "raw_string": "action" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prefix.d2,2:4:29-2:11:36", diff --git a/testdata/d2ir/TestCompile/patterns/prevent-chain-recursion.exp.json b/testdata/d2ir/TestCompile/patterns/prevent-chain-recursion.exp.json index d75403066..ebd7e7e73 100644 --- a/testdata/d2ir/TestCompile/patterns/prevent-chain-recursion.exp.json +++ b/testdata/d2ir/TestCompile/patterns/prevent-chain-recursion.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "one", + "name": { + "range": "TestCompile/patterns/prevent-chain-recursion.d2,9:0:46-9:3:49", + "value": [ + { + "string": "one", + "raw_string": "one" + } + ] + }, "composite": { "fields": [ { - "name": "c", + "name": { + "range": "TestCompile/patterns/prevent-chain-recursion.d2,2:2:10-2:3:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prevent-chain-recursion.d2,2:5:13-2:6:14", @@ -20,11 +36,27 @@ "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/prevent-chain-recursion.d2,6:2:27-6:7:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/prevent-chain-recursion.d2,6:8:33-6:12:37", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prevent-chain-recursion.d2,6:14:39-6:17:42", @@ -285,11 +317,27 @@ ] }, { - "name": "style", + "name": { + "range": "TestCompile/patterns/prevent-chain-recursion.d2,6:2:27-6:7:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/prevent-chain-recursion.d2,6:8:33-6:12:37", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prevent-chain-recursion.d2,6:14:39-6:17:42", @@ -540,11 +588,27 @@ ] }, { - "name": "two", + "name": { + "range": "TestCompile/patterns/prevent-chain-recursion.d2,10:0:50-10:3:53", + "value": [ + { + "string": "two", + "raw_string": "two" + } + ] + }, "composite": { "fields": [ { - "name": "c", + "name": { + "range": "TestCompile/patterns/prevent-chain-recursion.d2,2:2:10-2:3:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prevent-chain-recursion.d2,2:5:13-2:6:14", @@ -559,11 +623,27 @@ "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/prevent-chain-recursion.d2,6:2:27-6:7:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/prevent-chain-recursion.d2,6:8:33-6:12:37", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prevent-chain-recursion.d2,6:14:39-6:17:42", @@ -824,11 +904,27 @@ ] }, { - "name": "style", + "name": { + "range": "TestCompile/patterns/prevent-chain-recursion.d2,6:2:27-6:7:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/prevent-chain-recursion.d2,6:8:33-6:12:37", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/prevent-chain-recursion.d2,6:14:39-6:17:42", diff --git a/testdata/d2ir/TestCompile/patterns/reserved.exp.json b/testdata/d2ir/TestCompile/patterns/reserved.exp.json index 196237058..4528cc15b 100644 --- a/testdata/d2ir/TestCompile/patterns/reserved.exp.json +++ b/testdata/d2ir/TestCompile/patterns/reserved.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "vars", + "name": { + "range": "TestCompile/patterns/reserved.d2,0:0:0-0:4:4", + "value": [ + { + "string": "vars", + "raw_string": "vars" + } + ] + }, "composite": { "fields": [ { - "name": "d2-config", + "name": { + "range": "TestCompile/patterns/reserved.d2,1:2:10-1:11:19", + "value": [ + { + "string": "d2-config", + "raw_string": "d2-config" + } + ] + }, "composite": { "fields": [ { - "name": "layout-engine", + "name": { + "range": "TestCompile/patterns/reserved.d2,2:4:27-2:17:40", + "value": [ + { + "string": "layout-engine", + "raw_string": "layout-engine" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/reserved.d2,2:19:42-2:22:45", @@ -313,7 +337,15 @@ ] }, { - "name": "Spiderman 1", + "name": { + "range": "TestCompile/patterns/reserved.d2,6:0:53-6:11:64", + "value": [ + { + "string": "Spiderman 1", + "raw_string": "Spiderman 1" + } + ] + }, "references": [ { "string": { @@ -371,7 +403,15 @@ ] }, { - "name": "Spiderman 2", + "name": { + "range": "TestCompile/patterns/reserved.d2,7:0:65-7:11:76", + "value": [ + { + "string": "Spiderman 2", + "raw_string": "Spiderman 2" + } + ] + }, "references": [ { "string": { @@ -429,7 +469,15 @@ ] }, { - "name": "Spiderman 3", + "name": { + "range": "TestCompile/patterns/reserved.d2,8:0:77-8:11:88", + "value": [ + { + "string": "Spiderman 3", + "raw_string": "Spiderman 3" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/scenarios.exp.json b/testdata/d2ir/TestCompile/patterns/scenarios.exp.json index 587b6d6c3..e7882c90c 100644 --- a/testdata/d2ir/TestCompile/patterns/scenarios.exp.json +++ b/testdata/d2ir/TestCompile/patterns/scenarios.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "scenarios", + "name": { + "range": "TestCompile/patterns/scenarios.d2,2:0:2-2:9:11", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "meow", + "name": { + "range": "TestCompile/patterns/scenarios.d2,3:2:17-3:6:21", + "value": [ + { + "string": "meow", + "raw_string": "meow" + } + ] + }, "composite": { "fields": [ { - "name": "e", + "name": { + "range": "TestCompile/patterns/scenarios.d2,4:1:26-4:2:27", + "value": [ + { + "string": "e", + "raw_string": "e" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/scenarios.d2,16:4:57-16:13:66", @@ -78,7 +102,15 @@ ] }, { - "name": "f", + "name": { + "range": "TestCompile/patterns/scenarios.d2,5:1:29-5:2:30", + "value": [ + { + "string": "f", + "raw_string": "f" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/scenarios.d2,16:4:57-16:13:66", @@ -147,7 +179,15 @@ ] }, { - "name": "g", + "name": { + "range": "TestCompile/patterns/scenarios.d2,6:1:32-6:2:33", + "value": [ + { + "string": "g", + "raw_string": "g" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/scenarios.d2,16:4:57-16:13:66", @@ -216,7 +256,15 @@ ] }, { - "name": "h", + "name": { + "range": "TestCompile/patterns/scenarios.d2,7:1:35-7:2:36", + "value": [ + { + "string": "h", + "raw_string": "h" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/scenarios.d2,16:4:57-16:13:66", @@ -2105,7 +2153,15 @@ ] }, { - "name": "a", + "name": { + "range": "TestCompile/patterns/scenarios.d2,11:0:44-11:1:45", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/scenarios.d2,16:4:57-16:13:66", @@ -2174,7 +2230,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/scenarios.d2,12:0:46-12:1:47", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/scenarios.d2,16:4:57-16:13:66", @@ -2243,7 +2307,15 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/scenarios.d2,13:0:48-13:1:49", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/scenarios.d2,16:4:57-16:13:66", @@ -2312,7 +2384,15 @@ ] }, { - "name": "d", + "name": { + "range": "TestCompile/patterns/scenarios.d2,14:0:50-14:1:51", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/scenarios.d2,16:4:57-16:13:66", diff --git a/testdata/d2ir/TestCompile/patterns/single-glob/defaults.exp.json b/testdata/d2ir/TestCompile/patterns/single-glob/defaults.exp.json index ab8e85c96..9fa0ea237 100644 --- a/testdata/d2ir/TestCompile/patterns/single-glob/defaults.exp.json +++ b/testdata/d2ir/TestCompile/patterns/single-glob/defaults.exp.json @@ -1,15 +1,39 @@ { "fields": [ { - "name": "wrapper", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", @@ -169,11 +193,27 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", @@ -333,11 +373,27 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", @@ -497,11 +553,27 @@ ] }, { - "name": "d", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", @@ -2527,23 +2599,63 @@ ] }, { - "name": "scenarios", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:0:70-9:9:79", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:10:80-9:11:81", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "wrapper", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", @@ -2703,11 +2815,27 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", @@ -2867,11 +2995,27 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", @@ -3031,11 +3175,27 @@ ] }, { - "name": "d", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", @@ -3195,11 +3355,27 @@ ] }, { - "name": "p", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", @@ -6138,19 +6314,51 @@ ] }, { - "name": "layers", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,10:0:97-10:6:103", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,10:7:104-10:8:105", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "wrapper", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,10:12:109-10:19:116", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] + }, "composite": { "fields": [ { - "name": "p", + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,10:20:117-10:21:118", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/suffix.exp.json b/testdata/d2ir/TestCompile/patterns/suffix.exp.json index b0cb6cbeb..39d2dcfb7 100644 --- a/testdata/d2ir/TestCompile/patterns/suffix.exp.json +++ b/testdata/d2ir/TestCompile/patterns/suffix.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "animal", + "name": { + "range": "TestCompile/patterns/suffix.d2,0:0:0-0:6:6", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/suffix.d2,2:4:30-2:11:37", @@ -80,7 +88,15 @@ ] }, { - "name": "jingle", + "name": { + "range": "TestCompile/patterns/suffix.d2,1:0:13-1:6:19", + "value": [ + { + "string": "jingle", + "raw_string": "jingle" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/suffix.d2,2:4:30-2:11:37", diff --git a/testdata/d2ir/TestCompile/patterns/table-class-exception.exp.json b/testdata/d2ir/TestCompile/patterns/table-class-exception.exp.json index 8b4fedc2d..850fc7695 100644 --- a/testdata/d2ir/TestCompile/patterns/table-class-exception.exp.json +++ b/testdata/d2ir/TestCompile/patterns/table-class-exception.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "table", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,9:0:46-9:5:51", + "value": [ + { + "string": "table", + "raw_string": "table" + } + ] + }, "composite": { "fields": [ { - "name": "c", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,2:2:10-2:3:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/table-class-exception.d2,2:5:13-2:6:14", @@ -20,11 +36,27 @@ "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,6:2:27-6:7:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,6:8:33-6:12:37", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/table-class-exception.d2,6:14:39-6:17:42", @@ -285,11 +317,27 @@ ] }, { - "name": "style", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,6:2:27-6:7:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,6:8:33-6:12:37", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/table-class-exception.d2,6:14:39-6:17:42", @@ -481,7 +529,15 @@ ] }, { - "name": "shape", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,10:2:57-10:7:62", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/table-class-exception.d2,10:9:64-10:18:73", @@ -560,7 +616,15 @@ ] }, { - "name": "a", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,11:2:76-11:3:77", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/table-class-exception.d2,11:5:79-11:6:80", @@ -575,11 +639,27 @@ "composite": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,6:2:27-6:7:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "fill", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,6:8:33-6:12:37", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/table-class-exception.d2,6:14:39-6:17:42", @@ -971,11 +1051,27 @@ ] }, { - "name": "class", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,14:0:84-14:5:89", + "value": [ + { + "string": "class", + "raw_string": "class" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,15:2:95-15:7:100", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/table-class-exception.d2,15:9:102-15:14:107", @@ -1054,7 +1150,15 @@ ] }, { - "name": "a", + "name": { + "range": "TestCompile/patterns/table-class-exception.d2,16:2:110-16:3:111", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/table-class-exception.d2,16:5:113-16:6:114", diff --git a/testdata/d2ir/TestCompile/patterns/triple-glob/defaults.exp.json b/testdata/d2ir/TestCompile/patterns/triple-glob/defaults.exp.json index 0607e99f9..2373213b4 100644 --- a/testdata/d2ir/TestCompile/patterns/triple-glob/defaults.exp.json +++ b/testdata/d2ir/TestCompile/patterns/triple-glob/defaults.exp.json @@ -1,11 +1,27 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,4:0:23-4:1:24", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,1:1:8-1:6:13", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/defaults.d2,1:8:15-1:12:19", @@ -143,11 +159,27 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,5:0:25-5:1:26", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,1:1:8-1:6:13", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/defaults.d2,1:8:15-1:12:19", @@ -285,11 +317,27 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,6:0:27-6:1:28", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,1:1:8-1:6:13", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/defaults.d2,1:8:15-1:12:19", @@ -427,11 +475,27 @@ ] }, { - "name": "d", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,7:0:29-7:1:30", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,1:1:8-1:6:13", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/defaults.d2,1:8:15-1:12:19", @@ -569,19 +633,51 @@ ] }, { - "name": "scenarios", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,9:0:32-9:9:41", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,9:10:42-9:11:43", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,4:0:23-4:1:24", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,1:1:8-1:6:13", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/defaults.d2,1:8:15-1:12:19", @@ -782,11 +878,27 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,5:0:25-5:1:26", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,1:1:8-1:6:13", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/defaults.d2,1:8:15-1:12:19", @@ -987,11 +1099,27 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,6:0:27-6:1:28", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,1:1:8-1:6:13", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/defaults.d2,1:8:15-1:12:19", @@ -1192,11 +1320,27 @@ ] }, { - "name": "d", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,7:0:29-7:1:30", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,1:1:8-1:6:13", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/defaults.d2,1:8:15-1:12:19", @@ -1397,11 +1541,27 @@ ] }, { - "name": "p", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,9:15:47-9:16:48", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,1:1:8-1:6:13", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/defaults.d2,1:8:15-1:12:19", @@ -2339,19 +2499,51 @@ ] }, { - "name": "layers", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,10:0:51-10:6:57", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,10:7:58-10:8:59", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "p", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,10:12:63-10:13:64", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/defaults.d2,1:1:8-1:6:13", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/defaults.d2,1:8:15-1:12:19", diff --git a/testdata/d2ir/TestCompile/patterns/triple-glob/edge-defaults.exp.json b/testdata/d2ir/TestCompile/patterns/triple-glob/edge-defaults.exp.json index 9b2766ddb..c5c892e94 100644 --- a/testdata/d2ir/TestCompile/patterns/triple-glob/edge-defaults.exp.json +++ b/testdata/d2ir/TestCompile/patterns/triple-glob/edge-defaults.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,4:0:55-4:1:56", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -118,7 +126,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,4:5:60-4:6:61", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -235,7 +251,15 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,5:0:62-5:1:63", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "references": [ { "string": { @@ -352,7 +376,15 @@ ] }, { - "name": "d", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,5:5:67-5:6:68", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "references": [ { "string": { @@ -469,15 +501,39 @@ ] }, { - "name": "scenarios", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,7:0:70-7:9:79", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,7:10:80-7:11:81", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,4:0:55-4:1:56", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -594,7 +650,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,4:5:60-4:6:61", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -711,7 +775,15 @@ ] }, { - "name": "c", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,5:0:62-5:1:63", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, "references": [ { "string": { @@ -828,7 +900,15 @@ ] }, { - "name": "d", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,5:5:67-5:6:68", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, "references": [ { "string": { @@ -945,7 +1025,15 @@ ] }, { - "name": "p", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,7:15:85-7:16:86", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "references": [ { "string": { @@ -1062,7 +1150,15 @@ ] }, { - "name": "q", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,7:20:90-7:21:91", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, "references": [ { "string": { @@ -1196,11 +1292,27 @@ "map": { "fields": [ { - "name": "target-arrowhead", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:1:20-1:17:36", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:18:37-1:23:42", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:25:44-1:32:51", @@ -2035,11 +2147,27 @@ "map": { "fields": [ { - "name": "target-arrowhead", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:1:20-1:17:36", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:18:37-1:23:42", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:25:44-1:32:51", @@ -2874,11 +3002,27 @@ "map": { "fields": [ { - "name": "target-arrowhead", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:1:20-1:17:36", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:18:37-1:23:42", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:25:44-1:32:51", @@ -5047,15 +5191,39 @@ ] }, { - "name": "layers", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,8:0:94-8:6:100", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,8:7:101-8:8:102", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "composite": { "fields": [ { - "name": "j", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,8:12:106-8:13:107", + "value": [ + { + "string": "j", + "raw_string": "j" + } + ] + }, "references": [ { "string": { @@ -5172,7 +5340,15 @@ ] }, { - "name": "f", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,8:17:111-8:18:112", + "value": [ + { + "string": "f", + "raw_string": "f" + } + ] + }, "references": [ { "string": { @@ -5306,11 +5482,27 @@ "map": { "fields": [ { - "name": "target-arrowhead", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:1:20-1:17:36", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:18:37-1:23:42", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:25:44-1:32:51", @@ -7496,11 +7688,27 @@ "map": { "fields": [ { - "name": "target-arrowhead", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:1:20-1:17:36", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:18:37-1:23:42", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:25:44-1:32:51", @@ -7970,11 +8178,27 @@ "map": { "fields": [ { - "name": "target-arrowhead", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:1:20-1:17:36", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + }, "composite": { "fields": [ { - "name": "shape", + "name": { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:18:37-1:23:42", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, "primary": { "value": { "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,1:25:44-1:32:51", diff --git a/testdata/d2ir/TestCompile/scenarios/edge.exp.json b/testdata/d2ir/TestCompile/scenarios/edge.exp.json index 86c00ee6e..9e6e0e618 100644 --- a/testdata/d2ir/TestCompile/scenarios/edge.exp.json +++ b/testdata/d2ir/TestCompile/scenarios/edge.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -118,7 +126,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -235,15 +251,39 @@ ] }, { - "name": "scenarios", + "name": { + "range": "TestCompile/scenarios/edge.d2,1:0:7-1:9:16", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "1", + "name": { + "range": "TestCompile/scenarios/edge.d2,2:2:22-2:3:23", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -510,7 +550,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -794,11 +842,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/scenarios/edge.d2,3:16:43-3:21:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/scenarios/edge.d2,3:22:49-3:29:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/scenarios/edge.d2,3:31:58-3:34:61", diff --git a/testdata/d2ir/TestCompile/scenarios/multiple-scenario-map.exp.json b/testdata/d2ir/TestCompile/scenarios/multiple-scenario-map.exp.json index 603b8a13f..6c2986ff7 100644 --- a/testdata/d2ir/TestCompile/scenarios/multiple-scenario-map.exp.json +++ b/testdata/d2ir/TestCompile/scenarios/multiple-scenario-map.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -164,7 +172,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -327,15 +343,39 @@ ] }, { - "name": "scenarios", + "name": { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,1:0:31-1:9:40", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "1", + "name": { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,2:2:46-2:3:47", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + }, "composite": { "fields": [ { - "name": "a", + "name": { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, "references": [ { "string": { @@ -648,7 +688,15 @@ ] }, { - "name": "b", + "name": { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, "references": [ { "string": { @@ -961,7 +1009,15 @@ ] }, { - "name": "z", + "name": { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,6:1:98-6:2:99", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -1036,11 +1092,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:10:10-0:15:15", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:16:16-0:23:23", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/scenarios/multiple-scenario-map.d2,3:31:82-3:34:85", @@ -2283,11 +2355,27 @@ "map": { "fields": [ { - "name": "style", + "name": { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:10:10-0:15:15", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, "composite": { "fields": [ { - "name": "opacity", + "name": { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:16:16-0:23:23", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, "primary": { "value": { "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:25:25-0:28:28", diff --git a/testdata/d2ir/TestCompile/scenarios/root.exp.json b/testdata/d2ir/TestCompile/scenarios/root.exp.json index 93e644f22..189ae71f1 100644 --- a/testdata/d2ir/TestCompile/scenarios/root.exp.json +++ b/testdata/d2ir/TestCompile/scenarios/root.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -118,7 +126,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -235,15 +251,39 @@ ] }, { - "name": "scenarios", + "name": { + "range": "TestCompile/scenarios/root.d2,1:0:7-1:9:16", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "bingo", + "name": { + "range": "TestCompile/scenarios/root.d2,2:1:21-2:6:26", + "value": [ + { + "string": "bingo", + "raw_string": "bingo" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -360,7 +400,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -477,15 +525,39 @@ ] }, { - "name": "p", + "name": { + "range": "TestCompile/scenarios/root.d2,2:10:30-2:11:31", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "composite": { "fields": [ { - "name": "q", + "name": { + "range": "TestCompile/scenarios/root.d2,2:12:32-2:13:33", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "TestCompile/scenarios/root.d2,2:14:34-2:15:35", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -1007,11 +1079,27 @@ ] }, { - "name": "nuclear", + "name": { + "range": "TestCompile/scenarios/root.d2,3:1:39-3:8:46", + "value": [ + { + "string": "nuclear", + "raw_string": "nuclear" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -1128,7 +1216,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -1245,7 +1341,15 @@ ] }, { - "name": "quiche", + "name": { + "range": "TestCompile/scenarios/root.d2,3:12:50-3:18:56", + "value": [ + { + "string": "quiche", + "raw_string": "quiche" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/steps/recursive.exp.json b/testdata/d2ir/TestCompile/steps/recursive.exp.json index 595f96cc7..0afdd842b 100644 --- a/testdata/d2ir/TestCompile/steps/recursive.exp.json +++ b/testdata/d2ir/TestCompile/steps/recursive.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -118,7 +126,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -235,15 +251,39 @@ ] }, { - "name": "steps", + "name": { + "range": "TestCompile/steps/recursive.d2,1:0:7-1:5:12", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + }, "composite": { "fields": [ { - "name": "bingo", + "name": { + "range": "TestCompile/steps/recursive.d2,2:1:17-2:6:22", + "value": [ + { + "string": "bingo", + "raw_string": "bingo" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -360,7 +400,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -477,15 +525,39 @@ ] }, { - "name": "p", + "name": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "composite": { "fields": [ { - "name": "q", + "name": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -1007,11 +1079,27 @@ ] }, { - "name": "nuclear", + "name": { + "range": "TestCompile/steps/recursive.d2,3:1:35-3:8:42", + "value": [ + { + "string": "nuclear", + "raw_string": "nuclear" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -1128,7 +1216,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -1245,15 +1341,39 @@ ] }, { - "name": "p", + "name": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "composite": { "fields": [ { - "name": "q", + "name": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -1561,7 +1681,15 @@ ] }, { - "name": "quiche", + "name": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "value": [ + { + "string": "quiche", + "raw_string": "quiche" + } + ] + }, "references": [ { "string": { @@ -1619,15 +1747,39 @@ ] }, { - "name": "scenarios", + "name": { + "range": "TestCompile/steps/recursive.d2,5:2:57-5:11:66", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, "composite": { "fields": [ { - "name": "bavarian", + "name": { + "range": "TestCompile/steps/recursive.d2,6:3:73-6:11:81", + "value": [ + { + "string": "bavarian", + "raw_string": "bavarian" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -1744,7 +1896,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -1861,15 +2021,39 @@ ] }, { - "name": "p", + "name": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "composite": { "fields": [ { - "name": "q", + "name": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -2177,7 +2361,15 @@ ] }, { - "name": "quiche", + "name": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "value": [ + { + "string": "quiche", + "raw_string": "quiche" + } + ] + }, "references": [ { "string": { @@ -2235,7 +2427,15 @@ ] }, { - "name": "perseverance", + "name": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "value": [ + { + "string": "perseverance", + "raw_string": "perseverance" + } + ] + }, "references": [ { "string": { diff --git a/testdata/d2ir/TestCompile/steps/root.exp.json b/testdata/d2ir/TestCompile/steps/root.exp.json index 62376b02f..4cc496405 100644 --- a/testdata/d2ir/TestCompile/steps/root.exp.json +++ b/testdata/d2ir/TestCompile/steps/root.exp.json @@ -1,7 +1,15 @@ { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -118,7 +126,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -235,15 +251,39 @@ ] }, { - "name": "steps", + "name": { + "range": "TestCompile/steps/root.d2,1:0:7-1:5:12", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + }, "composite": { "fields": [ { - "name": "bingo", + "name": { + "range": "TestCompile/steps/root.d2,2:1:17-2:6:22", + "value": [ + { + "string": "bingo", + "raw_string": "bingo" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -360,7 +400,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -477,15 +525,39 @@ ] }, { - "name": "p", + "name": { + "range": "TestCompile/steps/root.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "composite": { "fields": [ { - "name": "q", + "name": { + "range": "TestCompile/steps/root.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "TestCompile/steps/root.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -1007,11 +1079,27 @@ ] }, { - "name": "nuclear", + "name": { + "range": "TestCompile/steps/root.d2,3:1:35-3:8:42", + "value": [ + { + "string": "nuclear", + "raw_string": "nuclear" + } + ] + }, "composite": { "fields": [ { - "name": "x", + "name": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, "references": [ { "string": { @@ -1128,7 +1216,15 @@ ] }, { - "name": "y", + "name": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, "references": [ { "string": { @@ -1245,15 +1341,39 @@ ] }, { - "name": "p", + "name": { + "range": "TestCompile/steps/root.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, "composite": { "fields": [ { - "name": "q", + "name": { + "range": "TestCompile/steps/root.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, "composite": { "fields": [ { - "name": "z", + "name": { + "range": "TestCompile/steps/root.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, "references": [ { "string": { @@ -1561,7 +1681,15 @@ ] }, { - "name": "quiche", + "name": { + "range": "TestCompile/steps/root.d2,3:12:46-3:18:52", + "value": [ + { + "string": "quiche", + "raw_string": "quiche" + } + ] + }, "references": [ { "string": { From c84d4332757f35fef6673c420226b988c8fd92cc Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sat, 23 Nov 2024 18:52:12 -0800 Subject: [PATCH 07/17] fix d2ir test --- d2ir/d2ir_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/d2ir/d2ir_test.go b/d2ir/d2ir_test.go index 45ae84254..cb1b2fc6e 100644 --- a/d2ir/d2ir_test.go +++ b/d2ir/d2ir_test.go @@ -51,7 +51,7 @@ func TestCopy(t *testing.T) { f.Name = d2ast.FlatUnquotedString(`Many a wife thinks her husband is the world's greatest lover.`) assert.Equal(t, m, m.Fields[0].Parent()) - assert.Equal(t, keyStr, m.Fields[0].Name) + assert.Equal(t, keyStr, m.Fields[0].Name.ScalarString()) assert.Equal(t, m.Fields[0], m.Fields[0].Primary_.Parent()) assert.Equal(t, m.Fields[0], m.Fields[0].Composite.(*d2ir.Array).Parent()) From 062faa41b8ef0bddaf8d8eb7e68a730fb0111687 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sat, 23 Nov 2024 18:56:18 -0800 Subject: [PATCH 08/17] go through all errorfs --- d2compiler/compile.go | 20 +- d2ir/compile.go | 14 +- .../TestCompile/escaped_id.exp.json | 6 +- .../TestCompile/import-link-layer-1.exp.json | 15 +- .../TestCompile/import-link-layer-2.exp.json | 5 +- .../TestCompile/import-link-layer-3.exp.json | 40 ++-- .../TestCompile/import-link-layer-4.exp.json | 55 +++--- .../import-link-underscore-1.exp.json | 180 +++++++++++------- .../import-link-underscore-2.exp.json | 180 +++++++++++------- .../import-link-underscore-3.exp.json | 40 ++-- .../TestCompile/import-nested-layers.exp.json | 60 +++--- .../link-board-key-nested.exp.json | 5 +- .../TestCompile/link-board-mixed.exp.json | 30 +-- .../TestCompile/link-board-nested.exp.json | 20 +- .../TestCompile/link-board-not-board.exp.json | 5 +- .../link-board-not-found-2.exp.json | 20 +- .../TestCompile/link-board-ok.exp.json | 5 +- .../link-board-underscore-not-found.exp.json | 35 ++-- .../link-board-underscore.exp.json | 55 +++--- .../TestCompile/link-file-underscore.exp.json | 90 +++++---- .../multiple-import-nested-layers.exp.json | 35 ++-- .../name-with-dot-underscore.exp.json | 6 +- .../TestCompile/no-self-link.exp.json | 25 ++- testdata/d2compiler/TestCompile/null.exp.json | 2 +- .../TestCompile/sequence-timestamp.exp.json | 12 +- .../TestCompile/spread-import-link.exp.json | 30 +-- 26 files changed, 588 insertions(+), 402 deletions(-) diff --git a/d2compiler/compile.go b/d2compiler/compile.go index dca3c6039..c7573e21e 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -120,7 +120,7 @@ func (c *compiler) compileBoardsField(g *d2graph.Graph, ir *d2ir.Map, fieldName m = &d2ir.Map{} } if g.GetBoard(f.Name.ScalarString()) != nil { - c.errorf(f.References[0].AST(), "board name %v already used by another board", f.Name) + c.errorf(f.References[0].AST(), "board name %v already used by another board", f.Name.ScalarString()) continue } g2 := d2graph.NewGraph() @@ -301,7 +301,7 @@ func (c *compiler) compileField(obj *d2graph.Object, f *d2ir.Field) { keyword := strings.ToLower(f.Name.ScalarString()) _, isStyleReserved := d2ast.StyleKeywords[keyword] if isStyleReserved && f.Name.IsUnquoted() { - c.errorf(f.LastRef().AST(), "%v must be style.%v", f.Name, f.Name) + c.errorf(f.LastRef().AST(), "%v must be style.%v", f.Name.ScalarString(), f.Name.ScalarString()) return } _, isReserved := d2ast.SimpleReservedKeywords[keyword] @@ -317,7 +317,7 @@ func (c *compiler) compileField(obj *d2graph.Object, f *d2ir.Field) { } for _, cf := range classesField.Map().Fields { if _, ok := d2ast.ReservedKeywords[cf.Name.ScalarString()]; !(ok && f.Name.IsUnquoted()) { - c.errorf(cf.LastRef().AST(), "%s is an invalid class field, must be reserved keyword", cf.Name) + c.errorf(cf.LastRef().AST(), "%s is an invalid class field, must be reserved keyword", cf.Name.ScalarString()) } if cf.Name.ScalarString() == "class" && cf.Name.IsUnquoted() { c.errorf(cf.LastRef().AST(), `"class" cannot appear within "classes"`) @@ -329,7 +329,7 @@ func (c *compiler) compileField(obj *d2graph.Object, f *d2ir.Field) { } else if f.Name.ScalarString() == "vars" && f.Name.IsUnquoted() { return } else if (f.Name.ScalarString() == "source-arrowhead" || f.Name.ScalarString() == "target-arrowhead") && f.Name.IsUnquoted() { - c.errorf(f.LastRef().AST(), `%#v can only be used on connections`, f.Name) + c.errorf(f.LastRef().AST(), `%#v can only be used on connections`, f.Name.ScalarString()) return } else if isReserved { @@ -468,7 +468,7 @@ func (c *compiler) compilePosition(attrs *d2graph.Attributes, f *d2ir.Field) { } } else { if f.LastPrimaryKey() != nil { - c.errorf(f.LastPrimaryKey(), `unexpected field %s`, f.Name) + c.errorf(f.LastPrimaryKey(), `unexpected field %s`, f.Name.ScalarString()) } } } @@ -506,7 +506,7 @@ func (c *compiler) compileReserved(attrs *d2graph.Attributes, f *d2ir.Field) { case "label", "icon": c.compilePosition(attrs, f) default: - c.errorf(f.LastPrimaryKey(), "reserved field %v does not accept composite", f.Name) + c.errorf(f.LastPrimaryKey(), "reserved field %v does not accept composite", f.Name.ScalarString()) } } return @@ -697,7 +697,7 @@ func (c *compiler) compileStyle(attrs *d2graph.Attributes, m *d2ir.Map) { func (c *compiler) compileStyleField(attrs *d2graph.Attributes, f *d2ir.Field) { if _, ok := d2ast.StyleKeywords[strings.ToLower(f.Name.ScalarString())]; !(ok && f.Name.IsUnquoted()) { - c.errorf(f.LastRef().AST(), `invalid style keyword: "%s"`, f.Name) + c.errorf(f.LastRef().AST(), `invalid style keyword: "%s"`, f.Name.ScalarString()) return } if f.Primary() == nil { @@ -839,7 +839,7 @@ func (c *compiler) compileEdgeField(edge *d2graph.Edge, f *d2ir.Field) { _, isStyleReserved := d2ast.StyleKeywords[keyword] isStyleReserved = isStyleReserved && f.Name.IsUnquoted() if isStyleReserved { - c.errorf(f.LastRef().AST(), "%v must be style.%v", f.Name, f.Name) + c.errorf(f.LastRef().AST(), "%v must be style.%v", f.Name.ScalarString(), f.Name.ScalarString()) return } _, isReserved := d2ast.SimpleReservedKeywords[keyword] @@ -1546,11 +1546,11 @@ FOR: case "AB5": themeOverrides.AB5 = go2.Pointer(f.Primary().Value.ScalarString()) default: - err.Errors = append(err.Errors, d2parser.Errorf(f.LastPrimaryKey(), fmt.Sprintf(`"%s" is not a valid theme code`, f.Name)).(d2ast.Error)) + err.Errors = append(err.Errors, d2parser.Errorf(f.LastPrimaryKey(), fmt.Sprintf(`"%s" is not a valid theme code`, f.Name.ScalarString())).(d2ast.Error)) continue FOR } if !go2.Contains(color.NamedColors, strings.ToLower(f.Primary().Value.ScalarString())) && !color.ColorHexRegex.MatchString(f.Primary().Value.ScalarString()) { - err.Errors = append(err.Errors, d2parser.Errorf(f.LastPrimaryKey(), fmt.Sprintf(`expected "%s" to be a valid named color ("orange") or a hex code ("#f0ff3a")`, f.Name)).(d2ast.Error)) + err.Errors = append(err.Errors, d2parser.Errorf(f.LastPrimaryKey(), fmt.Sprintf(`expected "%s" to be a valid named color ("orange") or a hex code ("#f0ff3a")`, f.Name.ScalarString())).(d2ast.Error)) } } diff --git a/d2ir/compile.go b/d2ir/compile.go index 2f27bd4a0..07e882a15 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -175,7 +175,7 @@ func (c *compiler) validateConfigs(configs *Field) { } if NodeBoardKind(ParentMap(ParentMap(configs))) == "" { - c.errorf(configs.LastRef().AST(), `"%s" can only appear at root vars`, configs.Name) + c.errorf(configs.LastRef().AST(), `"%s" can only appear at root vars`, configs.Name.ScalarString()) return } @@ -183,7 +183,7 @@ func (c *compiler) validateConfigs(configs *Field) { var val string if f.Primary() == nil { if f.Name.ScalarString() != "theme-overrides" && f.Name.ScalarString() != "dark-theme-overrides" && f.Name.ScalarString() != "data" { - c.errorf(f.LastRef().AST(), `"%s" needs a value`, f.Name) + c.errorf(f.LastRef().AST(), `"%s" needs a value`, f.Name.ScalarString()) continue } } else { @@ -194,18 +194,18 @@ func (c *compiler) validateConfigs(configs *Field) { case "sketch", "center": _, err := strconv.ParseBool(val) if err != nil { - c.errorf(f.LastRef().AST(), `expected a boolean for "%s", got "%s"`, f.Name, val) + c.errorf(f.LastRef().AST(), `expected a boolean for "%s", got "%s"`, f.Name.ScalarString(), val) continue } case "theme-overrides", "dark-theme-overrides", "data": if f.Map() == nil { - c.errorf(f.LastRef().AST(), `"%s" needs a map`, f.Name) + c.errorf(f.LastRef().AST(), `"%s" needs a map`, f.Name.ScalarString()) continue } case "theme-id", "dark-theme-id": valInt, err := strconv.Atoi(val) if err != nil { - c.errorf(f.LastRef().AST(), `expected an integer for "%s", got "%s"`, f.Name, val) + c.errorf(f.LastRef().AST(), `expected an integer for "%s", got "%s"`, f.Name.ScalarString(), val) continue } if d2themescatalog.Find(int64(valInt)) == (d2themes.Theme{}) { @@ -215,12 +215,12 @@ func (c *compiler) validateConfigs(configs *Field) { case "pad": _, err := strconv.Atoi(val) if err != nil { - c.errorf(f.LastRef().AST(), `expected an integer for "%s", got "%s"`, f.Name, val) + c.errorf(f.LastRef().AST(), `expected an integer for "%s", got "%s"`, f.Name.ScalarString(), val) continue } case "layout-engine": default: - c.errorf(f.LastRef().AST(), `"%s" is not a valid config`, f.Name) + c.errorf(f.LastRef().AST(), `"%s" is not a valid config`, f.Name.ScalarString()) } } } diff --git a/testdata/d2compiler/TestCompile/escaped_id.exp.json b/testdata/d2compiler/TestCompile/escaped_id.exp.json index 796618579..43ac9198a 100644 --- a/testdata/d2compiler/TestCompile/escaped_id.exp.json +++ b/testdata/d2compiler/TestCompile/escaped_id.exp.json @@ -56,8 +56,8 @@ "edges": null, "objects": [ { - "id": "\"b\\nb\"", - "id_val": "b\nb", + "id": "b\nb", + "id_val": "b", "references": [ { "key": { @@ -82,7 +82,7 @@ ], "attributes": { "label": { - "value": "b\nb" + "value": "b" }, "labelDimensions": { "width": 0, diff --git a/testdata/d2compiler/TestCompile/import-link-layer-1.exp.json b/testdata/d2compiler/TestCompile/import-link-layer-1.exp.json index 193b606ee..e636f947c 100644 --- a/testdata/d2compiler/TestCompile/import-link-layer-1.exp.json +++ b/testdata/d2compiler/TestCompile/import-link-layer-1.exp.json @@ -246,10 +246,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -269,10 +270,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,0:2:2-0:6:6", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -399,10 +401,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/import-link-layer-1.d2,4:7:33-4:9:35", "value": [ { - "string": "hi" + "string": "hi", + "raw_string": "hi" } ] } diff --git a/testdata/d2compiler/TestCompile/import-link-layer-2.exp.json b/testdata/d2compiler/TestCompile/import-link-layer-2.exp.json index ea5a73210..8c78c1bc6 100644 --- a/testdata/d2compiler/TestCompile/import-link-layer-2.exp.json +++ b/testdata/d2compiler/TestCompile/import-link-layer-2.exp.json @@ -208,10 +208,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/import-link-layer-2.d2,3:7:24-3:9:26", "value": [ { - "string": "hi" + "string": "hi", + "raw_string": "hi" } ] } diff --git a/testdata/d2compiler/TestCompile/import-link-layer-3.exp.json b/testdata/d2compiler/TestCompile/import-link-layer-3.exp.json index 54f6603f1..00e472d24 100644 --- a/testdata/d2compiler/TestCompile/import-link-layer-3.exp.json +++ b/testdata/d2compiler/TestCompile/import-link-layer-3.exp.json @@ -246,10 +246,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -268,10 +269,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,1:0:2-1:6:8", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -291,10 +293,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,2:2:14-2:5:17", "value": [ { - "string": "lol" + "string": "lol", + "raw_string": "lol" } ] } @@ -314,10 +317,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,3:4:25-3:8:29", "value": [ { - "string": "asdf" + "string": "asdf", + "raw_string": "asdf" } ] } @@ -337,10 +341,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,3:9:30-3:13:34", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -463,10 +468,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,3:4:25-3:8:29", "value": [ { - "string": "asdf" + "string": "asdf", + "raw_string": "asdf" } ] } @@ -486,10 +492,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,3:9:30-3:13:34", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -618,10 +625,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/import-link-layer-3.d2,4:7:33-4:9:35", "value": [ { - "string": "hi" + "string": "hi", + "raw_string": "hi" } ] } diff --git a/testdata/d2compiler/TestCompile/import-link-layer-4.exp.json b/testdata/d2compiler/TestCompile/import-link-layer-4.exp.json index 8192eec65..4fadbf599 100644 --- a/testdata/d2compiler/TestCompile/import-link-layer-4.exp.json +++ b/testdata/d2compiler/TestCompile/import-link-layer-4.exp.json @@ -264,10 +264,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -286,10 +287,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,1:0:2-1:6:8", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -309,10 +311,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,2:2:14-2:5:17", "value": [ { - "string": "lol" + "string": "lol", + "raw_string": "lol" } ] } @@ -332,10 +335,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,3:4:25-3:8:29", "value": [ { - "string": "asdf" + "string": "asdf", + "raw_string": "asdf" } ] } @@ -355,10 +359,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,3:9:30-3:13:34", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -396,10 +401,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,5:1:52-5:2:53", "value": [ { - "string": "z" + "string": "z", + "raw_string": "z" } ] } @@ -419,10 +425,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,5:6:57-5:9:60", "value": [ { - "string": "fjf" + "string": "fjf", + "raw_string": "fjf" } ] } @@ -531,10 +538,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,3:4:25-3:8:29", "value": [ { - "string": "asdf" + "string": "asdf", + "raw_string": "asdf" } ] } @@ -554,10 +562,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,3:9:30-3:13:34", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -684,10 +693,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,5:6:57-5:9:60", "value": [ { - "string": "fjf" + "string": "fjf", + "raw_string": "fjf" } ] } @@ -788,10 +798,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/import-link-layer-4.d2,4:7:28-4:9:30", "value": [ { - "string": "hi" + "string": "hi", + "raw_string": "hi" } ] } diff --git a/testdata/d2compiler/TestCompile/import-link-underscore-1.exp.json b/testdata/d2compiler/TestCompile/import-link-underscore-1.exp.json index 5feb61b1a..3fa382ff5 100644 --- a/testdata/d2compiler/TestCompile/import-link-underscore-1.exp.json +++ b/testdata/d2compiler/TestCompile/import-link-underscore-1.exp.json @@ -194,10 +194,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -216,10 +217,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,1:0:2-1:6:8", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -239,10 +241,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,2:2:14-2:3:15", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -262,10 +265,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:4:23-3:5:24", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -285,10 +289,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:6:25-3:10:29", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -321,10 +326,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,4:2:35-4:3:36", "value": [ { - "string": "s" + "string": "s", + "raw_string": "s" } ] } @@ -344,10 +350,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,4:4:37-4:8:41", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -380,10 +387,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,6:4:59-6:10:65", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -403,10 +411,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,7:6:75-7:7:76", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -426,10 +435,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:8:88-8:9:89", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -449,10 +459,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:10:90-8:14:94", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -485,10 +496,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:4:102-9:5:103", "value": [ { - "string": "z" + "string": "z", + "raw_string": "z" } ] } @@ -508,10 +520,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:6:104-9:10:108", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -544,10 +557,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:4:118-10:5:119", "value": [ { - "string": "f" + "string": "f", + "raw_string": "f" } ] } @@ -567,10 +581,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:6:120-10:10:124", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -618,10 +633,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,14:2:159-14:3:160", "value": [ { - "string": "k" + "string": "k", + "raw_string": "k" } ] } @@ -641,10 +657,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,15:4:168-15:5:169", "value": [ { - "string": "k" + "string": "k", + "raw_string": "k" } ] } @@ -753,10 +770,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:4:23-3:5:24", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -776,10 +794,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:6:25-3:10:29", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -812,10 +831,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,4:2:35-4:3:36", "value": [ { - "string": "s" + "string": "s", + "raw_string": "s" } ] } @@ -835,10 +855,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,4:4:37-4:8:41", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -871,10 +892,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,6:4:59-6:10:65", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -894,10 +916,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,7:6:75-7:7:76", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -917,10 +940,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:8:88-8:9:89", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -940,10 +964,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:10:90-8:14:94", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -976,10 +1001,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:4:102-9:5:103", "value": [ { - "string": "z" + "string": "z", + "raw_string": "z" } ] } @@ -999,10 +1025,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:6:104-9:10:108", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -1035,10 +1062,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:4:118-10:5:119", "value": [ { - "string": "f" + "string": "f", + "raw_string": "f" } ] } @@ -1058,10 +1086,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:6:120-10:10:124", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -1257,10 +1286,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:8:88-8:9:89", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -1280,10 +1310,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:10:90-8:14:94", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -1316,10 +1347,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:4:102-9:5:103", "value": [ { - "string": "z" + "string": "z", + "raw_string": "z" } ] } @@ -1339,10 +1371,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:6:104-9:10:108", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -1375,10 +1408,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:4:118-10:5:119", "value": [ { - "string": "f" + "string": "f", + "raw_string": "f" } ] } @@ -1398,10 +1432,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:6:120-10:10:124", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -1648,10 +1683,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,15:4:168-15:5:169", "value": [ { - "string": "k" + "string": "k", + "raw_string": "k" } ] } diff --git a/testdata/d2compiler/TestCompile/import-link-underscore-2.exp.json b/testdata/d2compiler/TestCompile/import-link-underscore-2.exp.json index ee11e5deb..7585b749d 100644 --- a/testdata/d2compiler/TestCompile/import-link-underscore-2.exp.json +++ b/testdata/d2compiler/TestCompile/import-link-underscore-2.exp.json @@ -212,10 +212,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -234,10 +235,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,1:0:2-1:6:8", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -257,10 +259,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,2:2:14-2:3:15", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -280,10 +283,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:4:23-3:5:24", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -303,10 +307,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:6:25-3:10:29", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -339,10 +344,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,4:2:35-4:3:36", "value": [ { - "string": "s" + "string": "s", + "raw_string": "s" } ] } @@ -362,10 +368,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,4:4:37-4:8:41", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -398,10 +405,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,6:4:59-6:10:65", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -421,10 +429,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,7:6:75-7:7:76", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -444,10 +453,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:8:88-8:9:89", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -467,10 +477,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:10:90-8:14:94", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -503,10 +514,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:4:102-9:5:103", "value": [ { - "string": "z" + "string": "z", + "raw_string": "z" } ] } @@ -526,10 +538,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:6:104-9:10:108", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -562,10 +575,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:4:118-10:5:119", "value": [ { - "string": "f" + "string": "f", + "raw_string": "f" } ] } @@ -585,10 +599,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:6:120-10:10:124", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -636,10 +651,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,14:2:159-14:3:160", "value": [ { - "string": "k" + "string": "k", + "raw_string": "k" } ] } @@ -659,10 +675,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,15:4:168-15:5:169", "value": [ { - "string": "k" + "string": "k", + "raw_string": "k" } ] } @@ -771,10 +788,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:4:23-3:5:24", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -794,10 +812,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:6:25-3:10:29", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -830,10 +849,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,4:2:35-4:3:36", "value": [ { - "string": "s" + "string": "s", + "raw_string": "s" } ] } @@ -853,10 +873,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,4:4:37-4:8:41", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -889,10 +910,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,6:4:59-6:10:65", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -912,10 +934,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,7:6:75-7:7:76", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -935,10 +958,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:8:88-8:9:89", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -958,10 +982,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:10:90-8:14:94", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -994,10 +1019,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:4:102-9:5:103", "value": [ { - "string": "z" + "string": "z", + "raw_string": "z" } ] } @@ -1017,10 +1043,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:6:104-9:10:108", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -1053,10 +1080,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:4:118-10:5:119", "value": [ { - "string": "f" + "string": "f", + "raw_string": "f" } ] } @@ -1076,10 +1104,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:6:120-10:10:124", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -1275,10 +1304,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:8:88-8:9:89", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -1298,10 +1328,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:10:90-8:14:94", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -1334,10 +1365,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:4:102-9:5:103", "value": [ { - "string": "z" + "string": "z", + "raw_string": "z" } ] } @@ -1357,10 +1389,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:6:104-9:10:108", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -1393,10 +1426,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:4:118-10:5:119", "value": [ { - "string": "f" + "string": "f", + "raw_string": "f" } ] } @@ -1416,10 +1450,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:6:120-10:10:124", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -1666,10 +1701,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,15:4:168-15:5:169", "value": [ { - "string": "k" + "string": "k", + "raw_string": "k" } ] } diff --git a/testdata/d2compiler/TestCompile/import-link-underscore-3.exp.json b/testdata/d2compiler/TestCompile/import-link-underscore-3.exp.json index 2c1e2f072..608150f0c 100644 --- a/testdata/d2compiler/TestCompile/import-link-underscore-3.exp.json +++ b/testdata/d2compiler/TestCompile/import-link-underscore-3.exp.json @@ -264,10 +264,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -286,10 +287,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,1:0:2-1:6:8", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -309,10 +311,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,2:2:14-2:3:15", "value": [ { - "string": "y" + "string": "y", + "raw_string": "y" } ] } @@ -332,10 +335,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,0:0:0-0:1:1", "value": [ { - "string": "o" + "string": "o", + "raw_string": "o" } ] } @@ -355,10 +359,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,0:2:2-0:6:6", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -481,10 +486,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,0:0:0-0:1:1", "value": [ { - "string": "o" + "string": "o", + "raw_string": "o" } ] } @@ -504,10 +510,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y.d2,0:2:2-0:6:6", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -636,10 +643,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/import-link-underscore-3.d2,5:4:31-5:5:32", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2compiler/TestCompile/import-nested-layers.exp.json b/testdata/d2compiler/TestCompile/import-nested-layers.exp.json index af4dd552c..1d219d4c4 100644 --- a/testdata/d2compiler/TestCompile/import-nested-layers.exp.json +++ b/testdata/d2compiler/TestCompile/import-nested-layers.exp.json @@ -194,10 +194,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -216,10 +217,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,1:0:2-1:6:8", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -239,10 +241,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,2:2:14-2:3:15", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -262,10 +265,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:2:21-3:3:22", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -284,10 +288,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,5:2:26-5:8:32", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -307,10 +312,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,6:4:40-6:5:41", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -330,10 +336,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,7:5:50-7:6:51", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -452,10 +459,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:2:21-3:3:22", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -474,10 +482,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,5:2:26-5:8:32", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -497,10 +506,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,6:4:40-6:5:41", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -520,10 +530,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,7:5:50-7:6:51", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -632,10 +643,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,7:5:50-7:6:51", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } diff --git a/testdata/d2compiler/TestCompile/link-board-key-nested.exp.json b/testdata/d2compiler/TestCompile/link-board-key-nested.exp.json index 7b906e66c..7fdd8b73d 100644 --- a/testdata/d2compiler/TestCompile/link-board-key-nested.exp.json +++ b/testdata/d2compiler/TestCompile/link-board-key-nested.exp.json @@ -306,10 +306,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-key-nested.d2,5:4:47-5:6:49", "value": [ { - "string": "yo" + "string": "yo", + "raw_string": "yo" } ] } diff --git a/testdata/d2compiler/TestCompile/link-board-mixed.exp.json b/testdata/d2compiler/TestCompile/link-board-mixed.exp.json index 739e2f29f..633529bb2 100644 --- a/testdata/d2compiler/TestCompile/link-board-mixed.exp.json +++ b/testdata/d2compiler/TestCompile/link-board-mixed.exp.json @@ -431,10 +431,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-mixed.d2,5:4:81-5:11:88", "value": [ { - "string": "the cat" + "string": "the cat", + "raw_string": "the cat" } ] } @@ -453,10 +454,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-mixed.d2,5:15:92-5:24:101", "value": [ { - "string": "meeeowwww" + "string": "meeeowwww", + "raw_string": "meeeowwww" } ] } @@ -687,10 +689,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-mixed.d2,0:0:0-0:8:8", "value": [ { - "string": "question" + "string": "question", + "raw_string": "question" } ] } @@ -720,10 +723,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-mixed.d2,1:9:40-1:13:44", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -751,10 +755,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-mixed.d2,11:13:152-11:18:157", "value": [ { - "string": "style" + "string": "style", + "raw_string": "style" } ] } @@ -774,10 +779,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-mixed.d2,11:19:158-11:23:162", "value": [ { - "string": "fill" + "string": "fill", + "raw_string": "fill" } ] } diff --git a/testdata/d2compiler/TestCompile/link-board-nested.exp.json b/testdata/d2compiler/TestCompile/link-board-nested.exp.json index 1107c09ff..d6b03aa98 100644 --- a/testdata/d2compiler/TestCompile/link-board-nested.exp.json +++ b/testdata/d2compiler/TestCompile/link-board-nested.exp.json @@ -290,10 +290,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-nested.d2,3:4:47-3:10:53", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -313,10 +314,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-nested.d2,4:6:63-4:7:64", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -336,10 +338,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-nested.d2,5:8:76-5:13:81", "value": [ { - "string": "hello" + "string": "hello", + "raw_string": "hello" } ] } @@ -402,10 +405,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-nested.d2,5:8:76-5:13:81", "value": [ { - "string": "hello" + "string": "hello", + "raw_string": "hello" } ] } diff --git a/testdata/d2compiler/TestCompile/link-board-not-board.exp.json b/testdata/d2compiler/TestCompile/link-board-not-board.exp.json index 3d1d8ee0f..b58894b26 100644 --- a/testdata/d2compiler/TestCompile/link-board-not-board.exp.json +++ b/testdata/d2compiler/TestCompile/link-board-not-board.exp.json @@ -297,10 +297,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-not-board.d2,4:4:44-4:5:45", "value": [ { - "string": "y" + "string": "y", + "raw_string": "y" } ] } diff --git a/testdata/d2compiler/TestCompile/link-board-not-found-2.exp.json b/testdata/d2compiler/TestCompile/link-board-not-found-2.exp.json index b3dd8d79b..9a25f3524 100644 --- a/testdata/d2compiler/TestCompile/link-board-not-found-2.exp.json +++ b/testdata/d2compiler/TestCompile/link-board-not-found-2.exp.json @@ -258,10 +258,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-not-found-2.d2,2:8:29-2:12:33", "value": [ { - "string": "ping" + "string": "ping", + "raw_string": "ping" } ] } @@ -281,10 +282,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-not-found-2.d2,3:12:49-3:16:53", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -398,10 +400,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-not-found-2.d2,7:8:94-7:12:98", "value": [ { - "string": "pong" + "string": "pong", + "raw_string": "pong" } ] } @@ -421,10 +424,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-not-found-2.d2,8:12:114-8:16:118", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } diff --git a/testdata/d2compiler/TestCompile/link-board-ok.exp.json b/testdata/d2compiler/TestCompile/link-board-ok.exp.json index 4548844ea..cfbfb3de1 100644 --- a/testdata/d2compiler/TestCompile/link-board-ok.exp.json +++ b/testdata/d2compiler/TestCompile/link-board-ok.exp.json @@ -232,10 +232,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-ok.d2,3:3:36-3:4:37", "value": [ { - "string": "y" + "string": "y", + "raw_string": "y" } ] } diff --git a/testdata/d2compiler/TestCompile/link-board-underscore-not-found.exp.json b/testdata/d2compiler/TestCompile/link-board-underscore-not-found.exp.json index f266a391c..2832349b4 100644 --- a/testdata/d2compiler/TestCompile/link-board-underscore-not-found.exp.json +++ b/testdata/d2compiler/TestCompile/link-board-underscore-not-found.exp.json @@ -299,10 +299,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore-not-found.d2,3:4:23-3:6:25", "value": [ { - "string": "yo" + "string": "yo", + "raw_string": "yo" } ] } @@ -321,10 +322,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore-not-found.d2,4:4:30-4:10:36", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -344,10 +346,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore-not-found.d2,5:6:46-5:7:47", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -367,10 +370,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore-not-found.d2,6:8:59-6:13:64", "value": [ { - "string": "hello" + "string": "hello", + "raw_string": "hello" } ] } @@ -390,10 +394,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore-not-found.d2,6:14:65-6:18:69", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -516,10 +521,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore-not-found.d2,6:8:59-6:13:64", "value": [ { - "string": "hello" + "string": "hello", + "raw_string": "hello" } ] } @@ -539,10 +545,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore-not-found.d2,6:14:65-6:18:69", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } diff --git a/testdata/d2compiler/TestCompile/link-board-underscore.exp.json b/testdata/d2compiler/TestCompile/link-board-underscore.exp.json index fb21164d4..1ecd27589 100644 --- a/testdata/d2compiler/TestCompile/link-board-underscore.exp.json +++ b/testdata/d2compiler/TestCompile/link-board-underscore.exp.json @@ -343,10 +343,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore.d2,3:3:21-3:5:23", "value": [ { - "string": "yo" + "string": "yo", + "raw_string": "yo" } ] } @@ -365,10 +366,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore.d2,4:4:28-4:10:34", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -388,10 +390,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore.d2,5:6:44-5:7:45", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -411,10 +414,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore.d2,6:8:57-6:13:62", "value": [ { - "string": "hello" + "string": "hello", + "raw_string": "hello" } ] } @@ -434,10 +438,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore.d2,6:14:63-6:18:67", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -470,10 +475,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore.d2,7:8:90-7:11:93", "value": [ { - "string": "hey" + "string": "hey", + "raw_string": "hey" } ] } @@ -493,10 +499,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore.d2,7:12:94-7:16:98", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -619,10 +626,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore.d2,6:8:57-6:13:62", "value": [ { - "string": "hello" + "string": "hello", + "raw_string": "hello" } ] } @@ -642,10 +650,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore.d2,6:14:63-6:18:67", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -678,10 +687,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore.d2,7:8:90-7:11:93", "value": [ { - "string": "hey" + "string": "hey", + "raw_string": "hey" } ] } @@ -701,10 +711,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/link-board-underscore.d2,7:12:94-7:16:98", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } diff --git a/testdata/d2compiler/TestCompile/link-file-underscore.exp.json b/testdata/d2compiler/TestCompile/link-file-underscore.exp.json index 80284b3cb..62dac5f83 100644 --- a/testdata/d2compiler/TestCompile/link-file-underscore.exp.json +++ b/testdata/d2compiler/TestCompile/link-file-underscore.exp.json @@ -113,10 +113,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:7:20-3:8:21", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -215,10 +216,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,4:7:31-4:8:32", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -238,10 +240,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,4:9:33-4:13:37", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -368,10 +371,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,6:4:62-6:5:63", "value": [ { - "string": "l" + "string": "l", + "raw_string": "l" } ] } @@ -390,10 +394,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,8:2:67-8:8:73", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -413,10 +418,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,9:3:80-9:4:81", "value": [ { - "string": "j" + "string": "j", + "raw_string": "j" } ] } @@ -436,10 +442,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:5:90-10:6:91", "value": [ { - "string": "k" + "string": "k", + "raw_string": "k" } ] } @@ -459,10 +466,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:7:92-10:11:96", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -495,10 +503,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,11:5:105-11:6:106", "value": [ { - "string": "n" + "string": "n", + "raw_string": "n" } ] } @@ -518,10 +527,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,11:7:107-11:11:111", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -554,10 +564,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,12:5:122-12:6:123", "value": [ { - "string": "m" + "string": "m", + "raw_string": "m" } ] } @@ -577,10 +588,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,12:7:124-12:11:128", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -703,10 +715,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:5:90-10:6:91", "value": [ { - "string": "k" + "string": "k", + "raw_string": "k" } ] } @@ -726,10 +739,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,10:7:92-10:11:96", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -762,10 +776,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,11:5:105-11:6:106", "value": [ { - "string": "n" + "string": "n", + "raw_string": "n" } ] } @@ -785,10 +800,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,11:7:107-11:11:111", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -821,10 +837,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,12:5:122-12:6:123", "value": [ { - "string": "m" + "string": "m", + "raw_string": "m" } ] } @@ -844,10 +861,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,12:7:124-12:11:128", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } diff --git a/testdata/d2compiler/TestCompile/multiple-import-nested-layers.exp.json b/testdata/d2compiler/TestCompile/multiple-import-nested-layers.exp.json index e9db7f592..e94babb51 100644 --- a/testdata/d2compiler/TestCompile/multiple-import-nested-layers.exp.json +++ b/testdata/d2compiler/TestCompile/multiple-import-nested-layers.exp.json @@ -194,10 +194,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y/x.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -217,10 +218,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y/x.d2,0:2:2-0:3:3", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -240,10 +242,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y/x.d2,0:4:4-0:8:8", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -281,10 +284,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y/x.d2,2:0:20-2:6:26", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -304,10 +308,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y/x.d2,3:2:32-3:3:33", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -327,10 +332,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y/n.d2,0:0:0-0:1:1", "value": [ { - "string": "p" + "string": "p", + "raw_string": "p" } ] } @@ -531,10 +537,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/y/n.d2,0:0:0-0:1:1", "value": [ { - "string": "p" + "string": "p", + "raw_string": "p" } ] } diff --git a/testdata/d2compiler/TestCompile/name-with-dot-underscore.exp.json b/testdata/d2compiler/TestCompile/name-with-dot-underscore.exp.json index 7c2ec3cf4..746a719a0 100644 --- a/testdata/d2compiler/TestCompile/name-with-dot-underscore.exp.json +++ b/testdata/d2compiler/TestCompile/name-with-dot-underscore.exp.json @@ -291,8 +291,8 @@ "zIndex": 0 }, { - "id": "\"D.E\"", - "id_val": "D.E", + "id": "D.E", + "id_val": "D", "references": [ { "key": { @@ -317,7 +317,7 @@ ], "attributes": { "label": { - "value": "D.E" + "value": "D" }, "labelDimensions": { "width": 0, diff --git a/testdata/d2compiler/TestCompile/no-self-link.exp.json b/testdata/d2compiler/TestCompile/no-self-link.exp.json index 2bd2fe671..7ef33af11 100644 --- a/testdata/d2compiler/TestCompile/no-self-link.exp.json +++ b/testdata/d2compiler/TestCompile/no-self-link.exp.json @@ -334,10 +334,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/no-self-link.d2,5:4:43-5:5:44", "value": [ { - "string": "s" + "string": "s", + "raw_string": "s" } ] } @@ -357,10 +358,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/no-self-link.d2,5:6:45-5:10:49", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -486,10 +488,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/no-self-link.d2,1:0:1-1:1:2", "value": [ { - "string": "x" + "string": "x", + "raw_string": "x" } ] } @@ -509,10 +512,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/no-self-link.d2,1:2:3-1:6:7", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -545,10 +549,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/no-self-link.d2,11:4:93-11:5:94", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2compiler/TestCompile/null.exp.json b/testdata/d2compiler/TestCompile/null.exp.json index 9781daf23..e3045facb 100644 --- a/testdata/d2compiler/TestCompile/null.exp.json +++ b/testdata/d2compiler/TestCompile/null.exp.json @@ -56,7 +56,7 @@ "edges": null, "objects": [ { - "id": "'null'", + "id": "null", "id_val": "null", "references": [ { diff --git a/testdata/d2compiler/TestCompile/sequence-timestamp.exp.json b/testdata/d2compiler/TestCompile/sequence-timestamp.exp.json index 4c90eaac0..1799ac343 100644 --- a/testdata/d2compiler/TestCompile/sequence-timestamp.exp.json +++ b/testdata/d2compiler/TestCompile/sequence-timestamp.exp.json @@ -442,8 +442,8 @@ "zIndex": 0 }, { - "id": "\"04:20,11:20\"", - "id_val": "04:20,11:20", + "id": "04:20,11:20", + "id_val": "04", "references": [ { "key": { @@ -468,7 +468,7 @@ ], "attributes": { "label": { - "value": "04:20,11:20" + "value": "04" }, "labelDimensions": { "width": 0, @@ -532,8 +532,8 @@ "zIndex": 0 }, { - "id": "\"start_time = datetime.datetime.now\"", - "id_val": "start_time = datetime.datetime.now", + "id": "start_time = datetime.datetime.now", + "id_val": "start_time = datetime", "references": [ { "key": { @@ -569,7 +569,7 @@ ], "attributes": { "label": { - "value": "start_time = datetime.datetime.now" + "value": "start_time = datetime" }, "labelDimensions": { "width": 0, diff --git a/testdata/d2compiler/TestCompile/spread-import-link.exp.json b/testdata/d2compiler/TestCompile/spread-import-link.exp.json index a3fbe8c23..6344afd38 100644 --- a/testdata/d2compiler/TestCompile/spread-import-link.exp.json +++ b/testdata/d2compiler/TestCompile/spread-import-link.exp.json @@ -194,10 +194,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,0:0:0-0:1:1", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -217,10 +218,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,0:2:2-0:6:6", "value": [ { - "string": "link" + "string": "link", + "raw_string": "link" } ] } @@ -253,10 +255,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,1:0:17-1:6:23", "value": [ { - "string": "layers" + "string": "layers", + "raw_string": "layers" } ] } @@ -276,10 +279,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,2:2:29-2:3:30", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -299,10 +303,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:4:38-3:5:39", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } @@ -425,10 +430,11 @@ "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2compiler/TestCompile/x.d2,3:4:38-3:5:39", "value": [ { - "string": "d" + "string": "d", + "raw_string": "d" } ] } From b1a318631be4d9328d7de140d0755a0d53d084f9 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sat, 23 Nov 2024 19:14:00 -0800 Subject: [PATCH 09/17] fix reserved casing --- d2compiler/compile_test.go | 2 +- d2ir/d2ir.go | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/d2compiler/compile_test.go b/d2compiler/compile_test.go index d644b7fa9..4156961d7 100644 --- a/d2compiler/compile_test.go +++ b/d2compiler/compile_test.go @@ -2113,7 +2113,7 @@ b tassert.Equal(t, 5, len(g.Objects)) tassert.Equal(t, "a", g.Objects[0].ID) tassert.Equal(t, "b", g.Objects[1].ID) - tassert.Equal(t, `"04:20,11:20"`, g.Objects[2].ID) + tassert.Equal(t, `04:20,11:20`, g.Objects[2].ID) tassert.Equal(t, `loop through each table`, g.Objects[3].ID) tassert.Equal(t, 1, len(g.Objects[0].ChildrenArray)) tassert.Equal(t, 0, len(g.Objects[1].ChildrenArray)) diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 87bf71fa5..690b5acb7 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -870,23 +870,25 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b } head := kp.Path[i].Unbox() + headString := head.ScalarString() if _, ok := d2ast.ReservedKeywords[strings.ToLower(head.ScalarString())]; ok && head.IsUnquoted() { - if _, ok := d2ast.CompositeReservedKeywords[strings.ToLower(head.ScalarString())]; !ok && i < len(kp.Path)-1 { - return d2parser.Errorf(kp.Path[i].Unbox(), fmt.Sprintf(`"%s" must be the last part of the key`, head.ScalarString())) + headString = strings.ToLower(head.ScalarString()) + if _, ok := d2ast.CompositeReservedKeywords[headString]; !ok && i < len(kp.Path)-1 { + return d2parser.Errorf(kp.Path[i].Unbox(), fmt.Sprintf(`"%s" must be the last part of the key`, headString)) } } - if head.ScalarString() == "_" && head.IsUnquoted() { + if headString == "_" && head.IsUnquoted() { return d2parser.Errorf(kp.Path[i].Unbox(), `parent "_" can only be used in the beginning of paths, e.g. "_.x"`) } - if head.ScalarString() == "classes" && head.IsUnquoted() && NodeBoardKind(m) == "" { - return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head.ScalarString()) + if headString == "classes" && head.IsUnquoted() && NodeBoardKind(m) == "" { + return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", headString) } - if findBoardKeyword(head.ScalarString()) != -1 && head.IsUnquoted() && NodeBoardKind(m) == "" { - return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head.ScalarString()) + if findBoardKeyword(headString) != -1 && head.IsUnquoted() && NodeBoardKind(m) == "" { + return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", headString) } for _, f := range m.Fields { From 96288dd369159a50a937bf3db93631e5ff726164 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sat, 23 Nov 2024 20:41:57 -0800 Subject: [PATCH 10/17] fix id/idval --- d2compiler/compile_test.go | 2 +- d2graph/d2graph.go | 12 +++++++++--- testdata/d2compiler/TestCompile/escaped_id.exp.json | 6 +++--- .../TestCompile/name-with-dot-underscore.exp.json | 6 +++--- testdata/d2compiler/TestCompile/null.exp.json | 2 +- .../TestCompile/sequence-timestamp.exp.json | 12 ++++++------ 6 files changed, 23 insertions(+), 17 deletions(-) diff --git a/d2compiler/compile_test.go b/d2compiler/compile_test.go index 4156961d7..d644b7fa9 100644 --- a/d2compiler/compile_test.go +++ b/d2compiler/compile_test.go @@ -2113,7 +2113,7 @@ b tassert.Equal(t, 5, len(g.Objects)) tassert.Equal(t, "a", g.Objects[0].ID) tassert.Equal(t, "b", g.Objects[1].ID) - tassert.Equal(t, `04:20,11:20`, g.Objects[2].ID) + tassert.Equal(t, `"04:20,11:20"`, g.Objects[2].ID) tassert.Equal(t, `loop through each table`, g.Objects[3].ID) tassert.Equal(t, 1, len(g.Objects[0].ChildrenArray)) tassert.Equal(t, 0, len(g.Objects[1].ChildrenArray)) diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index 30d9123c5..0776849ab 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -694,7 +694,10 @@ func (obj *Object) Text() *d2target.MText { } } -func (obj *Object) newObject(id string) *Object { +func (obj *Object) newObject(ids d2ast.String) *Object { + id := d2format.Format(&d2ast.KeyPath{ + Path: []*d2ast.StringBox{d2ast.MakeValueBox(d2ast.RawString(ids.ScalarString(), true)).StringBox()}, + }) idval := id k, _ := d2parser.ParseKey(id) if k != nil && len(k.Path) > 0 { @@ -901,9 +904,12 @@ func (obj *Object) EnsureChild(ida []d2ast.String) *Object { return obj.Parent.EnsureChild(ida) } - child, ok := obj.Children[strings.ToLower(id.ScalarString())] + head := d2format.Format(&d2ast.KeyPath{ + Path: []*d2ast.StringBox{d2ast.MakeValueBox(d2ast.RawString(id.ScalarString(), true)).StringBox()}, + }) + child, ok := obj.Children[strings.ToLower(head)] if !ok { - child = obj.newObject(id.ScalarString()) + child = obj.newObject(id) } if len(ida) >= 1 { diff --git a/testdata/d2compiler/TestCompile/escaped_id.exp.json b/testdata/d2compiler/TestCompile/escaped_id.exp.json index 43ac9198a..796618579 100644 --- a/testdata/d2compiler/TestCompile/escaped_id.exp.json +++ b/testdata/d2compiler/TestCompile/escaped_id.exp.json @@ -56,8 +56,8 @@ "edges": null, "objects": [ { - "id": "b\nb", - "id_val": "b", + "id": "\"b\\nb\"", + "id_val": "b\nb", "references": [ { "key": { @@ -82,7 +82,7 @@ ], "attributes": { "label": { - "value": "b" + "value": "b\nb" }, "labelDimensions": { "width": 0, diff --git a/testdata/d2compiler/TestCompile/name-with-dot-underscore.exp.json b/testdata/d2compiler/TestCompile/name-with-dot-underscore.exp.json index 746a719a0..7c2ec3cf4 100644 --- a/testdata/d2compiler/TestCompile/name-with-dot-underscore.exp.json +++ b/testdata/d2compiler/TestCompile/name-with-dot-underscore.exp.json @@ -291,8 +291,8 @@ "zIndex": 0 }, { - "id": "D.E", - "id_val": "D", + "id": "\"D.E\"", + "id_val": "D.E", "references": [ { "key": { @@ -317,7 +317,7 @@ ], "attributes": { "label": { - "value": "D" + "value": "D.E" }, "labelDimensions": { "width": 0, diff --git a/testdata/d2compiler/TestCompile/null.exp.json b/testdata/d2compiler/TestCompile/null.exp.json index e3045facb..9781daf23 100644 --- a/testdata/d2compiler/TestCompile/null.exp.json +++ b/testdata/d2compiler/TestCompile/null.exp.json @@ -56,7 +56,7 @@ "edges": null, "objects": [ { - "id": "null", + "id": "'null'", "id_val": "null", "references": [ { diff --git a/testdata/d2compiler/TestCompile/sequence-timestamp.exp.json b/testdata/d2compiler/TestCompile/sequence-timestamp.exp.json index 1799ac343..4c90eaac0 100644 --- a/testdata/d2compiler/TestCompile/sequence-timestamp.exp.json +++ b/testdata/d2compiler/TestCompile/sequence-timestamp.exp.json @@ -442,8 +442,8 @@ "zIndex": 0 }, { - "id": "04:20,11:20", - "id_val": "04", + "id": "\"04:20,11:20\"", + "id_val": "04:20,11:20", "references": [ { "key": { @@ -468,7 +468,7 @@ ], "attributes": { "label": { - "value": "04" + "value": "04:20,11:20" }, "labelDimensions": { "width": 0, @@ -532,8 +532,8 @@ "zIndex": 0 }, { - "id": "start_time = datetime.datetime.now", - "id_val": "start_time = datetime", + "id": "\"start_time = datetime.datetime.now\"", + "id_val": "start_time = datetime.datetime.now", "references": [ { "key": { @@ -569,7 +569,7 @@ ], "attributes": { "label": { - "value": "start_time = datetime" + "value": "start_time = datetime.datetime.now" }, "labelDimensions": { "width": 0, From d2a04c83a615149e3948aabd90fb3cd4577249ea Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sat, 23 Nov 2024 20:43:33 -0800 Subject: [PATCH 11/17] d2oracle ta --- testdata/d2oracle/TestDelete/children.exp.json | 2 +- testdata/d2oracle/TestDelete/children_scope.exp.json | 2 +- testdata/d2oracle/TestDelete/node_in_edge.exp.json | 2 +- testdata/d2oracle/TestDelete/node_in_edge_last.exp.json | 2 +- testdata/d2oracle/TestDelete/shape_class.exp.json | 6 +++--- testdata/d2oracle/TestRename/arrows_trim_common_2.exp.json | 2 +- testdata/d2oracle/TestRename/container.exp.json | 2 +- testdata/d2oracle/TestRename/flat.exp.json | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/testdata/d2oracle/TestDelete/children.exp.json b/testdata/d2oracle/TestDelete/children.exp.json index 284e75cd0..a0fdc1628 100644 --- a/testdata/d2oracle/TestDelete/children.exp.json +++ b/testdata/d2oracle/TestDelete/children.exp.json @@ -133,7 +133,7 @@ ], "objects": [ { - "id": "what's up", + "id": "\"what's up\"", "id_val": "what's up", "references": [ { diff --git a/testdata/d2oracle/TestDelete/children_scope.exp.json b/testdata/d2oracle/TestDelete/children_scope.exp.json index 873898ef7..13e8a86d1 100644 --- a/testdata/d2oracle/TestDelete/children_scope.exp.json +++ b/testdata/d2oracle/TestDelete/children_scope.exp.json @@ -285,7 +285,7 @@ "zIndex": 0 }, { - "id": "what's up", + "id": "\"what's up\"", "id_val": "what's up", "references": [ { diff --git a/testdata/d2oracle/TestDelete/node_in_edge.exp.json b/testdata/d2oracle/TestDelete/node_in_edge.exp.json index 693282d17..dc3c6c44f 100644 --- a/testdata/d2oracle/TestDelete/node_in_edge.exp.json +++ b/testdata/d2oracle/TestDelete/node_in_edge.exp.json @@ -463,7 +463,7 @@ "zIndex": 0 }, { - "id": "what's up", + "id": "\"what's up\"", "id_val": "what's up", "references": [ { diff --git a/testdata/d2oracle/TestDelete/node_in_edge_last.exp.json b/testdata/d2oracle/TestDelete/node_in_edge_last.exp.json index 8acca1102..117af5395 100644 --- a/testdata/d2oracle/TestDelete/node_in_edge_last.exp.json +++ b/testdata/d2oracle/TestDelete/node_in_edge_last.exp.json @@ -639,7 +639,7 @@ "zIndex": 0 }, { - "id": "what's up", + "id": "\"what's up\"", "id_val": "what's up", "references": [ { diff --git a/testdata/d2oracle/TestDelete/shape_class.exp.json b/testdata/d2oracle/TestDelete/shape_class.exp.json index 3422a0889..e5f1f7ea9 100644 --- a/testdata/d2oracle/TestDelete/shape_class.exp.json +++ b/testdata/d2oracle/TestDelete/shape_class.exp.json @@ -56,8 +56,8 @@ "edges": null, "objects": [ { - "id": "github.com/terrastruct/d2parser.git", - "id_val": "github", + "id": "\"github.com/terrastruct/d2parser.git\"", + "id_val": "github.com/terrastruct/d2parser.git", "references": [ { "key": { @@ -82,7 +82,7 @@ ], "attributes": { "label": { - "value": "github" + "value": "github.com/terrastruct/d2parser.git" }, "labelDimensions": { "width": 0, diff --git a/testdata/d2oracle/TestRename/arrows_trim_common_2.exp.json b/testdata/d2oracle/TestRename/arrows_trim_common_2.exp.json index 6072c8f2c..ab086e248 100644 --- a/testdata/d2oracle/TestRename/arrows_trim_common_2.exp.json +++ b/testdata/d2oracle/TestRename/arrows_trim_common_2.exp.json @@ -751,7 +751,7 @@ "zIndex": 0 }, { - "id": "q)", + "id": "\"q)\"", "id_val": "q)", "references": [ { diff --git a/testdata/d2oracle/TestRename/container.exp.json b/testdata/d2oracle/TestRename/container.exp.json index b46e3e1e7..1d4593223 100644 --- a/testdata/d2oracle/TestRename/container.exp.json +++ b/testdata/d2oracle/TestRename/container.exp.json @@ -1258,7 +1258,7 @@ "zIndex": 0 }, { - "id": "", + "id": "\"\"", "id_val": "", "references": [ { diff --git a/testdata/d2oracle/TestRename/flat.exp.json b/testdata/d2oracle/TestRename/flat.exp.json index 54bfec7f3..028991927 100644 --- a/testdata/d2oracle/TestRename/flat.exp.json +++ b/testdata/d2oracle/TestRename/flat.exp.json @@ -56,7 +56,7 @@ "edges": null, "objects": [ { - "id": "---", + "id": "\"---\"", "id_val": "---", "references": [ { From c680071a5683e39c5794da574b1c63f5cc1ddd5c Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sun, 24 Nov 2024 09:57:06 -0800 Subject: [PATCH 12/17] fix d2sequence tests --- d2layouts/d2sequence/layout_test.go | 9 +- .../TestCLI_E2E/vars-animation.exp.svg | 180 +++++++++--------- 2 files changed, 95 insertions(+), 94 deletions(-) diff --git a/d2layouts/d2sequence/layout_test.go b/d2layouts/d2sequence/layout_test.go index 37c62a017..08d8c6e5f 100644 --- a/d2layouts/d2sequence/layout_test.go +++ b/d2layouts/d2sequence/layout_test.go @@ -7,6 +7,7 @@ import ( "github.com/stretchr/testify/assert" + "oss.terrastruct.com/d2/d2ast" "oss.terrastruct.com/d2/d2compiler" "oss.terrastruct.com/d2/d2graph" "oss.terrastruct.com/d2/d2layouts/d2sequence" @@ -321,7 +322,7 @@ container -> c: edge 1 assert.True(t, has) b_t1.Box = geo.NewBox(nil, 100, 100) - c := g.Root.EnsureChild([]string{"c"}) + c := g.Root.EnsureChild([]d2ast.String{d2ast.FlatUnquotedString("c")}) c.Box = geo.NewBox(nil, 100, 100) c.Shape = d2graph.Scalar{Value: d2target.ShapeSquare} @@ -379,7 +380,7 @@ container -> c: edge 1 func TestSelfEdges(t *testing.T) { g := d2graph.NewGraph() g.Root.Shape = d2graph.Scalar{Value: d2target.ShapeSequenceDiagram} - n1 := g.Root.EnsureChild([]string{"n1"}) + n1 := g.Root.EnsureChild([]d2ast.String{d2ast.FlatUnquotedString("n1")}) n1.Box = geo.NewBox(nil, 100, 100) g.Edges = []*d2graph.Edge{ @@ -415,12 +416,12 @@ func TestSelfEdges(t *testing.T) { func TestSequenceToDescendant(t *testing.T) { g := d2graph.NewGraph() g.Root.Shape = d2graph.Scalar{Value: d2target.ShapeSequenceDiagram} - a := g.Root.EnsureChild([]string{"a"}) + a := g.Root.EnsureChild([]d2ast.String{d2ast.FlatUnquotedString("a")}) a.Box = geo.NewBox(nil, 100, 100) a.Attributes = d2graph.Attributes{ Shape: d2graph.Scalar{Value: shape.PERSON_TYPE}, } - a_t1 := a.EnsureChild([]string{"t1"}) + a_t1 := a.EnsureChild([]d2ast.String{d2ast.FlatUnquotedString("t1")}) a_t1.Box = geo.NewBox(nil, 16, 80) g.Edges = []*d2graph.Edge{ diff --git a/e2etests-cli/testdata/TestCLI_E2E/vars-animation.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/vars-animation.exp.svg index 67a938e4d..e0f86221d 100644 --- a/e2etests-cli/testdata/TestCLI_E2E/vars-animation.exp.svg +++ b/e2etests-cli/testdata/TestCLI_E2E/vars-animation.exp.svg @@ -1,16 +1,16 @@ CHICKEN'S PLAN +}]]>CHICKEN'S PLAN -CHICKEN'S PLANAPPROACH ROAD +CHICKEN'S PLANAPPROACH ROAD -CHICKEN'S PLANAPPROACH ROADCROSS ROAD +CHICKEN'S PLANAPPROACH ROADCROSS ROAD -CHICKEN'S PLANAPPROACH ROADCROSS ROADMAKE YOU WONDER WHY +CHICKEN'S PLANAPPROACH ROADCROSS ROADMAKE YOU WONDER WHY From e5e02613b1871d55cce85558dcf2aa3b41c65c53 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sun, 24 Nov 2024 09:58:05 -0800 Subject: [PATCH 13/17] e2ecli ta --- .../TestCLI_E2E/hello_world_png.exp.png | Bin 15128 -> 14694 bytes .../TestCLI_E2E/hello_world_png_pad.exp.png | Bin 73268 -> 73646 bytes .../hello_world_png_sketch.exp.png | Bin 21343 -> 21256 bytes .../TestCLI_E2E/internal_linked_pdf.exp.pdf | Bin 66068 -> 62121 bytes .../testdata/TestCLI_E2E/no-nav-pdf.exp.pdf | Bin 96034 -> 91400 bytes .../testdata/TestCLI_E2E/no-nav-pptx.exp.pptx | Bin 122127 -> 118793 bytes .../TestCLI_E2E/pptx-theme-overrides.exp.pptx | Bin 35186 -> 35193 bytes .../TestCLI_E2E/renamed-board.exp.pdf | Bin 109975 -> 107020 bytes .../testdata/TestCLI_E2E/theme-pdf.exp.pdf | Bin 17306 -> 17219 bytes 9 files changed, 0 insertions(+), 0 deletions(-) diff --git a/e2etests-cli/testdata/TestCLI_E2E/hello_world_png.exp.png b/e2etests-cli/testdata/TestCLI_E2E/hello_world_png.exp.png index eb8c79b000e543e4aa71603d50005a40b0f7a6e7..ad098e23dd29188aeef14ae51ba95a81c3eb0541 100644 GIT binary patch literal 14694 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 literal 15128 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 literal 73268 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 S(*+Tq1e4Y4Rwb{X?*AVbYkuPZ diff --git a/e2etests-cli/testdata/TestCLI_E2E/hello_world_png_sketch.exp.png b/e2etests-cli/testdata/TestCLI_E2E/hello_world_png_sketch.exp.png index 7caa3575f61c4eeb49e3e6aae599f5adef6dc88b..3b5375b75e2e0e0edee1544a2831b638e311b5c0 100644 GIT binary patch literal 21256 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 literal 21343 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 H{N?`(hX7L| diff --git a/e2etests-cli/testdata/TestCLI_E2E/internal_linked_pdf.exp.pdf b/e2etests-cli/testdata/TestCLI_E2E/internal_linked_pdf.exp.pdf index 7c1a8847dd2ac8f9e0ca68c8b64454c881ad6aa4..76279f245789662ad78d057b2f5c3f547d0d0654 100644 GIT binary patch literal 62121 zcmeFZ1yo$iwl3UAfZ*=ZNN{g7xVyVUkj9~L3y?tYKtc!sLeKEdQ(?e^QaxA)T4?f?z%?Kof#eFMWk*>U!CbTkna1^AJ3bMbTq{~G+a zTMjKShqjxAv%Bl9WR|{Q4k_S?w6&L=rM0G~>LiK@r|3XC-feZcF ziC~+M#QC(ql2!C6&Q@?u@T+7nHFIm!W_H3c;_C;S6VYnd%Jqng5OUhcIoGPipGoCj z4x(0@@dxYH7Fu(KzKYpy7TeSDXwtNip7RzMF?4(Q#0rZ`NP}3~eLT2j34FE!r1OR0{1h?UB-@sgNWy6DLE7dVMa$C?^un zVupB)S2^mJkn)>AAkfW?NVxXkt<=8@@w@!D+Wwz45xzU4;NcXwwGD1w-a8Y4+}{0% zCUR@n|3(wx`$rSGz5Oql2-iQFh>)r@7rM+v!D12E{oVLkc|=?W!YtChuY_a_Ho=q} zR&Rp#c<;+-+Bqd*!Nr+KhP`cPzSN!U(U<;4+~G-u8n|_pA}54PpOgziAbd~q7)sfu zonq5UpQh`(8zTP2I^0n? zlZuxPubM19SZzZl(3We7q1;4n43D_*Q8O(%LR^3eqYTu3)aa5c?-@ zx2*oo+wWlr!o&Ngjos2JINJe=QFn8()Ux&f+t@i`XdZ*|P5Bc%o0Yk9i5I$As3<_=C^ z9>G@DHb6fB=c*P?K&ZSUWBWB70L`B*?$Qsy3P8d28!xw$0mN%dYang|NlBO!_z?vQ z%K|@l!TF!Q|DEcQ&EGT!|3-XkzJGiVT;7TKi#tnCx7(z5r;9tDZ+WqEw*I9qR~OgY z4*vM}k5Te&PJf?@|2;kZIh%I|@GqwJ7Yn(wnBP?S7fT29dTY}jU_k+%yA*kM!^X`I z0kWKhtGu-x)Yb#c$H#e>xS&9SyX!~tE~B&Y@bZA!xCJ3#ZZ2Lyuppm+2^jDg4+}>- zO9^MFqcvb*99n?o>VgIM!5k`f?(V>R>)BZWDG#vHyPklwXw41gx^wowNONne|7e_C z{Jb20lSBVBSRc5p<|jZd0tIJWeI)vLd-Z?tlVKB%iFiwoxUJS8Prdwq(A6zzussMK zbaev)!QF;K5G4riZ^GeU0M#GBfSVtP3x6Xv>hI8j3(U>OEpQw5exZld#2FXu6~gwQ z-C6&0I1yJxKY^9h_r5sz!`xb7f#RFbw3J#xC%>q^v6Rv6bNeuMz=?eD$3vG0GZKKA5G zz^uEsapW}I5tl2c8ERr7Sjnb;cG{SQ1w#>z|GG4R=x>Qx*hC z8R@kZ-+SI4*%BKP++I03qC#VCQf3o8G|KCMG<;vyx^aHM4F=`H)?RCbCsjn83=X#F8J_#d%bI=+kTaIbF{c^ zfu&}efhaNY2R~)O=+ciJX4Dcd)2sE3lW^17tDgSxW9H_DgWYU+lNoI6E=we+s_ zT@mN?o5C}u81I4p?F#)buvrvK8UELtmFtTiI4dWV^tA-HK5z)fm4v5pI%gs$<%o;F zgtvCH{fz&uRGuJ?)K2&l{4l^YScdc7m0bUOh0sueUR{Ko*wlE8I0K*&3bDiK5DOD$HXSubiQv z@zVP!rwb3CPiI}`Aj^u(F$b$xBWpjOpL)vA1@C$HgM}ei0XdBw)A;+V1J!OWPl@O- ziDl7tr&bth?{!vZT(ZP+e|??o`9zRVhQKD!VWxA~ga7_uRz~@3xQ%w&tM|`dy3-}E z;xqMeKVK!kpOZxMg>HyWkg0|#=ew|6ltMclEmP@72YLs5NGEH`5ZwwzOC{0%l7`Gu zsj>{cG2XpXH^U5R8G(~;@;7$E7GsRA{&;+phWV2{g^|pwZE~_`?Z{ySOOQ9@Y4bc? zA2o5=-%jRr(mkJ5j+L;Rwhz$5_Ub)p$9VI;Zof8K?`K;}ip)SEOoeaQLE`guz^4H@ zo-#Ty4P)-po&_9h%5+>VcwNL35@SN9EE2q9)kr0H+)crDT9#pHvIi0`-m`js(hlVq zdTlW$FtA0nREse~R-A0|C{+(Pj=jM9NX?n+buXV?-+Dm_5ej?=FUlTqSZ@J$E8+(W zH@1$v&Y$MTUs8^H+hd%+q$f_NIP#~{Dlc>nKM%@pnnHkO9S-z^XqWfyzYk1ST8LeL zB{I-)Up6%4p0IDXW3RQw$B&%i2@*)e^N1mCg9XXvF&dgNjtEN;Rv(C0mTA|k`aVv4 z#Pq)csica=4u-FOJ0F6|9}Cx z{t4mVHTjp+{1-<4a})^h^G`7F7T*3147@|608#~Dpdf&5{|*NJ6GXk^_8(L2|BnOz zhj8Fu)-3<8ap2!BIsP*oD2e*N4Fmz)!Nnu+k7$q|%mxAM2|$DVz(R#n@IQouTztI$ zj0Xid|AGg(?^Zc~!Gr(0So!}x9=ub+KYAt?w*b$7iU)bQ{|OJOIBKsDwFjM8p2Jo*gcc6_mN|2X^c zcvlQr6oI`zp@G?H3ppRd$D*j5yUt0C8BLeUwRGP93|j0Nh&(FPES@>ocD5oA5-05pc|pxj{4| zRS;5#sCkeK{MP2N%zXLdnMRb+2Y!XlB~^Svv76(S{v;RF^B~ZBxv(-~)V;A_f zq7mm3QN)s+DSl80g1&&hI2n6Ch>uUa0rTh~A?SrU`Ig-U5@w+z6j|-d%j31lbg{va ziYniq-{$9MbKiYo&u{RZp4GTmUMg~~s+$rqciyRa$ZP$s!D{X_`><X*C=JLipSNn^|xzbdBkhj^zy2{3K$HcI>Q;ApZhpo#`@=k*Hk~7__ zj?v1e3ou5JjJn(gf0jDFLqI+vi$1Zn46}JWd0H*dtV%g=UQ^gSrt(^#a@~JSe-nza{-%{O!sGsHQI2MTk>IP*y$6vPPaT| zi>(^y*d7^wnq5!PK}ey!G;YIC++NzkzL=8O&F;5&fGD&cvqb;!i9(cg0;8q{W(%v# zs=gIm`U`SVH2mZ?hB#`e6x^3-x<7fid#<)W%Ed<96E4&Te^sZEyC3&L(s=LFC@S$7 z8T3eDr_WLzPovq=5VE?LXO5CYoAI>2el#*7&n*?7Nzw-2<#oghI%*k3y8HU(vG@kE zf-Q9SqC$yfE8@Z3IGjqY1i}q-tu81K$f-7pWoxwdHx||G(*Sfq?$j?YK786uQF-03 zKCQg~4m(I;8-I`0ViAAtz(?&+?~U=iBYvNWTvcnZu6P|0jaayWzgLM=j=Y0$SFKC! zGhAn0)+Iyie%I@s+HXA3pHP$M?7biI4oRe>GBZNGEQv?g&;_lR;YsKPWfI+$A61K| z+^3g^w9}EO+B+xSN9TyQj=|~uX3Oen{W&X%%e37!C8m+q@q$ZC6pc6_@#BwBDIM{Q zT$wKI*Y4@{$LTG4UNTSA_$>Cm+mBRCtLt!Oi{i3HV1*LwC3lcFF5<7Ss_U|kmE-)N zlW~csWo#>4tjqe$G8avjSYFo!;6aq(mN1!-!fG47Q3s7OO0kh;+LW3sF$Lj$MCGMd zR$;;1OfEbl6LKxVw_+#L+mVE(ngyKg<6oZZ0yPe6v`&{DB*cK~z${sQHX z!hwK*AkSZ`0$Zb8KEmy1PAaH9c94PeP(x{rG&Qlp+ zrv=>8w0S=%*o_X!2L~y*|KB#?|585lwei9bQV@t3#p2pTtr`7=u|qINSKNP-F8+qK zad*IMFaZ68aNZQHJzB7(_?bzJ0{QpP%ir*FYX%K5fc3zGf}aqt&KAfXF@r3+$`jUR?NM0hU(b}M~rMiIBh4ZC%+ zTjOrMHEsdGxN&Zk_0qq2gec15p6Yk-|a>tFx+=S6&V}oJ-~W| z{f9~=W4>ayy)3xBj|2o3`!NzP_lixknCD303DYedUYjWsefKI8ead2e^X+ioLOed= z&sjykXHoI9HxC0?wo)z9=z3v&u#BtX?Dg9dr7YF1MC$`OT$M#k5Co7BEQM=AV_?%T zt5CO;grS0$lDV1E_%o7Tnl3cQVL_hka3(wZEVk~7OCvjv;gZD;J^oQ-T@)NkETRj>m7|}6x6^scP%z2^D_?YC|k*ZADPwHk{ z7$({!hgqzj``jp_;K{7x(*wIX7!CO4f&kHvgy)P=Fynvidr>I3i|htU8E1bNmZ0Ejhw zrbTS=z{+xaWYn;3!k(|acp0N%V5yl*7=ytD=RVBycZHtu7DH_7f(D@aqQH!0&@6Fp9;xzGlFvk(^i=Ze z2|2`eE#m$VtL67rOUa33tZh;`m4Q3%e?fHDx?7;G`qYYd35$NJ(yMav%qfX&|8oA^ zi}S2Vd_MB(>W1*9w>Sc_{NS1l1QOTX7w}(tvO3o7>>lvVv90uG+TiUaqwLF2?73p9 z^qEtf+%>tNrpJhEzUdE|l*CP8$FCavH|&;BKmwu;cvD>1vvE)1pU|tY=wvbH>IQ@c zzSLbD_umyEoJ8PPjWGS>+8IeEqTQ9LKEPj$($!+FY>7bTpGz}k$Wt&@R<_i(eI1l5 zO-)($xguzLr^nR_4vY!U8*Y}WQ=D8;VRP;`>AW{iLDA&O;Kpn$rWFUFeoDd8N~#A; z@#OGQPjOG0$VGjAl}^MI2Sl%;f4}BYgG&1Fh4Pg?_0FxH`Htp)MwiX;Lkpy7{P}sm zd#ha(CV9Gg=sv9auv9O&Di-ugAjJ1J61{yQ;I7vz|G_W}>0wq-UjZT0%B;kf%I?@h zGqaH2+r&NL&M)E-;u$AdnN}uv%icYKaDE@h@X$j2+tLP%3IV7_cW z`B6F(C08p2;F;gElSpS_$1VMkiJlQYkcyAgLG6#;-oa-FJ4=SI5F#K+w^8*lG^*_R zwgGj4zf*GB&XnNuFi9-B91>F(uwc_UDo~H27R>Q-?%g@hG zyRqWy3&j?yV|X3)s-J*?L9F5YVpH4M0T-GV_Xm|t%0%7AC!&x#cxe(SvK;h-`^ATC z;lSk@QZ^V8zK;=dIm5JGatF*dAH z@RdB>x&M?=S^KI+t>aXnlXK3V081h}mV3~{*aO!X7N{*4@M-LXz*Hy4Ues=GUb6XG zl*O%GK{(A=f0w6yuOUeifC)TB#eo(lrc;pYsL~gEiSRQ%70B04eK+%JQfUAe${8Xc zB~{)~W%c003k+Xa22hz=sR~S0X;gSnTb`CV zjOG#1Gdj~;X0U0xPlbE9Uh3nU-f+o?(wC-7RLLld$|$8ZuW0+e+uECPf-{a!(h)DI znuFeT=w#h+RJbFg5LP5>pgGA^kQ36uaK4J0)oL9#QeH5BqP2+WSGnGz^ znDe>O+2f^e`ztpL9k)~XCW7JN;@_-0EW1s3O+Y)HC>d*Jxwq`4>K;;6(sm~*Yc0<+ zqdjd)z$EL!&AHkAgn|C*156==AcUKz6^WgT&fOZwYU+X z9L&iB1nTzjP(tv%{AQ3Nb*jXOG6v1cf}dZ(ESKkZb7IW!fgk&eUHgky#cEYkPE}K# zCn(fjUS9D*46$)>Z+q!+di(oboSo@|>aob@5X-(WbApUepz6F@A@aV}X_Wci$`m}L z_nX9AJ%64pEG&HaBC+Z@J30AKM5OmppPoDb^KVJCyQ+r{)>a$OkIyEriu+?)Ceo=M z!U}4MLK+%QhUnw);F~dYpTLbv3WR)0CYA1LIXcvDXyIA69*eW&-$m@M}%+ooClB95Ln%jfT-WtW@MN>5bTZuTyOq>)-Lh++2A#0zR~whyC`c~{e;jqEV^FQKzFpX& zH@DCs3T6w1hL^swU-E~?VXF|i>lpFaP;u@)A zayRpzm0|DEjr*UENGONU7vE#8__66=Z6;i|g&2s9v!TZk$bA{B&xi0v|HD0Vv;}nL z?gW{x=A&tSidLSy7@b@p-zb(icRq@9Z)6No*&o|{J9b}LOB8?OKba{OzwfA3pMuW% zyE!&yOPvy>imhy%QV}cyqKhBQ(TL+~c3(Lk6m@1{k{sFxH1Jhq~tRXc{w~ z+tzKEUW3HNd3O3cIa!ltNCaYTf#M8d&W|GdN6 z_q5>g4wh8r>&Z)Y>t6H)bhj^sEFcyXC};!rUR;%--HB!+M3Lm=Qk+RA-pTG28?=m% zPig)M#5K-H52TCT2O3USq;fF&ZT0fM(Q#tl= z7tNnZmY*7F-wlJ^x6{=Fte79!2~<#(l{EE$r>4V!_M&&&yr2z*e7gsX z@pZx^dBG7k#%c>0fyt64W#Ssjf01nW!S9``%kGsGGs$VUO?B>lFYG=r5g_OX45*-T zPu6SKeUgErYf|aqJpX)_=rgv==b>B2VHP|!uaher+MVQq0ivVe=cNP?zEL9xwkXT< zvDV&qKeVNLDv_5!ll4LOvF}HX{N4#=rjUfa*HnR`0|7J+xf4?_dcbCcD~QeEu1LYI ziBFUJ%LhX^NyA>5utnsJ6o@&p4HK<0+|-2I^6VgIo4a0BC~k@c3h}4+9a8CbqVw}C zD1lQY*a1y56ZS>0lA%J)AStp>SbHX8pZ^1xzXFe_?=oe=^GaB z=bUq0ApT_WBt7t7NtUykU5~MZPH;)}2#{Pa=^#U}m3-6+|Gj6`CDBoYh#CcNk*4J( zv=KjMEQZiLm7j@Zkx<8$HZ(%~5=Bf@@Ef}@%xpZG6sa!cB{&1DI-cn{hhKki6nFO zVc-@lE^sVByt}WC?Zmg%OT*i#a`ITG!R6-CBO#(b6l~UwfHdzjqO0t6pv`cr;vuyfm?!S_pvOzbVWa#|z#lIGrn+^XsI4o(I)^zeB$B{YE~D zk=IIM5VoF0juk9`Aj>4H#@ME@LZp5vklm9ZaqS3d$A&f&;77{^FP485VsuN@uu-Q8 z-~>f8K%0@G+GxeS4NFz<+4{b5=iv(BHZv}wkBjqrBd%kzmc=Z#l2{`-aj(IR16}hC z^-{ns5ewL|M7EQtgq7ZZh;*wx^D%u-fG7jS z6b)?Xc@DTw_xf`4a6{%|^r-j;Rp8cubCo4W;m5eLxY(fh56KM^&z{LS*IQIQoc6TCX!J_bVweqD|8n7QBaa6|vW($sC$_w{-0fMipS%`rbY8h;rx^QSSxv&s z@HG>c8(*?|4F3TS&TDDNgV!`TG~9{GFS)HESh5^gqq4A{lcFz>GE2Fy`EKiu8Wci^ z;}(QBuf`@Fibc}et`Fah_FuB+31rJ7GWRu#XoCCLO&TBCeSYBQ>Fx5M+-Zu`2_7s0 z0B!2_vi<$2SmuC^TQ-y13a{8QS+wwT=)=B9bjxgC z@u|aPUt<219eCY)#rGFGUMN%v;PIrH)O)nqcCp&XiHIct%Z}ycSt_xC#j^vVzF0o3 z7>3c&(R)QR9+%SOWyO>jN0fW8@Xfb#7|eZ)gKz{;{K%iQ(GWtVM$TPX6B83%FVp>s z;hqBHk-jct=PJ0Xi_87!Z$UT{g1(V@MIt^w^FDw6^!P%||7fcSB5x!sixl*jfPlc8 zn_DAJGCz@-SlASj~maPVVO3vZcJ9V7pKj% ziD{Ua%tRA$n7vM5KQZ*-T(787Fqfk}ZkcY~&(Ql;k2zj+-sY7jlhX{R?0<_BvVUhD*_ZbiCgxmPImOOeA za%+6xeJ$zCfcs*f1(sYB_=~VgDm{HKPw!vHXvJWR7MmP5-CSYqB7&@}*ZRB<8d4Iz zI+`;wSEBtqA?5eN{}Fw2GN`RZRxao&ZdPw2N9FVwU%B^DC(&{a4O?~djJMutpoh8Q zAc^tFeOw%p?FyfJ3znopHp`vkWws?50xV2y2gmm#CW8>4KPl1Qk3Ak$#jKP*6j?U4 z=?mabUv}W1r+35yVk6bl^toPKi3&bi@W;xqK#}uzAj%bNx|t zn8Xk5)&160O~cq%P}t+|Rwr2JhZkO8SUNu0mAZ}yx^&;~q1jz&-NgizlvNm44kKKV zFV?(zxv|k8yw}D1i1=+`$-`#oS70$C{NRIiUCT)^8YXohJt&EYvb??Dc2K}dSZiz$ zubw5$y9PX=|wTjR;@;+e??`+q% zXYPDK=&a4S5luT)<2?f4WVj1*gwRK>Nl=yH-iIXqUgydeal-H4m&XiMP>BMLQK!C# zl6WAmDqQ&K6Ff2&2_N;6vy>+mowRf*y{%I7Cvy#doKS)8&IT7-VXYYW?vzxSm}Kb@_w6`KTy z+i#gOAULSG)^k(pCuM4z>A^b+=#q%!L<96DfZr^$4!ptN=WSc;b16No>=4+AmC0(h zDhNGBw-vs?h3RT&EG%qL;gGN$G9${Tt}M^;r*JD>21HDgN%kP8e){wY2wboc%K6;~ z+IT@qxA6)YPy*doHRe9R>thbPzkNu8@jHAgxla`!u{p~A)>-r(CYk6UwjRS9j@0#m z1{M(bSiAn&im(9EXC{GWs}yRGa;zz`bztn2Rm)zc(O5IrQ)3lH5~w--I0p)Q-)z0F zP(Xr(sp*q>PV&V;Aew|A#kC=$Jnf!fqpl;oD8eTX0Sw^q#3+;xCmtILY?B}tB9CQ< z{Zx;6*B~^Buedz>Vj!DzL-1*J*_ul48umMZZ;wv6ieua2)szJ1K3k(v#+^J^bi4|4 zx@LL$a|#;)AL=q&Pr)_0Zn-M;Em2$p`gV6U`mMYm`G*5&+~e~?>Vo4OC5VCudh zCZ=@QMjSD`S=9Aoxi4ApgLdQ-5- zi%5MO!^I*HXqwU#p&7W*AFWTuxc)j#_0W9s+u`@C2Eg`zob7d9SeYHWq03K;HxaM z<$PPn+43~m()nO}W!dTt8=zL0&?JkEsI+Wo##wOLW4X}qH)6Byd&cOOLdzGDKvI5~ zu^2;x6X*&XH7XlBcG^sM{cv@S=$f|=@urd*qJLf(vp`GIO-SQ2UAnsFt@}w#Bghz-NEj)?%nic-IJlTvK25{7a z8*DncivqxvjbI>~NuPdco5=p^k#MoPQ|i%CB!5UqSSwh~Vg9rSe$3gl#t-4gnrlL_ z$$}n+{vuH|3^I58-OPyPSQ;N>HJ%*y@ML;|*4nyQr}j`LS8`feaO|U{KLZg5-6tSU zT}&{2{`@>%9B0Z~n)T2)jL(4etVc-id$^f4({sS55L!0Y8D))g%$&!HFoxhIjXkl@ z2H)~sJ@>i1SLAN;?u@db6tCyS>+Z)-t|a-9=?i9OujVs}eGHT8)_w>>2U|;@O4wwb zYQtnt+4mCAK+UBs3+h}k5YCnZ!C3N1-i#nB8$^)HY~$u+1N8|uNY*L?QQ>K%EQFnb zE>ra|ItU#=BHp{!)>c+&!US>M90}a;yuHwfvRt*BC3|$)lMINw(CRnJ>Www3YKtMv zaU_tie*jTbWoYX%&`VO$$+SXUXg_k+_*Tdz4^IcUuV~h`9Uc@=Pb4sD1S#~JFAL!K zGl*fa_x-Hky-%>XY`(PA00PagFV=9xo0WGC%uaf91wG#e-0qYJ^CSYph1~171T4ZN zXuYq^a+)Q#u}SSO`z?{TU3Li>gYxa`cW5V3W~}i)RdJ~wWwnyvINv*>sV4_13;6m! z2y7(-Vbo-`E=5};G@1@Ks)L$eS~9@&NWV^Y1;qAx?49MlP$Pi0Zqi5-@2ls-kQdrD zxLA#TaC!GBXCk1~fiJg1W2J|OhtmW|h)OxmzqUyaM`q`Z?;Q6=mmojnhix2lB?7hf zxocXOi(R0q;=w8_NId9W(~Fa207}#kxndz>we@)Fe17F`6-?VO#31o2Wojww`FV4vsov~!1q>II?w(n$B!mF2i!GRBL6_JAJ zYH3YXHhhbBL|h+Z$SW*#$R4NI6$aiVZ3i~&Q9gATb204oYQL&~I-hb~);2-oa#OO6 zv%cKG>#xFdD#Rp6Fy_0|@qD(Tfx6|5JowZBf1_GkcRQp%9It~03Def<#JXxTj2&uY zPiLE%Lo8jvmm#cd}3Jr{+>c2yq=#q_zG!^RkzlvHA^zWA-^rllaoOi!mKb z3y&m)XVZ$W6zDfiY8VuV7I`jetr zKE;)%iufNJ-xPN)>da3Jh5I=iKh>M4_srcL94YCQmckqoA#S@ddRoJx?9a8Lt-7;2 zmHU#dw_mKJJ}Z6#xtUYMB$EW;g-db&KWL`vnUdFz&DU>W2vpgq%#X~JjXk+zH({t2#7ErrlgevuCq!e;1b{Td8l^pu^FO#e1-}gLZumhRuOI1$owVbCkSNsaqVHbo|R#G zcU6MzFN`dK+G_Bv(zUovnVurFExx}~S+=Wl)LG*2C7vr02;)<<-AG9IyQ9&qXOGrI zL{eAldfMVB0MCfh=}=LZ#6ka2oBo($WIZk-#>;I_5;@DU_wX=gA)EBWyR63V4EFXJuQfBD3C?qd&VD8yTT^9{ElLDk^$9yWPs?H130ixnM3r zT=BToHL$#H9uj=HwjhJRifq|LC zurM`rP;m5+W3kMo8*vsRBjeyuI^u{}^n?D5g4943slxnEVMtXBRc|}BTN2rf<~wq7 zp)tfxp(m+A{)p*V(wg>rAwnuC-xijzWU1zASUy))CQeE9PIVLXYY_DFtK0p9%3ym# zX(=%?_bi+r3c4P})4REaXT{+WsI*9ipfl`mR^VDdBWT0DFetbq^0tD52Qi#bB@?PZ z!I2Lp>n*IyY*g@YU-d$Jo|)OA;6jBdvEne0gSnQ;BTyZBb*nuuc1|N#Pc^=YpZ*-M z#3+;{Fd$;{aPugU*gu>+dK($p$*zwIm5|U#zoum%i#;)^7uP7IaDO0it^UkO@}CG{dO}j- zXo`lD6kk2yA_YIo>E*r**T7z~)8!1n2yct;5X-}+>jPnHW}_ATWc0x|weB74+G`cN z{6VeEgKH$=@(oO4kbHQEo@7D#*t`RX8u~qssZR_P?WG0`8!{gPu-(`9EVuus-dCH_ z<%7>fOOK+18QbBC^G06}m2bEp(EjC1)zjmDoFhW%$e!?_ap%~bOfe7yN^A1@2(co^ zXV02HRu`fQQr6WC%af){7yjt-SiM;zBIxpK{OiBVv>nua-7QqyPkK>1yB{Vd2Cy@;Z=NBqTZ}A1q0+8`^PZlV{80z=o9h^E=N*Zs$S$~Kn;xK_7 z=rh~A4|~XeEKTQZh99Lq1O{Q`Cj?dsgmk~1oT$q_p_O;(HQj?z>5HZ^lFBtd>ZFR9 zoHaAbFImsjZNh0aMG4Q2nZ*S*Ux3|3vGeuLqnM@RVf@kZLG)w%p)KdB0_gMChl0)UJr zR&qQI3dX`hBk0 zBl+*7O-Elc8C&oRXCmkKd@iuaXGm*>mYfNHgqCWlVwTDHYR@&W%#qeQoTMR~u9zpL zXNUA^TOz!#0v0>RGBPe`Q)nV-D1=J0LoJFVUHd94eX)&1 zBMKg1l+o{}?NScsVH7ryFpb}B%c4^$+iGQ6*{mSCptp=k1_P_JKJVn{tlc3O>+v3# z%tK&GMM5&fn-a)27`;@~fejQ{$5f@>G;hMay~_8F@kK>|;zvxb0iK~5zRZaWpTj8r z&a(q*E2HZ90N3&=99}9##cp(ZgAA!kM`PZ$aZsANWI(+7pCJdR+g>nh>y25hEsOXW z8yjd$G+w2DA}6TMJN91Q7`kzut6^Ya8Il8zc{gwn`@%mCM>FX<_x^u;#mfm?u17PQ(GDU{>9AasMgP$+Xp0%~9S+7_L zGIuE|QbZ=mf|9gDF3#@N)SLxf?$w3)^<$kE;Eas$-n%FBOa=?s9Ai{r|FK|LLpy4- z&U?jXX#0Du=1^~Lx$OV|nV2Mxe^_rc^ft_T1K-z(ggIUBKS{xS*h*HuXhlH#aC0YNkl?DSL{2>}x%7^Z}CjA8t;Q=4&8k4LSWnl~`aT`I(;$)2t zdpHIx7}qtPkNUsR{cFpFo489V|C6{M()i*qA3kavw&A3!YBz+ZPao5;H}gGxhE2Jv zwjY(6+*vcHry^8!4vX@)ya}l3&#^ndURoQws#@9`Tljf#cyf3>Gd1IU;d=qQ*l4ji zSmo6V^}vP#ztRzq>cafT?L3hX#Rv#ZE6H@KXkC|^EHX?sR3HTLu~)J{c8CD2WU550 zw14Cu*9oHjiGN(Di25t04oCpIJo?O$&bM%2ztj4zmxZ^IPynmFMRc3&{=Pr1SKs$v z+g^CTjw9s_pO8bBCw$)C@?S4W3da4HJ56R#TXPAk`hVH zpDn+a{MoXA>q7YtPGAVfe{lYVG-edK7=w97%)+Ie9tnAPCu%_#IP%vpe6)wZ2vA2( zeqGxWFr@r0>X$AZ`d`;3j7mJWqI#`eml|~lyle$w%j8yU?3m~-k~fnl6%}J5E3~|_p1*NR9uxm7}nJKbDUv%mAk%grvQHF!5{4ks*c$v6l8&^qR$ykBhu5+r{0Gau}w_G_$`Nv>Z6r?QOm ze-KxHeLnDqqMF%?^8X+}a6Xy()vGznCf*;?1UnTf{MM*-OaNiL&w6F}>YmH zl;9M^09h?f7h@uVywzAl)q-PIJOX{cDNCga&@S%YtgZCRq{9j6tGkCKAMw7AwKXflh#zQTb5IR8g<6wC$a z2cHYQ1%xfF&V5g_I9k&G^}CtGQT0h>bvcE^Gw zZnxv!9iX_~`1_wclCAFl+Sug{H&3z{BhHZZqxCK5yIShY`9Q&$8yV0k0jyoiZJ!Z( z9~1#`R$|Xwb^=`zT?;PdT%LEDp)|WK#t7NS^cPfs3TXPO%^z(lPop;@EyfJ3>h?{q zfY9mt1fX)$Th;Kvz#idnNBb0&D$onnRM^+XlnHMfP-ZL1cBNO(XdUPqP2c*65vSP- zjB14_@J9nCXcimF^TYm)->ZfnpUR8K;O0eOvTytwa7*ozZ0}UBRG!F%A>XZ+(!3 z0khc}j~u?)4Z~jwr&%f9^XY*;*+qwiy_6qknXsC8d>@Z(;S3(ci46-|e)LB1SY?#M z>qDEU0|=Cb4V7m!%~qC7oFU>ESbQf00%=4*=y0-C>Djt>qF>r_0WV{2AGH!@D?Lgy zsHoLp7OJVo)=Ubcj%nO2On8#;6?;1|Z;Z6q^a|&sU>yQ#PCB~!2KUKhNx80PcK60^ z1!L%&XO?mt&bP|B`2O^(qAHVc=kyIzp#rfQ4oj^5gwa=LWrb&-b*lNJQ?owD_l^q|iw6w3q-Exw8n2&u(+18ADJYM$5z z+T#cdtQB6$qf&IN*leF@dyXxM^kt=HF$6v)9S-zaDpg{JammreWs2FOF|g8!jV)o2 zjB|6%?|Q>mBtW;>d!@a-_$vL3^!C_`>e?8NIG7fC(Y(4E}9o{U99(rrR@mLe+%i$iVxeDk@6AS3; z;vzlDB1J2Mwcv zfa!It*TT`8Wo%J_ZB|A0uCpDz@Dun+KlZJ%@a1rR8=Z1u2IL?uN9K*M|Tfk zg#(B1Ok?TN1pztZ&?r5iAm#$}mYGC~)iE(O)1_T{KpK3%KGWB1cXibX;!`8Iz5oK! z`V00&bY|SPiEy$^xH8uTlq~faSEH3qB3y+{xcI6^$j?h;h!srp4n^lWSLSNmVNFRg%78Q zT{30Be*Y;x3Js$Ct9NT}l9LwAP)Ozb>+3F@=N>D3H8|7^rkeYIsC(t9d*!@8&T zu5GpJ9IDn9@2s)?TW{OPbH^2(!X7@qvp)kHzoLc4RF5xC)_Q*alynhj>oHK&opI88 zezSiR<0cn37MI=-{^nb${?}wy?V{(@o6k@nQG6h(%IF@)q6%eVWw6FB-~V z_uI40i6W)rm5%4Vsj?F}>jmyeRAF(x5`ntr^XIqK7Ui0IjBa~&lWxFUg#&#Jb-e)D z?Ecs-9IXC|({`o(@nEi|zh{Iy-NnoDM}^f2*q4;HG#!gp$P33fp^WB_$ya-L5F6_s zI~)JCJ`6LUgij-N>m4h~w~PpQt}=0Z8B_<0|8?ps~0SDG&~9z2!fK90;G znibMw1Op+ape^`rqFxe_^pX+IDDkH~v$+Fgwh?>R3#%TBCIXg@kCLu=8M?gpo)Bju z>OQTq-`RP2$>d5OU39L!b2bm=`5-O*X87`QdVh+6l^#a9^dd1#KJC$}#~BUVf#gZo zrCN(`-9Ih0_^4iTRHjFzx^f5D*Sq%E-)_EnPrY1zJ+jG~{Gl%yGiYoiTs`l!Mo<;p zS1swN8cGIfd6&99ceU{Q6$r#8@nYf#`>U(WLW>R^9Twu0iaa&lnOB-=DIUBv8RySr zS&pM+28wx(>Wo_A9i$EXgt1GRqaAAX#_P!2<-TIVD21t#E%vXreJ&(Gppz0HMWFSx zXYQ$mJgll*9VS?TGTmhw7O@Ji4aqa{Tg~RCi^0B*B_piGnV-B~wzzT`<&5@VYD#mN z96Wy?eZtJ-NrAi<@doh#vJQzAD~j@2vqsrr*#aP{)jvd?wiRiq(ucTc9S!`(?M^v9 z59*2T(Seu}jYfWBtUCHepFD9RZT~%Di~IF*=`%;;FM6HcfdMP$2mZzybM+~TA_~ho zD{I-0E@>Va{AtKG0Ok8;KWtDg5WbvdP+l)5pp`1lizD6&94c|UwW=B!95dQ*0@sFC zj;wlGl`F@+m#tm5iYZ@~1qhT5OX5!VX{y41hB8VP=cUeVK=`GKXcpS^3RU*2-Xf#g zcMcJHCC8!`f6yB6pFSC29>L(6{#V@3xPH^kQdw=;Q*cO*^Eg9sbDW6;GC1;2GuILJ zw`hMMUq0(25OVVC*GgKia)a205v3|?-Mjo*UlBUBgU+`Y&yqHJ&5IY!1U-AIL zqEE*|IhYW`X3~bn!28Bv-ZyHcsY;ed9aON?VkpC>wSl_mqGxgHK0IN{Kq7In9HJQ} zt0b?)nL31`gJctDuTHNK zgl*ceYI~2Rk-i@%fA+>m%Vb~ zNp;q9Gc$YrAUu{O!ixU|T>ImP{o~!`iNr?A{FTC&A)V&JvLM{ZIz>-~QFvVSa@TML z(;xO69JI5mf~2GB>Q6gWfu7ya88iC`d)y$cw1r7W zjU`8F|A>I)5e2$lqEv4F09q{HtXbO~+i6TkG=H}#*H{;!4rlmW12|p#nANYV3Y`_n zSNf(EoMFXkrH(?*w8)fYM&dZB=1R=*^VFGbiZ$Rptw85-@CtT7fIa^5={uvvZGH>y zfT7ygD{vr?snU)Tv}o{Y4-wX3#|kZWighL5i2d}OX8i1Qo!y@XEXpB!x_zA?d^iPT z){ngh&7?=DO3EZO$-1h)JG52XothZQ_XtFMkwKs=AWNiI4sVn_-Suj5m7lbxN?vh2snV2<4K9<3H%)7!gMxB(f&(e#Ps(&6mOP%0~{UdQg!{xDQC_Ndd z)?#Gwsn;gHeOI$OgE3O*(+5{+`{dGpO2d#wYYEgZ0NE3D6GbL4rk8L5`7S@nzyEPu zQpc;Za9&6gG79OoX9$+#8)lpzOE<0qh?}D`rj6aD=QFpWE2HcnztM-Hxrf{GQ~k zd@i2;2&z-DtM6_|Vn7i_j(|XDz?I#Y@Mt3HSalR$(s>OV>d_+cMK{I01$7^z$MdOL z3AoqPv~L!;Dh7h$uXOuTWL%#P`YQU*Yp}G9?#H(7hn-V>p9n=f&aAGKw7Pw*`-Bug zq91yRkR2AyYLXC8eOUKvipiH-t5jAHZOY@6vc@)0XsL$kO?4$xpg_cu={fY*K38}4 zvl*|%aAFU|{LBQ90~N0jq~nY|1tZMtILDY4IKA**%t-7Inv48%?ySeG@9C-LKKke` zDa`^Q?Xg0va%DfYgZc22ARphWtW1+3c2gLR$E~TBhX#&Er5yH+P&!a2+Bz!jAA6ZXeV*o5aA8-7H|9@~|HVjDX3VcJ!a7=L zvU`d!6!h$r0GxbG!Z;Gtjk1U;(fu%*Gml-swYTA1tWy)lx#U7OKkqcQ=z+5zBbFI` zg?aj1rpW#D7lID7`aDIRFSQ4{^P7;`%38%be5FDhzE^k|@p>O>hj}gGLH3cn5_lt* zTGTJI_pr>0i@{mn$aAI&!HI7;(cjdI<>MTP5il|-~2d_%=SR^g0Y^B&P z9S5U6D+tsC-2T3A(@1?+8==)V4AdE5T}MU#aLkeSRkm!|IJC?P7PRUK+zC4_uuQ!f z`4CTJTZsdEdp~?%)%a?_g3N)c0bE)|sai!=79G#CRY4@- zV)V#?f51c;ue5ep)@c*Wo9zYG6Rf~gZN}yN{YH;UM#kR&O zmK)p;bC{F=O#-pG05w>!UZeqPun5dRxn&U=ZvGkpF2(+{isby;z1>Sqp7^gz{Dpvd z3^9QsEV@jj6)?hJiEqFM_CKRw&wnEeP#-8VuS(}L82D^s_B^y?23K_i_KI2*fL4uw z@6CT|Eunv~`{Dc#=K%%%c&Z>@!>_{Y%ysz>aUJ8oN=FB5UQGOV>RJ6;z3hL~I{p7% z&q~_yqsM=6L94g_Lj|q=E@8#@mV@vAQo(BCuL@S36o&@$sP}@|Fan}fXy9>Cn*YQ9 zti1AaiCN-B?G<%C^4lGtD(lUaOt!?{nH2Fi2sUk-ee?mtgoVLlVxdt`5sQL3{lm;b zSP&3ZE)@8G0uThJF}D5OeQeTrXK6UNbLu>1da=|Q<)&2R#(msQO4#hhn^Dtr@4DJO zT(g@tGCTt#GAx|>eQwxSb>^Q8g4kxGLKiMP*cN!=zGgj?%Xat z6gr1PVWWkv#QCLu1YL8J(LsV<`jXb%URz>uK6X@`X+AKNJ<9}GDI?3_tG3Txh{LAO zGAAxuT)ievrgXgg*ZAGld_1_V={`s*bLkn#ETbJk+18`cA?JenV)EQ%PHQw-JeYA& zV}`sv`*2|64K5nO`_DUNKg{{aN znZ2r|(sxT(&5Jr|AL0dQzyn2BrF0(e=&M<6J}6uzBq#cs7g>%s^d_L2T@4iWq&7}$ z402ChB;(k*@Kwuk>0R||W|5?+O_(X8I`daab7kQF{H9M(UtBno?+!WaM4xhA!0m7r zV1s09yKq!?7(AAi`T2G4OXtOopMUjhz4(~)bdzxUnR-Qf=JC_^SFwZQTsDv$r8#Bq zAR@AMe+0IQGLw7_#XOh_k(&V@kBNy1m$_WtEXO>yTU>drTM83(o<27U9|(%W{Ye!V z*z(Qw-D_66qv6H5hU3TW=dt0%mh?*Gqg#x2r_q>^p&@ZrFQ@HOTd&s9>=9PsNvrh3 zb-iDF#}3WJt1yUDrv@w&kmtTffq6Dn#BV2h-^WL;hkaV+7~&C4&KE0|ht9`^ys$1l z2EV^OoGyxADYU3hJZ{5zrTKKwFiewtkvZ3_H5VZy%r{fr;AyHHvbxVOIu z`EpCYG1BdVYmw*Pj%xGe{>5mb-v#y869D_iQt!;{~rIpQBAtRPw1?~sE;sM1b?al;z6^FJp&XJj9Pr*$5Xqz%% zPYHE(CV^LMk}8qte@n!MfL|Qb$sVB0Ynn10S-0%@d-@KJF7L-E1#YBPA+u4LesxA| zg=hExeKJF^IMz_Dq`I1&i2Jc#Lssi%Ei%F|w*~Y)w_(l2I)jR)~cx-|fwE0mU z9fsKK5j;4j5l+|KYzMgp@h6el`u$B5cS%ruDNG?ZwjSNPl5eK%Jo1H^1lavhP<%5? zAuzW7V3CX~Z|Ta8uWJH+=q?Pg@|8?6NsSC!{Gj54i8k1Pz* zH)?z&srl*#9-rj{dIEiU11KdDrhRIvT34zZ%VDxEc}9Ut7@?f|3A4->itO^C33S+d zeFs>>`PJ9ck2?OBSD7~L==$86i67bXIb)T%ETc5(KiE7|$?s%dByr7J7=3_I3yYJ& zF6}FSnKWa7MR(Cxra;(g{e!8;nAd_P$8-|EOPTTB>$1b9?_gzqG9U>pakChcI*Mj8 za-Irb_Jf&lEc^xd&Vppt-jC(zxj4LCkmvIT*L6#93wMcC$LRk|( zR6q6jkxhX#&yycr)ueb-`6Dsr$A3Mm)MbK;)QsDc1{=@7&bdGV2A+Q6K`$cI_2 z*FGS$|8`v7v&Vz7Z5Ndc&@fLt*pv3vMldfo#)ujWO1``KAP$DY-1}R+&;ZH4L4Ye@BLY(7B)HiffcSt8JQJLtyaQYGrBr z-Qwfiv0i%PTGl42prdV=x#tEe4+&N3@(rPa1bBjkeAfD9Od5umDs}pXvi56OA(!uB z6LqddltDQJ3*y{YX>S>B&c7gRPu8X|xTI#v>1~MfW>#2$WYOBY7;8TO5;+ba`&WMrfCPX%&c-2;)N3-X}ZfydVC2T2Da1fH>viI}xNwJ&I3BilBkHbY`C@_F_6I;A zN6w?smUH%8F&QpmukAw^K=7DPoL7Sj2>k$Fo%zGJYb9ksEm_D7$#E71psQLglC}3L zA|8YyA5+0_4MzF}aRWkwFYFK+VUEd8s_5cJXp4E(3w{OnDpNYx9f1gBHI z*JueGAYG98R>f6oJOUupRc=c2v?>ONm<0%!T$fKsh0>ltsceEU?xA`PU zZhncEDfx}p{aPu^REi^)vOpx2awIG?;mW*_lbZN_a~{z|q`Ay)l&KbsF- z&U|Mnj#45>%sAmlxhYse)_}7o6$_2Q1|n}I1pp;EzP|u*M_ONiN}Moh0FW6XZw&y$ zOfzB|@}Fg;IXN_@l+1%U!5lRJa$K~jIl!EjY-I9f4u5LZiwyRhPA^j-=J2nni9f|b zB5nKfDQO8u4qkAWQr8B;LX(v_HvngR8*7eF1K>bI%4MWDdl$c&z5~SFGUc?21Aq;= zS_zTnVNF;grN&^1;Z5^IS^$?ts)mIKg6YJN8uCI21yU{#OijqsN(FEkq-wYUplXDv z!;9XSBYQ71MWky4fzk6B^XboLv9Gw1ZjCslf1W9F277i;B|8GG)W`IQ>w z2AE-?;fBLUfMFza1E?UPvF6z_oXRxB^w|Hi!?{Q1zCVl*8ZBTxVoEhV7w8mNGMclw z`(L6TcoD3wmhYknTpWFWf8X6h_W@2E1cO&YIyp6jnm2wRBf#SY4K1 zrxmz-J<~aMsn*gwW*T~y%SmqZ8l*5)CvMHuQ+gulf!|c?$TASL#OdqwHgzDJDjG8pdzKHb+NW~yN za_MVhT4a@3DJo8I(cGs%aE>x2@{%jEcvXmapnMJl2`$!~o*Nm7QVlmEC1TW-o#XiW z__6Ie-K*pHPuqP7_x(}R_Pw0&%J6U+&rzP0R;ddyhKm(CB7;H!`bNI($XfQFl5wqv z$qGKgU@#s(GI%LfLaa|MB?xn}jt^B$_X8h-^ipb&C|Et#=r@1`%V|BuD+vpb03qqo zqGJL0kJ4QlAsoFb4W`FfnCh#DIg=H0Zm^MfyyEmO7FQWdBxyc@n~!tqX2-0q!$30k zJE6|I&5}<=EUd1ho)z;kGaWuonF}6iC{Xof-{cfKe5}4M^XZ^q9e5UC8bn)1x(WIk z<-n|KQdC_I*K3X#HQ;HpWuAiT&s(Szq8C4eb(QsD&XCnGC|))ygpj_i4gi0XKID5n zcvUPELKfTJ6wVMm$BvojHJm6OYrY}a>-@`_2xsHvF~)uK0PHM%ph+iw6ZR^EhHpG2 ztoZ9}RRrP&wJUCfv6dM{HoxIdV(3T=O%<8Aq9tzVR2cPgTG3m7yb!9CWt&jDEgtJY zjm#BgnYcI0@Hd})draN8Z_z@ifK=5GmO=vS5Z6q709d(fxufqH0Hy8eDV8IHa;@HV zRqa7ieqr4nlON?R_oL2w8QDrGjTP6zWChxonaE94Td5D_-TW?3s5R{di_GDGdyWiH z2D?$6hfS6wi$di^JT)fr!Ul5o1Sz6GD}v9%9n15H!uZl8!MJNZVC6C05v>O5{uLYDNQLQxd9`*a=MR3Sy4#J(;yz7uIlRu#h7q7*zlzi z;`ONO>~USLAUKO`#OHNha~ip1b#ILE0!)4ZewBw8 z@&0+iMBc_v#_`35j1)u_!iY09e%g?Nv(YtI6iq_DdG%$32X@#r4Z-UnTs*PL>h@+~ zI2^KiIo9B3HSKWKeZ3^|%1-dU(qBZSpWU$n>WSOx6X*3Lfg2y$=IHqf`h5aD0hXsBf=rG(|)M_peJ%?0i)tuYa@dyi_m*Y)S zUva&IH7X_pn8@17zhgL+aLe~cI|7^iefZPL-&Au34RwS?leosmh*qpJ*;~)8|0bAv zQO^b1VVAnAB6N2%Cs%)-*B z(vR;>gR%z+cYg`bUU}5GEPA$i{rp=Dnq40`1PgZ4<|-?ZE~QiR>lCxR`MxS7nL^C` zb7u1Vf#lsj;pK}4P#T|y$5S)J`Y(!zr8~CxlI*|j&_C3u6l@#Tt}dkJjL5&Ftv&dEUh8M z+f-IWB-nVg(`cE<@5H$(nuu?GY5FP&agpGGs9>5FU)Uv@KcRDcW~N8WP1o()KHKR+ zZpZic5?31@qct3Ytk*{lruBEx(gdU2`K0OZ%Cy~npnnSRornKE$52{g)XuN`BrWq6 zY3j3Wx{3K)-X!%{7WlAm7L-md0m(We{i9!}o+bH>!KD&BqwM*F`R|5CFM(q<(e~>% zLe;ZBs~b{H%q^jpc!y#>#n90j9cIAoJl3pR$P{S09+|Ooas^nX+sM3?iI2l#75D-n z$i`EWh|9rwz0B)E-8@p$zB^IVws)_wXABUT;$8R$5gT5F9ffU236AwllddTnX>~Vo zvi61goog4+$-K=HsA9j58>9>4pS2x0HO|mbugqNBHy4T<#K|yMe>)tsV~#>VuX<2; z7?lHmUYbhdxZ zr|Y5Lljx-m^^`v;6l6`G54G-}KORazQU)cK z&I-DoocvK0m~)8DNZzB4=Nn(~K-WKzB#IDalsp7KMu89vgk76~g1Ci+%273F4Dc53 z+3$5mNfLW--sEz8TbV;9f85{&9VFzGFsp4?OGJpJCJaCM*)F#sDLydXd?<{@(tx7V zMHB`Q-u_nv6VCWCP^~1-;lmb%^XQR)o!8b?n-Iw*QRhx(du0L*F<(xE%0Kxb5Lmm` ziypDQ1{sdSlzFBqO3eIWg=&A^$@tB~d4kqyaGfX;&(0YH^-te%vbX9?zz8feMn|(~ zFFTqmknn=KYIXPBdeyaQ-gQKDkcK9$;rq6%t>t1aA%_U{Z}VBC1f~6cs#nb_u6Q0; zX?goVb3GbpZ@v{`w=`e>*+5Am)RZlo#EeKAb+q6Ei>;fj_W8=Hd`8>xr68)-EgMMJ z%VK1BY3+CCcu|nucVC(to>xSvUH-O!@AL7-t2cT4=!;J6GZ3D8rSHkTM{rp*O0#Wf zJdr;p@{oVgBySl~D#`P*KY{J_2TL&!$9b(>0!iGnHnMKF{CJ_aomg3)lb)&RY3;F>7k%f`o|QrMh0- z)G3IzFSE1doGh^)p!j*6v-x2-KE^xwQCfE8a6Y^L6Eo3;c@pITo86 z;&R+hD$MZ2@2~kkPT>x0JJ)nJR?LjeVMzzR&wY*wt;a=-6&O3!cLLo_ftVvHHDL`H zic?(>E!^b-&iqIiJ0yoH7UKjzc~_neA_BU73oO+79Aj$85c6bzSdIMod~*KHyAZJo zw0z>fptPYjcaI#oZ0q3Y}eKb+{rtEZXc!G2kN6CzZDMmy3wp|sHGzScM?(LCAC z*92u)jbKTYV7JD8VRF1GRV*vW7HID53C$;z#RHN_>B4FnKimSnC$p&T8K z%e75E9V*ODKBY=0*fS@MFMcF4hCQ;s-D46h8+{EZG7)u7Z?fm62S(B*6H&_0L+{nnle~R(q%0)!EzHe^h9ge$9@RUCO1}#qQCy# z7tY?O$(Lzy-03key3x|Wudzv21l@MK$+t^xF`<&smBkAR_F%Mz0Moly^7{Qpgc^ck z#Fn!II9S#ygEs7wpxZYIpA9^okOQM!;ukqLqyiTjS6aKf(5@E0e*8XqCrG;fIWULhF*Yu0xl=pVKN=k;nIW z8IU_jK$qs8n=6l_NozK%LC&(9DDz7$M!csC_SwCyfbYiI7^+*biSFNvM?-2HT zQ?rxO0Lx)e$Iz6O)s(n!wrKS!WmhZkVJxdD+2Hiy%R28wl|0u9d58AIQEFKrVWmb? z^RZvMuEt^W5cG|1#is(OuhB`<%@>XJ0^g??r;sv_HQbu-+PS^HPdfS|mMji0K@p>b z#SB6gU*%K{c(owYjVYeu+v}o%X|F~wFN~IB>emFF65yC>p zm)?=m-rx2BUF5_ORV6Kv5fyI{B}}|-oi6Y60QqgYVLac`Z7x&ez~0<%PS2MS$!0=Y z^_;b1d@=OI_;n#|YG9|KO)_#mX?kF%(uYgXOiBNBp50Y~ecxTLq7=rohW+yVu%gtn zmQE+r{(Au;AuWv#T`NZcqP8D}-gtZQzz;QpHvYP~j7aoJ{7P*-&)0bpE_FJ2bRF>! z60U*;;06a>GH5HJ57#T+NJY8aFzM|b6G2`h#8q#!zb8F%lyG-i(#JD39>SNE>SA$B zwr%V@-J-wL2{{LV0+v%Yt)AKOkVuV;xQo!d*g(=K+&|{|6w=gie8dd>5E-$rQpk>+ z?_>TSK?A-&lz#mcYt;SF@*TeKi57Y`X2Fa&OdclIf`T0lTo};LiJ1aVH6d#Jf9xPo zGlKNqSssWS?tJNrW{N_B(^;s2d5rGM*i|34O{#QR^{?(uQ{ z|D^36@4vU*ducKa^kM#2+dVeU|F-QO5W9y6q6C7LF#T*}0)Ye^#9(ZYKbRg0B=f)g zhyQCJVfkMf=2VUQXW<}IV+}%C5C~fW2_*XIMG90}5GXtc7DVwj0R*B61%&HWh6cs_ zhaxS%0vhcBiQF)hfJ;Rf?mp7OYhnd6|F2>8|Dv1wpV`a_G)a&;k zGNS)%gRlUd?C4%P*#SY6E|NbkjUmVSB5Vs?~xQH0AXQ*Dpf_>RDKxG07td~6#__Cp2_RRl0lCAsF%`JTg zC|yPwTH})H00l$}P)sVf?D`-85>!%#_DhxN3|9cT;v{q`P0aDMb&RC7-EZ3vBf_vf zC2~(XTfCv9Or(<48v5;%OF#T!K}LRUAqLg>r&?gao?3Nn_yMM|!4LU|W72~! zWnR885!hj4WVzBnJQWPo4_q-Mima4*4kuiYC^Mi3pS)}4fDsg^6c9tEuC!HW$^i;A zL`@IHWG+6=^$`sO(u1Y-Z`?}Iby9~0(TgfWE0-ei&K!pIcXc&+PCToRl!8EYfU&}u zrfj}1q*UDQS46F%fsOGWPNPp?O!sbqz;?UulRs0MP5Rr zDsa+8Uq74K5q=t(g&# zk~1whvV;PKVkP+3)!tdRcfC@i%@~=+ewE@(p!g=QnkoL9wiP^xP)Zrvb)2zgKP$sh zm7PWSM?M48stRBZ0X$d}w&e5`5(a?zu@YqKHB}*$q*AJ9ceVED@SB37RmV9|c z9W16ZXrE=d|0eo@NU1e#Ay#H>*=O%8HOJ@jZQ8Lu^K@~H!GR13 z#gH^f-Q>K+vHf%;1{*{SECy37S%RgY z)}d*GsRHAzLJ4=fQ^%p;V=D+m2Uv@CyhkqT^_z#xY-0s7@>iL4N>d8)NlTewOsK3P zdOm8EbQad$MOg%(PGHv+uaI9InKVQ(qORVUWkY|cLnXm{Lqksz^GQtr#XZ2*KdBfT z+k8aw!$>cOO7j%-yE~L%XHbfBA36VszF47Ol3tPUkN4J}otxnljwFsu#itIqB{6G1?MKcudUmi zHnwcei}*5v*&$7h?lJ7OapQh&ApdF11kvMLuYE|K4y&&AvX^RF3s9_UCcoL?ynYUb ztR^l_Ocu1m6o|beK4AGAp%~-Ljiek}Y(Sj(HQO z_ZuDHKZgxRyyPMqe~Uxouo*;-z-k&td%OP4c}K@0W838E>pJpF!$eB}M-^p8Tou9oBN6%An}g zc2?pYDh0e)I8Erx(d*mhDS#3qYylE@b29(-!)x-4!E)7j*a92(!_3Q$)~LMnM*~Dz z&S-$Kn6hj5wu!#w;KD_&qvg1;BKt8Y`;sFx{UWj}p+QVJ7d;T0!QFQpbU7z>`={&I zWrv}H*7Q%T!TR<$V?z(oB3V-3bDTXPCGR#-g)G%0`kmSJR|@kw?rzP>d<0JsWqZ&E zUt?%ueEwAFcM;zdmJLSE%;FUFfi;OlgWs%ad)(NN91dzd)V!F^?`P-lxVsbZa&i+5 zsd_h>JCL2u+NLZ2~k)G9&yEhE#Tbc#l7mx3PXlNUaTC<|!O=iVO3 zUI>=~s@u$Xi@Q6w3^^hjJJYB9ca&K}WinE-S7eXpdpl=Vc|!qqQ)JGl7)tY|=dbkm z8K@TGD|U^&>oXmP+6$Qi$EB2WfgMnSl^_$C9a+_tt;?jCdGw^`j=SmZxwIJOBo}G4#1FeI zXi9`vBg*DWDcg?w9V`jiPKx4oo;F}(At{I_ML-wig|JAkBG-l)*&_vmNAMisi1VFE zp<`|^-_4fC`?uO{FzI`_F3*mUtvy%zpXAU$S3J(7T@L#_)FBPZY`~ig$5bbVM_J9a zrI*i21yw&fqz_cMeZfp%qo!Yr$__>eWM2+bC=p|z3ZQnfl#mtTRRQa_dFM!PSZBsg z5N24olNMp&$ZBFGoJc8m!-)~u^=9L0*~k$2a+*D6B&Iq&)co?gCP8y#q#lzCxD^nqhA=$yw>S89)ZE%|mcQ+s#oBWE$ zBiZd)YV~r&kz4*j^|xT-#*5kIp$Tgtb_Kr}Bl;KIjQKOwn{W4&21k~L;-8l6>P?GFjr)NRpbWJB!>;(tHjeL zwtkfS+f*jiP(kdqA<7C|rD_&1a)&apXE2X~3s>-^IdmF`|6FTHTQLT9`(l?kGu7`R z<*Iy|if^u6hYC(c;2eBLrNF*pUv68AeHm&T85yuelGE>m#kj1*`0mfvJPwrt6#i)d z*SFTn#9Ila^xs(sP?n&5;!QX81itI&+cBXm;+e)jQ_#PNwQvTFalzb^Z7f5S;K;x$ zz&cYYncvuqAN%uDU5wB6RgFG@MvcfdRpzQKSYdhz-sJXpC>Z-Kp!1tbY0+cE!LRV- z?^CxEqR^w2GKJ;{VxzNspZJAr9t5N&jbZ*}>sT{o_Wa1-yQ%i>-tT?FN5$UB)@#FW z?)gO^(S8DqUEfRt^+-kELSiISGR}(f2uI6BB(B^Y0rKzgIW&&sczyQb^d=IW4nz=GoGwsA zzrx!vF|6<;(cE77a708~RAY8YXB8|5_z>7YDX@6A{{TIkGqv-0XQMm|vvW|ll$=?r z8R@?Ee9__Pxi`jR>(kzOxz3oDkRXbJq1Uah)wlUWkP!M8Z9u!%b4qi`DkyKvTe9AdscVs)meP z_Ow}maS~((W+A|IG+;Uk4+-d#l;5g~EawM$=9{m_B&9*vTtozS+bG3i%7Nx?q^O|N zm`?z_wm+jG7I6RJ zH+cD0fF+azF&)taEw%9R-hYt>IDbEf!~G}crB3Q^CXn13cVI%kfI+sv-=gM|xI3pZ zaf7F$0S?aFD9)e%)-4hyS|EDjuXV*Thy>cSq2GiQaF^wH-(BRIdC87x5b%8WVY(!+W>C z7bJ$*T?LLdm7NS&@fd!C#l;zX>${I-jw$|PO;zsaBWgmceUTZaLTcZ2=?s-w#+dsJE=#I?U}`!-fv_}kX zTwW?Xt7N8F+-7yHUM}C&tZNP|!?4VJ%h8gku7-Enn+@>WD3JRa=Yvo_eU>S7Ok%j3 zB=pHVjhoW9JhyP`;rkNp)Kt;_K1s8i(yraneSgo~$ILOfV;NY$abz-Bqkrw&^RgN^ zMER`GStUufQs)cDclejAW|*P-qaPWO8=aedh$ICG=)&>f!LzedO^j zdBg|7R68*GTp@b<&wwQ`uVT>msr#pXiO}8EJ90tZ8l%r%w^p~_!bN`9bto(MCk=XD zH;?O4`w2xvai}l|+BZIJtJHRw6&BvmwM_3}Dz%ggi;60=+8zq{&aEs*5sp0f5|GL? zSl%frs@tAH*L=uuck0R=U#S@M88w#Gs;4n~XoNhV8y&>;Sdg6@`z0LTxzsEiW^#G8 z_pDv`-PSLfpctfI>gp{`&1`QzT%3|bH@tZXu0pW{OIqO-(PUK zcWa^|W-8_9`x>>KK@2ltp2DS_`?1mHsLU>8?q-q!XBvMC4q+|v%PT-dcOHE>8ISe(uXXIt6?z= z)AC`jtfZ{6`lJ2J6+g8Tt(qjG;pd35GXkYl-ete8*(38y ziOr^VW`8yP)4+J{S#J6~mC%Oay(^vUL?{26Hfgv4UB|Ejkb}v z7?AC(ZMQFL3h(e5-%Zg=W18Om!&l>cuhjs|K!K=#*4@8X?zH226qYDX$y8ij0mWZ zTzR2MPVAbhqC_!t0eMTX#jGi{XJt}$Juf+`HcE{t3+nV&hEDG+^Vjgp!9|86DtRZK z0}@HNh%Cp-quZ#)c0HaK`~@N7F+?mF%rB&=<+1&2#|m&VU98ofif8NpB>HE-$k?+^ z*goeQMM7$T#>N+v9Nh-fpUBsee?GG4RH=s}u50y_AwlRe_>~EePtLB;7QNKEKI0~_ zq;qrZM`6~{zcqG$MKlv4-WAk>WHVn24cv~SBGPsuwIaJm1dq?o7R&ffkx*Xf%wm;6 zR+MRj%iC*Oo>wVZjHG-7;jeP4KG4t z((`SvkxtGvmcbz$0~s+1upEWi_; zN#~Q;a~<%sU=PFHU|ST~kTOtAZf#*}IlntNwJ#|dH%)R%!u_(A!2_$>8 zzfEJEb6_{Uz4OseHU6uI2iykTXnt8{M;1?}t-QhzAy;4Glk?TV^7@Y9XUxHVZ^4go zFiX&FZN82!Iq!d0nbF^;T_W)j|E>x;{dogMkeacp?QT`JzAjQEz%<;Skg>8+ zl_&h?#wCxnsmB50yIc^0KH67#>b_ttS$ zbz7q_NQX2C(w)+OK-ZnK|x{D-3kH%(%k|A(%lHs-E|kjdEz|p`QzU2 ze9t}a_r3i5xz-$Ojvh1Co^#D{=JNJj&PgNB|9kcQNlcP6gjhHGZC4>ijM#A&drcx2 zsjb1C@8SjpQdIt3-QAf6Y!l-OS=L?eW#s6_dmS~wqk4gs-7$|KK~G|fP$E9`Yx~Ec z=39^Xx{oMCU%-ZQ6?FdKv8@~Uo>Z+x5Vh|T3Mh|hDW)yUSZwQ z`&fmIAaO=cSdq1^*2C`zA*x%H0B#}Uqr#Y&X56*6d+cc%$AN74J8IY{i~5#i_${Go zmu^;VDde6cJ>oAx30AW8o^B-o*O=C z{y+h>=Yh(|xgHXS*EHh^JuwH;(gA;NQJ$5EQPC-%a*z2~b!DqL>|)SZsr^y+RYNZN zKYsY|dbHTM8n4uKSVa-jXj^LVV_sgb`vI7mnt4n6qG~_(tF+&v9)nD=PFiHzv>$iP zx`ROOOmha^MtiFq(o(IC%%MA}RX$|e!au&8m}L%H&D95*istIjGI6=m6>TR~#F%j? zwMT`s#817FS~4>1RjKY!L8Fqxe(@{h^jSrzM~?e6LJZO>as4}kGY>QF+B{mOuhKx@ zUg3vN7Nb6{Uhm(`TE;mTMb<~Zu^C+6j?#Z{uw zizzZrXqZ@79PC`-+fx5Q@?33(V|cQonKkK@d)Qsun=6BGD4IjNQ9M6}b zXg}0y$Ri7=tO(aXnV&s?QOzV@qrr7a`PWl)utmfjSr+J5|1ij65q z*P~J8MQRMWs`3m%f}ns49EFtL+A1!058n6P`wv(b3z7*9 z3^KpqnYENn1aR&>P1?^O->snV|Av&%6URzl;ve%!>uE*NCAEWcuBNY&8KTZxHgxf3 z83k$nH}ZT3wAPYbP@roPzLb8a;4kJg+CID#*)-I-_@ZpUK#j^@2d{2pGIhdBywa90 z&xx%HMVWt)lwhE*c6GF3bXh({Jm~q-iU?N)l+-ZIJ&=={r}OKFM|G3!2#zjr+P@pk zWoKtMbyRgypIt0{t}`>Sx+h`2TQW>YL9%_0Q|$Gp;jf=@kv_V}owhC`ch-r2Y>ss5 zy8Kc+!XwLyozdGSEBEH3!-@}`vSG~a7=sp-ygy|7frr%~MYyWvy8ym_Nl8i92fwMR z08nA_=8XKChK!WY0>!0eeD;sak-`-m4$sTmb^Fb2Q>RQXQ*)Pp;4@&$;qJn?@&?Yf zM1+&kR`h(Z0mki0M1Pz)cpU`6VgJ1!-3v3uJSdDD;TVnr9=yEf69-ElU$;xew;)|w z!#@^V9>jX031p@ z5}dWFkwm8cICjsci6aFib}2K}^4aU>HUaAo`+j`sBSyMyMv_1K&5?z&nZ?wszUIhZ zTLW`W<`~sZ4>er5c71;16ZR)j3Zyh`w9b|j?rGzvmBDoKcv9R)=1{`35I7Co47bB9 zTUpNKhrpm8D^zVH)SILDxMVin{$+K7%}~8e)@)`?rBOFQLjY;I)oV4N4HPPaFJRIr zcbMirvOu%5iyDY{WKR_o{lAaLLBfj6myIj2x{kMJ1-|L{!{y@q%;n)FxSNiAHb1`F z6oy@jWFIjzbpA={uZAb*uk`pkwrk9Y79SZ7w~g-xf;6vyBjVZFrokvKq9%IqTh!tH zej8gy5nPAxA!c6=ahJ<>%S6Ufb4%?Ds?z>kCQ(45yJ?=HQMyF1E0@IxiN@K80%8N% zq`-_;41EMzx&-p&{@L5fJ)VQCE(^kjEM=JVA@tgZy8Z(LqcJU?h@zk;V~H0@Zt@A- z%9epRnVw#yS6f1@z{a3h5yw9OCY!~PF(E^dRp~W z_ljV}8L-6$jlnM!Dy5>AfM&9Ks_t~kFMreW{^9AafW7bU7tKdId1v26*&+iIo1-mE z3}J%yU}z~xy_1vO*3`KFmy0oZKIQif7^M25(}8%)=`=Fg15vpd5%8(6NQhYQPzhKe z_KpdbuPCVA5~JP4KyKxUVr*Of&(3EYnya0Nh#3($a!17=koELrjY!<3Npx~S&z@25 zA$NJ$ZU~T}#o$6LUFoylbRJ*$5s>J(O$5yI$Y4Grx|I|=gJ9h0+^Rk?a;-XR*&D80 z>6x0E#ms`Vf*;L0;Drhs7{bke^@Ns!?}@kfA=u&AT=qeR-;HR5j4ufZ82G3{(#Et{>rvS_UUQg zm8W{%poH{PTb4lwhJ2!@{g!%2R@R(mx`fI=jy!Ym*q7w@l$R9NPu0~A2Wu|?LL&u- zXNQ}Qu-pUJ*Rwutyi~AC$*P2>9C}8xHc?ip#PDIC^(H!QJChWoTEq+nQw$hj$}YUQ zivWQICU86yP#Ajm30O>j6>K0*=LgAjVIBZO_OCv(nVx*7k6e8JK; zl3P@^b-8JB3hG;8uT?p&j6A9dL{&;pmTk> zUyRwEuO|lq8Z90iv<$MiPzl1?B3{Gnv<-;vQxv%Ycv@`4ZGpbtKhx+-Nr?UviiRK? z^Ph+oxv4xu?ZP;2gQn5QE8*zvkfNQ;!lwm+3&&L{GV%tosE6^6Ak>K zl0D2C$9DrVc#?XRd2SPRv4J{4tj|W%D`UaKI7x9nzM$PH*Us~LQwk-&mP^L9^FAsD zx3LH6w>5$$&wFJd|(U26m?IHUiwHr>l1BHjJ4Q96-}Q$mPW7$qN`1^E~6$^^l$A zrPqg_+43x+fMD|X1JO(81N4j%Zz6}JmXA;CMu*88|IN?!boQ?Sw8!ayNJK`mRtSFv z(COm6i5Rf6o$VJ_K>zZaxNUAqjLIBtssB(Se-k|zGf5-`H>z9S1U^{U`P=G_v%rcU z=rdcdULp-Lz)6s#faH9Eq+HfFjRr_oQezZ$!4<3b5(9HaDQE0KZmB#cK*#H9x~Ksp z&-c+`TxVn@H&K>cq_4jI%cJh1V{+XG$D6q2vcOh`IXU;*nnN-SR}?vz!q(leZ1Iv}GAH;_#PtL3DWHI%6+s?H<=tFlc=tWD`2d-H#T%a0Z%VITtuaKtR47?6P^ zO4QbzbSF~|b`B(tf-jEJi2R>_Ic+X}fy8rjJ|3`VHRa6Q~Hk+5{x~{Gn^Jpn0&)qp`$)(=lg5rE6 zm?tFp`inUs4E8-*m^o7Rr@6$|G(3@G)jC?(%FM%Ixx1qmOZgWN<&M-!y$q+dr40+W zE8=WioW6N7#hX544ZTl)CNAp*7qAfEkkr>zgWyP49`*JM0F;mQRC4~u(f z?+@D^ed3E0<$p_7Ap4Rn5-z{2rVfk2$GpH3NZ&YB4ApUElfLW1Sj_E$8jJN@kSM~0iR7^GL#M%fC%q^_2Z+*$;M zKTqaFb?D{Ipf49&E?Y77$AEwZUti* z3f=4?^OAM;=WrzJX+8*C#5Lug_53XH$QoaW+p8EAsge?K+bc}r>%DbDmkyDW!s51= zFBMkmMH)*IJWo^|?|ndnZqnwX8l89Y=4c*L48bj>R z^BVtS#>aP}UwzZh1;6E3eL-_APb$cfX%Ad&4QMsiQ_vKgj0>(3|DePx*;PKgMd)z} z{HX9FrUMok2wQIJV8AnoijjrgQ2R?Hw(| z$C42v!q#8|doJC+7k<@r`eL9=U{NzksT3GYv~K)e&y~tEDBYYXLBLS+NJ}Jm_WcWT z)W$F`7Ql6pj&`=HvB_Rv2ul{DQNkC8KXqw%UAWrV%=b!)xu^`Q^$0`tYL%xyh|YY! zWV3xyQ(qfQbGWy$f#d|A=J!j}rW3>AK;9gdLY7@JWBM)KC1>T!lKa6Uy}CMw44k~wLBzy z%Y$py_qepnzxA;te!d@G;A!ppTt@h1R;|mqj(hRz^VCrXQeA-=g8ify-4+SUxw_T( zUGvc})IfM3ypj97|9vaW^Zl89+-gt6U)*U+)4H$cB5+rAq)a*6^ac zRB!=8mBZA=3wHD=aHnn6*hc!I+&|_NG>8s9=~ABW9p1SLI+UrAU>kB_6o9H zNfrIrw-v z7KXgF`tWivsOIIUy6_MLz&tP-RKVy6p#^Tac9(-h4xIKnBFGOTe6AB8qclE6hAM^r z+pc^^m^BVcz*-3W%{Kn7F|w!&h&Lj*3)oSS4o}hipMTkF0KSJ9x=C;cWZZM*WTh^+ zm!gJtpB4r?5a$`NHT^&Tk_znDFEvPfqX!Po)Ft%R8-t6B7Q))N2aJYkws@r1i*>>Q z(aj>sPds6-W76Q${L}n_o!yU7L{S)halCPSaa4er2`xNr7BEYZLza^PW=~Ko=sRGa zHUlLCC9vgKNlZyB^xucbu|=*ka++v9Ej*jroF@Dr@D#%#)Y%5013Cs+@0%Kt9NUq%EtZ2Ug(uF%SU^{EE2Nmh3pnNy0}h=EbOGX+>f?o(0; zj1&Tv{8G}h&}rQQapnZYWr^gD&}kc80wX!08$@#6`{=Yr4C7o-m=z+qE~OF^2H0LM zC^X%$5BRyr47+iAf}Oc0cn*xV$gosCI8UEcUkDQ?{J zg&o92%4@-pC@$gPaHyNgTB|bq+QQ=X(Shm)wV8vXV=^NHzt{Y^xqMHi)Y=>JBFN`b zA_2!Y6P-_`r8`2ROjw79LAusNJSry5i;J6^7VU3b{NLIh9=@&ctnW#rQHk+R<2!pf7Z>3)=g0;jR3R{hPV+d&8s53^g`NK6`@T}`{p ze3Q9uJsT(b6u&EZL_7ogi7w;A%lRi$4^Z)yRREpNU7o40LNAPNNzDYxO(9 z(>0kmTNP?`#I-r7GSF``gCg)hJv%pfg6V^k1x#RIDBLaum9DJO(GSAV z!uKV+6jiz0FYkF>=VNRt#%&sQtel)7cqSw?C7P`&I&TbxWKv7L##XkvV$^UV7q-0W z?(Gce|HRk5OuPFq56~bXPmK4A#|qMQ@EgEo_+EDIk@L7>*?h=Q3ZY+-74;--Xy9R? zBS)l6@N1Cu3=Y%#3}2RV^4+6N-TU+}LZ$pEe)ii9@-Z2+T`So1c8l1!7AIDmP*+!H zZf<@uH(O(3%5S~Qzldo#-g2cn`!VW8L@3k}bW(BYejY0uwLN{lEEi@+uaNXuB5b<$ z^ejJSWGArN&SSgw3Ht9UizvBP))5r*817tS&Xl?J9VL?o7ghTBT-9fd(dQDXtEr6( zJi@}v&h@-V+GL@UlM^Pav_T^;DK0+~v?TAg9Ot8-jy>B;PgtXx?)RdmiWt=(>l1D| zfBP1ls{zby232r!I-WS(_OP8(70$}$sm;lQ{8XApp*(*;5WHxt-bN%;C$0XBHD1W( zeHcNn22=D|;GjzeKAV{t);(Goz&S9FkIr1uz7&`9pJ}4jboKN+Qj8xjN%&aEGKZPw*kRgv-pj=J2e5dljn)lWbGrsi&zmc@_v z_j6b^4~m`FFSY(WWfLeJd7D^4r-*OM)De~6#oN__bj;5uOkVC_qV_GwopW*iNb6v$ z;H`#N($O2Zb;^vd!AeD-sQ|gmn=rolU87{Q5AH`;F9wpz!nk_9+ws;|$J6IM+(XF* zF9<`vvb|cI_sT(2k4T;bvAtLmlW12pIjo~Bd^Wb67R@Y3{Lm}TYLy`cQgt->o`0g& zq*rjXl-8)0=mF{c8Wl@;9*YzrLZMc}QNg$!L2Sx-cyLOx(W$&1$~jal-KqY#i$mcPK&^(3CkA{i9f} zgJHb3zrS+;`mqMEhD^p(K@3u^49@$}#QX?jk_UNYO~e{SnvbSH8sk!@8KvU-&4s&X z#{>c%9x>6;8hbRZ^EHF#m^oIHWRv@(zA@&*en{7;N~U?&+ zwt@H}=7kgLea+m={W(b)pImh1!Ad+$ zQZ7WdMg0u7KSrKd3}lJRgrlHeR8Utt;00%nc;ZIh-BsgW<-;Q`K7w#^>{_U;`kUWD zb8y-DHHttNa3v6;tCsm}wq|K^#>=TH7AaBNZFTSII^QSby%N>j_{0+aiepnK(Dhy% z^2uv36Bk{56%lB$eb{g*FQKVRmZHZe|AG7dZ_N@;SSg3R=io?_`YIWNR3`4SxsL0b zfItmr>0Whp4MFW5PHO3V^5=+1jGY{yS!bqZ$0f#J0PS9qwcAB1D~0;elfLC*@!+!* zsZPzOpzcoof$3=>n@CCX)CYVx{blW_jz{m>DgQBAST`bd9UWnCp}9pP)#VDCTA1;d zl^rT5+b|NJ)#vSCPxo)Ee5!wLzJDS3%+5^l*(`Qd=e~o6aFDBY=F-XO%GQ%-hAW+3x~o=}$~?q3PH9S8VJ?c`|nDmb32F0}Qn zBU|ro)xC|Bl?_imkHp26?4YwknQh{)YIN`<9y#C7G5$^3?IJ9O0Qu04eUHm~!!uUK z-+F*)`T)?r<+5!%3Y~Yu%GJRF<82+1Yr(y_hHB-?oY6mW+Zo$&l=YN5Yc*m%E3j_L zL{9II)PB_by*GA9yC_cAA7h^{3zAstOUFapsyS;Z8>?(x@(9{?n&N7)ok$q2$2j73 zXQt6m(|(9w8rxu%$id60y}G`-T=Lk+GII5N4RWPpO;v4|ySYpMEkG{oO66mD`597Q zHZZ{41?m+6!?gu4fdIx}ZR=Ch@8W)VsCD#o!dJSffv2mvi5hFfFSM-QkbD$U;28N1 zSxCK<{zFfAW#)t9N&Z_S1I+w;Uk>OJ_zyO~5Q7CYj8#hDh5IYeB?SLwJ)lQz{mnao zSo#l|9pu z*nHQ&x2^Hx9dqW`%A4Qg%1xU)FR?4x`kA`|s*zP1pa&+&C~}c$S->~W-*BP8Dr{;R zd>lQ4tZ$^SC<;5UP76=#;S0>R(`ZoS&ftOBwx}!)^Z7cRUfE2Y&1ar0N7df+7V3ooN|d|B;mH+u)>KxXlXX242iuuE}S^y>fGw+HLq6 zB8vJ}5)~^kMNtkeKfn0>I1%KS8C`vEd`WM{zxz~#NX0*2C1st~`{Pzkn2v~y#SXp_6HPUd1Hl|DyE}G#hUL1x}JaU$sE5Oe(*020(o<54dA4Tv4+C~ZnkZ1*mrR5 zf4e!1|9C=#BxLjlF6=jC*w3ARw>^Zxj_YyAck99UO+yW>Fw8hGjhuh$X)4|ge+*Ia zDT;D<8Jr(CKIsO|^0>Yxn!|qoU!1;kb5@PDz8R{ZAltv|^qv0;Ny2WA-?=+*2gJj} z`>&FO;cfY1Y`_rBQ_zqAp9{T%VBuhhHH*rCkx`H+{~H0P{0vetY(EA2P@wi+vfURT zKsM%>R?rxU0DBu{uen5CW0Sz6VEDo#iTe6cG>N{OqmY4M(SVV0{$B%EQhV~R7g0Cp zg{SHu&N_4EEjhZ`5?>4s%F52Q@OiP;7#&4TJ&gAoXR1h9ius!S zO?Z5hrb6uKHE$;yeHFr_GuP~Id5lKjRW8GRzXgs?Xg1cSWiFR=;rb! zv|1>BDPg)kg&!9&O1lW88I!26G~{Gfg$PM_SWqMokt- z?{hoQb(Y1u%4R+#leK+GH#>keNFS*kwK{4)dl7)AVR*$iJzN~IWM)q?#PevMp-{40 z@?}4F_!2+&w3^l^Z)pB^2Q_8OL54!nN%bEGk1{Lod6?i2fWNIRc$S(=Gpf*uVtIRw zxmjYm7GbaGbp5P@FIKmR+gj}k{*d==<3z_%mnz+s>%^^1@_O1N-&uosXex|2R;Q;W zp>R!Ws&XSwXT(r_bfMWuVg(xytizQB};tu3ItV9&Bg#f{!d z+pH|YJamoOW|1@B^ChmDZU|be=HdE4egig$wfJl$`?Kz7l%r=Y_fC6;=r2CD}JG)`R455#YV&Bg2jm?m%2F6ICykx&PQIWW3xCafy4Au zzg228bwbHoH}PDkL6_3vbWLDK#%%kTgon@puDt#R1)0Aq(R-J*zz-|&QcH9bgRIp2 z@-MJAxm81SBuxfhQnX~zzQ^FgUt+Ds*}6wcYY_s0uBOHIzq7*sM)Ok9KI&;u)mvk= z{8uXjivNf*nKK&XYNM?T+Js)K_w)tl4<3CzEW!O$H>lZewwWxtPB$O=K*6F(*4XVFLM944(<`x=7qb8jAQ5qwH{J3w>vW}8_J$EMO(_pkoz^~;5 ztW7{Cn-C?Kt@|Y0*~t~9L>Km8XGi|}eu3yvO;C08Yz0Uah?j=|_ z^_mC$27z+N`JuNi27+RrSGD8(5B#%{rZykH9JrT?Xgl4DO@q4^=iNu`Xgl$KH&W4i z3duKOMj(j@HI#Ct*+OjQ(mGrFa#2p^`{!0iMmLKfKjvltc|%eZiGQ|aRl!7^=L-HA8T9rog*uB<)!5*u5`4?IT8q z4^G!f3yKKxt`G236T5-%c#8E2{^^RM8?PnDl!b@dibg9H*3%_6-< z?7zFe1eNUvTuV_oyVF$7^FoDt+fzd#z&S9;0WdeniUxgrgR5T2iN%&cf6Mw!0NElE* zh+eL_&04bUu!;U#zyFIYL^44^WgJ#dQQAUGVZCs=DJq_wx%rUB6-1BlfWf;W3Yv*9 z?cI~+M5saQc4&(t)-H-2H;`L(|LF1%>2W!QJ26vE-(-GYX14KZv67dUjiLWJ?ZS%- zE!?M-sdd+0G1j{Zs?^jZ&qVZ_A2{iST;oWGr>Uq#lf1eN=39jhG~2wIANveZRA$VR z!-&7{G%`D1I}iR0F??RR@&QksHt1WRz`B;4H5h}1got2^k4aL!bN>GEy<5OMh_Q*B zgCHCZtwZwS%|LTmYqJe@eJ}h$4{ z1a}u9sNO_>Ugk4IBB^qYg#?8l9H|lHeESr$5hXidJv1P5eh6XZzO-+E0qpL5UC1w* z_m&a^%)Xx+CkO;?!y=9L383MjB&HJlP5kFtZ_^q^w-T^H)h7G@n zxI$S9c*0is#5EE=IwNoCtA@=z)A_xT=Qnb|*XvY1X;Q~f3(bqnR8KEy#wXC$i-EhT z_gei!7Q_YM@fu)!Vmr^8Z(H|^VwtMtR}>8`NVF;H9hyorzWWOk=0)@yw@K%V8TscU zm-ZIwCjYAcEIhVMA{ z2vVmFk--~|t76@9KHGJ6EO%%6#3YulosQuIECeVcQ6;yAiYEvLWf;m6gE{@L9!wFN5Zj1S`YqQeNK) z7Rs%$F6to;1#24IVgPk<)DMrQoNt7*m=_*AdBejhdxxx}TN$HPV2*lg0B96MJ~!b3 z!YvL1`TT@jS<&*1PJs2b{cAYZmTk}OloGELNZ%?nxqG+~P&2xE6+U%GrwT&K>o66` zf2#~9L1A}xVIoe@tup1!haZQWG-mDysZ{E`cirxOcx#<;l+hyP>twzgqllw2FwaZT zJgfp4+#1-3dMZxLz-i?!9$5T|@n0WYS=@QA8nSryM&v#7EmJLgE2)%t6V5x=nK$=* zWsbSeM9TfP07<16(!Y1nV&dx+Ef z6)%%R@0N~Q1H>_5Og{9^dHexf4z2djAKywaOr2ClF|wb6aVx=AKhRSphpO98rc zBZRpHn|-Pa0*_w7N%B9Sf1f2Tg&en7%0t(D7Eg*U*sf#bpN3jc(#qk!(3*It8XD;h zOGB8^>iyhz$-;YfJBtK0uB#>N`%{(*wRO%AH`(=+T0^PGcE!GTzHBLA14NV} z1-VGGQH3gfDXb<+vPYo%sIl85X>SZ7OPpwfaCxRJY#wRc$L#3fDv}E!M@N@7Ap?_= zc|VZ@KbeWmd({&I)qI&nv75l{oNo`AiJuA6*AkRh$v0p;(`z4{eqd-m<8J!xMP5q7 zqsxH$2ev4MWKB)u3Cejr0yGYvEb?14Rr2jD%UnNY38%^xus#XP{aJUx|8aUeYx*+l zm|VGGI#SA7WcxzkY8@G)(3M2x-D!cQkWIidL0bHt@2g+1MB-t88=W|YmgG5}@ zlMhr&uAF)<2uHC=v^Tp4n^!g$0s(zyDsR^e|zzoA@1G`6j#`0n>pW?RIh+0{qnSLesXgt(0kH-R3 z_YwGF`n>Wef~M4@#J=Qg3x%E+T~)zlEd=r^zR#IX*7Pz?O90MqZtnGRx2uiM%gM5? zqc3cVmK!}Vs}gxQ>w&R(XCGctd^F5H1?7LLt7QC6*wmyfTOVjuZodCyqim^dk06Y83|z}BkL?5+c1TzS%_rv4*QSBuP-HMU9PTpUepS6^_6gUo)w%e%=_ zkBr+G9B)Uf^zx>d4j^NM#|UOF5JlpI=5%kw|4einS`6lMX--7t*ZJ-Eeg<;^gp(u4VLNY2VcqCAr2y^m5X_oH~m9-wPVfZa%46FJY)utJtYjWr# z`Okf_3(v4frVQ&RGd=Y#slQd?!y`$fPzN2X;izqJLu62KF;B!s7 zg0w$_|IfOYIkKtQjgcnP^~W%h{S(^b$J^hs5yTw{7AU7#aC$W{WJ;@RQCQE1;iVr# zn47S%rsN>-@D(^DuuTR31Nz^zM2AtIS5Rs_Sx`qUO8ELr%hBrYnc!mLT;&#I;Yy_F zdS@G#1Vr*Q3F!x8lTAxgtBXX z$mJ^(ZV2IK*+cew*1a8=`-iDZ3c}>kh+F2qi;;@BD{V{ObCt_2t$Yj-$l>O~Pm}!i zg6ArKrY@jQQ8w8O&t?uZlH!nPT*iah=sMs#jJ9!C(gZ~z+DF1R7+tvV9S#j)To4oF za3p5|ru$PwzKgI|UWfX&;d9RZsTf^$@UeS)XM2XT=Zlkdo+7N3(CxmFNiQe2Fl_Cv z$;I~4s?mm@b@hR8zAtdKL+3`|W2q{6nzE6tV6o#qX}N zFHzZ~tgY-R1OcX!GXUx98FLsKaPaUL8-RJ)^||$o01y|KF&{fGJD&l&A(tKp1;=d$7hn;Y z?YW}9nUTRQM_D~EH@mSBx1m0WM~@H8WxxS&2X1)4dYl|aAg~@cNM9dhXrxEM$#Kh4 z7R1fYX~YKt>vMAfm3VnLIrNMH=3tOMA1Bz**pN$~-H4ro6HLK*lLkix^@gRmwS~2< zDg+SzMo$0&{4=sLyji8^^%NY$+J7u3@BLlwc%)|0!TNU|3;5i~t#1BRzXl zYbyyodm{=434Ts?PHqkkPHuKS9uVhE1$k@3fA#DS9C`o1@pgxRxSqY9g|!LbIKV}A z6nCmB=ve}V8^=gm>Khpv8W~ENTKs}gu-!g;0etg_`jX;Sq2D<;+Zq|8vQuz^P}zU` zqu}M?;o_k%rnrM~u=9Z_em$kIx`P4U0s)S_`TGraQ{ejxj0>o7^W=~9fGq-lfq}XI zLXQLR@ITk%;Nk?r&>_D_27aB=*_ zZ@fSY_-7mNasW-|cU*g0Js_NHfqg2dY^tWNMmO=orebYvPr-Q;p+LGNSu0~}ieC-n bS2MD+*R!?%64x15*kF##Mr_>)Xp8O#SAoXaB(s*|M5o$4WeY?War{&Wa0#7 z{jIx*t*xE26Ikm{p7#x4h_Z{J^ZgjI7PeMkfX>Jnti{54&y9_XgNcI~%*Mk8c$! z3u|XU9LNi617{O)6C*ogz+$o{wr0-eU>0t6fX2z$(Zs+8%^fc1z0S)v7VP$Ur*Iw- z-pxJg{?F%cnhNgFtz%zcN1U&mP*n?vXsDZNJXzyvmjMg53C5m3bR%+omsJg2V~a}f zGZixCJTbChVr5{nTE|w9B9ykq!_v~H49jnk!X@S6z7cl$P8P<|Q^7C2@|oMb>bNJk02^CRdL z`hM-3EeHs7cZW!;q6^dccNKou9%k$RyAHy^0&@v=W^ULYR<8RyHa6JZf9N1Eul{dz z5YB&e5ZLX1#X-2Z|ItANchr*Sr)7SZ}&}YATrO4>4 zLTb0xx6|l6`X=8)y<3uP9bLUUrkyAqrwJbB8bjHVSO4l7uM2kkWIzz zwXMZ{F!R7#{t^P#;U6^oCn3b7#bGTlSpd!cy(~Z?EbdEce;Y_hirioDP8IuO9c62M`6IVEIiJ*kk~y+Q;a8)AQe{ z3{C${ckpk-F!%lAIdFNe=AY6Txj4e=-MuaDWroROVQccIx$N!iVGREG_m3&^eolX% zivKk`{WY8S4)8Co_BRi?_n6;I`8Q7o>@(feZloSlOm{G64C4a~~I!2{;uLTzpTHqCVb)G%^>K&a{+!n(oPhmHPwv&! z91k4)5mx13U*YYy$}(+1Q?2qboH)icmFpB~Ndifexy39?NR+|Cq8J2o1w%x5cX0bs zua+N$5l~ZF9)zQ4l(y7_&$&xf#&i_8F^8H_N5fM=mwWR^C*bnba?t11_?uSmIVU&muo<`$7JFtr zw1i@!z5q?6)GVQW_{Pj8gw)u2Z39v)ksFka3aul}y;L8PB0n)LweO`!QG;P^(SiOQ zU#3Ro$n|w9P5p<*IIJFwAT4cy)cGjB>`o-CYPVk^mBE2&D zkMfTn5$>u(Fbf98G)`XMtylLKE+P{i+4PgQ>I#zqIP~DWARbdp+nglCKAK!RM&;!gd}FwUsV_(<=;yZ=9s@E zg?i(44CJ|y8_Bug@Rr#&fBGrba$0*@3G*$q_<}CdZD??} zTD{d_4#h}<>jU$bjip@XFOxFr$~-%{5dL>%A?eJvACVLDgoR_^O&rZD@Vm;T9=#*9 z;4j4QT8a^gqZEk|mhY{_wQ%%v--@Nq3}<+BjA$O7L${F^xv z%Szo~ndLYteN?r*@kOHGBoF?c5z+RD_-+*W=jZ(F7O}FK(uy%|CwV=1_?)jdB#yI; ziLCRm`W3T|K68;xd)nbe^-?Vk+jC1Q?&-#&t_{^X+653$Vm^6+zCXQ6^A)MPHuIVx zn)Ta;j(nhP;iNsr5U8{3-mpRJoQd6;tbS=$$aqh&>j<#JgGYHd8Eb4SfgaS86T zE~z^UeuHsZdoMgr63x$3eZ^t)Yu_bbpm!h#KU!vk5~nY)_Y^4MGNnv?>ZXjElZ_U! zn6dO$!*=aI>v#ywsXzJ}p?2`SEm>ly*g=kS#7d;%*1K>>lD(2rNKu>hyl)Z5gd_u( z1zr{L?5Xx+x~!*or}AMk@VMJN9TW^B;zU#;?{gSk3RQw2!ygRhxrcU0m%l!oB`QtQ zF-%p%eaBSfcA{X*@}Zy8Vql}Fi~t2bkOSrLNpOD=Ydd1Df#dVePu&Olr>)7S{T-3E ztr-b3$<|yM6taumBT;^zo2L;RvVIK>f+$uFQFDBgWEP`0;sk~|QC|cFBJq3lTKAhM z78EcG$BR68vVa)q__HWUKT=UC(i&ko)HwIa>I%h1%|O9q0jAdtNG??{`e(>m*X6K- zgN3qm@Md#9TK}TW#*wtcNQWtVL&}ZLqx{6#s*iWl+Ao6zW*h5h8sB}oRs*r`;d1$r z-dsP1rPJ!Pa=w3)PXD&>{+EFufIC>&x&ILja)F<-0saJ_K`vmS!p!p@!a){Jj(^63Jj{Q?gRJ+foWJ40 ze_gEne;*It8{r=#lZBO={XfNn9IXF@2j#3)RtY-%&WtYMZrYj=%gvQ^5j0=w=f(Si zOxUW~W&P!MsXC)!3`4_mGG_T%Xuut5DBp{4}Be&*%qHD>69&`%o`$@p>Y@bRj zRQb#{p^Q;^7TcE9aPmcOPkixudPTMX0_8{sS3Z$#w7t`|gI_NhwJj4wEZdvr0tF(d zbE^vzF%5z^IfWZBPk0}L-s=T0q}+ua1|)B(2eS{yh6v&*bJNva*<1HC9u@Yp-!MyEjM^TJ!W( zO^5cDS7Gzzsa_yAy{iqm&6Uo{5n-D$*Zka_>q03T9;Bp?PBo|KRWn5o#~x_)IQ~2+ zw@yPqJ|T)YGdBu0^_e=ahl|J4Dj8t5F-okd8^dM1Cl*A z)($`Eqa;#f1`IZgg@t}{OvR@YHO0645c-~yOyVUas=9tOzQzllHcF)MpeHY?W5K;R z%rfnd_#5Zj?NHd*&Q(y1+9OoD8053hy)k%LQ(NEX7Vam@eHeT-qp}DNK2Cl{VD6aGf7ei=eZ;!fIqg&u_pxb9C`*EG>bJsDh2SSy^2N-f3KLHShP(l!AV z0}^WziPPU@&gf!Nk(J1z+hLy^*+gM|#Udn#{=_?>U@J)MwQy#>M32e`r;LWvj5ak_ zi8l(I28TZ^N2_OEy=KW4#C;x$74+yZsgt;A34fLGl`7MC70wo=gk3BJ?f2rP`m73u z`3Rzfs`?%P52B2;1xt(;*P3#USt(YM2#u~#B-dpLN%J2e$}Yzl2m7T<&RL|Y@QGwcA$vKtY09VM5@7Z0C-0aUD|_OU;=ip}Mt_oafA3RP=rftv{otCX|Dj7g60u>T zKkh}dwZCrcuOE^^V)!VbRgQ0S-T8iP1aB-p5u3Wt0-KtPcXq?z=k`@(SL6#fGf^vh}F0U}y=vPxu=uleW2klkwYj1vf13{=OT+%>rDD z*;(5;D#Lb|{`M9C*ut}Lc6w#vC}wA4Z)XeJSK+kPQ{@6I+;oxEU`>w#w7z+*v zgaRVl)tkbcd-p!z83+{GMFj#qtwRKXDWD*b@d_@;KT;bW^gc!g1Y&hW1qr`kf&+E^ zpX#)*J5fx500KP;eRE}}0}(*n=O-caUV{w^6Tt{JRw8WV|MsTDXZ0>pz~&ADOJDOg z-Gl(0tUZznN{iwDoCJUBtk-G#Y#4AIixu{2S`*D9u({9mvK+->wMFC{$4|IL%N`I9b;YaIjf%vv z^I0drIXnKln=1HRx8I|HKo1N7qbM_vdBqv&NGu{xFSI&p3?C~} z5BmZPA7@gzIaQ=>g2z^m+Yj)15I+9Xr^4}rT%S$v{tK}sT>m!}4jzLQGbUH8^+WUPcBJY6pqCc@jM$@-LZ&S+-;<-wgPt1>wc1{b{7mUN3s z1vS1w-YKWA3eHGsDOTTm6Zs+9O4SK(ohmKG9@sAXq!f%rD3KCcxVhT=IKShAi{;^$ zuJY?2kWKF^Eg=!JHC|=J#d8t?44)wKz1F#u(dp4u#gfV*^%5?q45NsxYqTiUBrS1F z`E4&?s}|O>-b@qP-c%jEDY-|{u&L^8ArDN*XLNe(W5M#e_8l;d+=C@=LVL+~OwpmR zXz)2g~_sGw8q8h%IhEIzFS>OM@x~h=OH(G5q^aY6=52#U+hT%*RfC3xf~&d zN_K`2%_ihGC}8R4s^mXoCu|BWDq)vsKUVo+9V&%SGdY#pbwl|$hEiH`xhv88k#c(| z=j9et>Y%3SWNqJM|5ICXKpV`;h;-iNig}@PTf5$rrv1k;!TZ(I#qxaW7A7JZGnA2% z%jW!;aVqN>KQ-?z_Lf$A=a22IM76W%0edYlN7NP-GhW>U+PT$u-x*X_Ok3F4IurVS z`CJiBISN(Fu2)RF!KJV$ydxY*NrYLPOKA+Ot4LHDkt(eX6ViBQ!~w>sDxA)M7|sV%#|@dALfba{W67(G#r=~9 z^x?|IClRys>z!dT6F?|}1f=;umxy>BXj4b6(344@zn(2?*a zI85%7dfzR{C`Qx|RuqL?L87i5EB8FKvr>=9gd!c&Y1DLPMxy!gTec#&r zsa}UA+*NEKQfMAU_7?UgC>*>!FA9M!qiZ%WayxNH!yKeQYC}CCx2p~H&^EuivN6Hu zF6iN)UB}swsC+a*63+}^U5-m=WBq1WPUteXt^j%jGe63wFtS?o%HCu-=ZcN)16*%B z?MbT1_A>+iqS&st_M-Ci1PU_;h{$AQWZ^})hW2R|Po6wT@nx>;r)T*wdbPiWI_oV& z!)oxk(CSmMUSa)LTC`fhCB$b2wbo6njWx=29Q^F|KCYp9-%qY*8w-^RHD#`C3iuk-Qpe#?lP zp8fna-EWH-v5y9-T-cW##4N4GsK!eD!s8 z9_1~bjdP=;E{AcH^sbGrBL_DNb6rM?JV7$;689=-E;@RxC%vXk^h6kHZ*TAE>B-ge zpR|A46i0h-6MMie^^IzY9PkxKX(A>nEbZW{_UFA{`S{Iq#(P$eE-x>0C6XROUly#_ ze*mN4?mQh|ld;KIegXcC!kKc>(dtUWE2Z0KsTi;nI%H7$PGmD|gMmhy{PDf^N~qAq zn0I!kE+=P69)ykt2CZLga^u%MhKGjFJr2Gt4FNriZLw2OX5L zf!L_Sf98w=WgT+s$i5=xLR!Qv*zm0~)@WM7!ssdle|~tUu!2Z{0y#(-6!P|~;)|mA zu2tr^nOf)NM@;EXgu?(0rE=VXQ<{C(RLOYz)qe-qv~-*Ds2OZgd%ZcW5U)hB-)M6E zQVW~ugA!l!U2Z&KW86=&_eI)SbTBf3<$0MqI{$5ddk>y(tE)GT(e`1~->8&CY7tqZ z?LF#9n{GE|-FR!C`yzd#N=AW7egAHMvHmV2PYKz71o3BmM_!`2@CYIe)4U)zuak~z zgx(wbu)I&@$e}n)Z)EYzAj-1rV9NkJs6uVzbvP>2Je<(W|H&e57rVnL>vwSkcD&T0 z@MX{C90%SXdOO>j>@MXWA6suM29Z<+o9@7|2FZYjjaz%ccn^Qb+E>tTMGbp48f=|Q zPJcN&J8ScGBF@)l3K0rXRa1-jo~2aS*x0B-|CW?mq*mO@yn_TR2B;zTxB-K82-J^A z^LZ)9!BgALnSgJOWJlV!k&TT_S^2UCJ}N58#>R%K)b>tdH)k=m?l$lzo}$IjS^I~j zFWkC6BL#$m?NN=B8Qq^6XTc?-%B#LzzxuFc&|0yFfkoXs_c)|?-j%@@Tg58sozS`L zi2FAx!=Zm9x&(-1Mg^S(=DUIqRfBugkRz^gW8xE@Yt*&#+)N-KqCkc7x|N_J)P$KC z3&zz!UY?#_yvSE6SmM+yTwGi{JO$4UyuH0`Y~-%2hW?71<&F7<0N2S_`!J`=a%2>2 zz~*teOo6iO!a}XxmWTYMhT~JVkAg!UVCXtdxt}sOO(Gboj3hvsar{b|iOF$wKLG90=+NW>c*GlqZl(sn8w>^Z%#}*}{bg(XMoJ^Wc z3rr~A!LFW6a_X>kz3}BKwj5pO9@_9uo_)5Axw~ zyKUU`V{A$xkxQE%h_tz_aS{;1H!9)ma%DB~C6X;<;`$&jQ*FA@(0-X3n}T>;ewt`| zRJecXmYNeZ-9Ws1st}#=;(8=yA-X2sMvGiq)c?=XV@DoE)FPL{b(V;Vt1Z*vNbtm& zJ0;Ly$M9aQZjFAnt9|QjTiZUoRJKxm3KAvLhG&1q=klH0w#BWb9KEhIfEd#=pJvd| zXKP~sl9x0fW2I+(YAds@b%uOBcu^wY4@QB4fuR`;F}jgdI(;%Ic=xaa4;} zpf9Bl9u_TBaI3(Nk@yS2Mu}S~RyP(1ddMwZylGt`H@Cl=nojImZ{Wh!s>$1&n7Ab` z)7_fzu^X2UTK4O798`r1n15LMn<`@k$+rioIgfE>Wlbe4NV~hm_sB>pPIt!37f>C7 zWc1Oryg=zdeoL0e{X!mFjl;h@vHH@glZ%aTso^PnTrc)J0e`y$-AFia`ezHphb7YC7X@eI9={L-PH=BIgl&-Aa(^pYED8(zxl z;?kw14C;DQo$CM@Uhm)=!oeHBo19}4AH@_!Ej*=RP}|j$&zDx5vdwoonj2osBsi2j zER$U)@Ec@QjQqS9iM~|3h&vWQK;n-DGYDQsQ7B@Xy=iKu_S;a?ZqXDVhgTm%W<3&K z(pl}={k&rI=*9&IxY4mPfqEf4jLN1e9w5)nCjZK|KTRPgo)FV>5KA&;`dgo~FPk)* zj)}%$ffz%i)e;J{tV6>cR1FwK6a2C-HV!b#n(^uwt4*xO)|^e%w2-ISUAMg3O@+GR z)b=5NBgacR^4AHfu1c3Wk@jKv9{SJSM}IR596=-rf(T8kk^HM|LGqVuX?aOrgEx(> z$87>0?TjzI*fjbGroO+FIXy#xe%lwVMT}W^jl6)ch?|L|P3cKl+i%}NTr;+fqsXej zreniGpPRnpEScRp_leZAn1A?!oWr6p;-{(|{w`*(*OPAC@%BX_?$4O_`l7e@tBcN< zavMc!ZIk6zM|>~lyx8imPaCkGAo}&$E|M7Y^LkJHY&2g>*UH=KocNxKEz_4a;f%e{ zU*9dcGKB3Immqbj3xXDLbN*ymWcb4fY(;H7(QP?O+k3>x){!{+Acv;#$g~r`ZU@w> z`Ee1~P3xPF!S=%zJizAY*6cDk0CLF8|(|j*(wuESeylXD6 zzJRqwiBnG=yg~=8_3R62842|Ujr$y`B?||$w&66cE`@vfZ<7$Ri(C|fdb!vKNP%@% z=H$lWpkhbdnU5%X`*sZ?fj*X)_x*)A*9bu&J5^&DwW#dZYQ(tUs+ZX>4CxE~&sS0he>@G2N>w_Cln@v0BH#7A* zJ*#tgVSbuqpfJEyS#@{uSZx{i-San5eTE29C=RHZ$RXSGWZ(E>ubwSFvT=eit@hyF z!Q-@3*G+(y#I)hf+q%EL4Bp|-xsgAW*ma;_%B}nv^zJ*^gP(>7WdXH_KZ4nGKJZU^ ze7Z{8*`8W(*T(I|RbV3H+%iN6MFrSDM9%7YJjFkv^X_yDmHP>_>*cG^uYDjxQGm6W zg}iiTe_P%55OtV{gZ9rrM>=mXW&$_#slPwK`GJ=x&d{2{+=+RcxbjnIgGm@xI~mEE z$pd|Wcq54G?{3TprwqK4)Z;a?~eO`Ie=hYfp zzl3u@cj^Wx$CS{?;4>I#|IKR+D}ad#sM^WMjryWKK}C=a!*B%!lcKN?G!p><3Xg zz&x^gWx`%z_1kSCyhB(K;sYi|5-DV0b=K$rCC2)o%u}xO6$koBdSSiY@(p_sVA+(O z$hdq*dYUgX?Nl4BVWaRCw8cw~wzf^Kb~oN&{oBmSii#;A-)a6a>GgtAJ&#>E2Z?F= zFZ_2qa1MnbP6F##f|ciBGntDu0zK|eow;;bv}*ya3-2h57}VBQbKSa($Jqot{bZHdVnSa*^T(l5S8>Nmqn$qjsk(Ig&Xsaqd+ z&%?e-rsIz*y{>D_t&>g-cvO;J&w4XmZnU3qyLYuWY-VP*j?q@@;L^HQF`Z%QK2upf zu{D})|1kSSfWWw^b`}Ad1eJR>LYIhk&uooKo`|+?^4Fi2Lk`E(0O|N%$v|HpyMo+Q z=c-o!J`*EjB0>GI*IgmeQNIy+Li+aZu~3!WU00WSpMhp_3jKaP%^EbT3?o}MK!Csj z)l=%=1@imA+W30A0@=XY>x$1_YI13{-9GD0^o-h6@(;z1Yg03@W*Sbv9Jst77Wla_ ztN4^BC+ln`EKYA^ulSviq~w*CiJNWsodCQKrP?(gQ)5XVNI0YxkqR67()ROb_R!u0 zH$ijmgVfrH&BxF{F@l~N)v#WLg4$mS%*#_;8>t;kHPG%DjSi zC|LRO^<`kK_r++3SSjQd)8y;-)q)bcLaWm-F2$GMa}Ay#1h&l~pUUcfohiE;Lbh^! z5ZEdfk}@^L`%N!mLgnk?aa?gso3V~lSQrg76Se=RpT1P{fzi4vw(n6`r6uBJbo$HyN7L0NHc1=Z=KF*v(Cp(7*topF`xJM_4!U6 zY5;sUN?#S^uas2qd3p}+dz_;lA{X6?4wl9#r={s+XA8;cq%+ah-X>(ZoY~HQ@xHjb zHQn!9w(Pq__H9z`$2h}e!>6Yk#ea)3nL=&g`$T3^Ml@XI=SxkgAjWPb>39{C7{F%XMQjWeY^ zXo5g|Z0yc+2%mT2mof0eCJs2zcPbM)I*VMBM;sh3mX{sZ1S>vU8Lbq4aHa2M? z>j|I7?O34ZR7d9eHKe{Ekd(AE<``iMAETgCM|_|N9}!W?&tbN>y*yQ+TdnNosaH0| zzFURG1Pfv^GQGt?Ien3-LZq*64#d!%3ctr%96+7vBXuoz)cg7-+`PRbOCosd!-z znJap^D=ANBhg21YSG2m%4y5t5;-TJNR~CM%6?dDVRZox8VwT@mt9=;g#kzObVcm$n zF?WmisxBuK8QyP;HXdtHCPC(rNv?oz3Y1At=i(EgUx<^b!hE&Qa?QMNAOWyiKSq0& zDi9Z|l=uuoqb^;LX#9rP1(&|waks_;o$<$BS4`VMs^k>!1KKA6{iYut=aEBQ?2j-6 z95K?|A)BnWxeY;*;`JWq*hcZn)C$~wi)e*?3{XJrJrb>~=r|u4YtCNN+`6=4Bpd;R z?tyMM`%_tYYPGM!!_V+=cg}9kbo4p8mYXxqtq;-Bg)rS5tc&{9rkVDqPWT$Im2_|I zyABTRQy{EAXB{hXJyw5uhlS6E(%GO~kv-UwVFT#tRCH(fJ&$$M?WXR`C8Fi+nzfkr?@` ze8m_~vU3d$fql&1XJ9tTAWxa=n76%n`2VRrW=b{*%B0CH35u z3-y_RLJ~jO&JU6XQREA(3#tz?;qJn#vE;Z-#&!4sCoi4I?F?rwdLt4hoDbrYr+8nx zJZo?~$$*Y;3;>LT*7u1dWVyUGuha-@LOn4I#DWWO#n^z|OS& zEJ210Ad*i$XVY!xbKK65#B{gU90sweu6*vbBA#S0}i-7&i+U}kbcMkb*+ zfGXhNRI~ouPYjY9>^kqmrB%Z5C`k&1Z!)OJ-6p;wF+(#{-=@XdV?bE~3+$Yn{i!y= zccbN#)1%*J@Jo;7uW9h(dZ;A$GaaRIP*s>NzL{3C4%=pvZT1z-Wc->Z!T#!0Kc4m0 zX%Xp!rmuZ>Yb;7#?x72)d|E7NS6;!8EMPoun?UHYXrM zt0U%eT}e_l*r15c;5IT@4sgA|b)Xb>XH7fr<$BDhJ#eOtvcMeOff9AFC)iCHCWXH=ty5VI|B>@iQ&MY%L*$Ie+7__gc6# zFxw=sctfOz+J`@}8|*LdLcr^|YbSotqW`l9+2W}^QC2C}X+6`tPQ7o$lkL9l>t}hC zGYgHgehSP*7@%?R?6}=5seLG&XWMmMu-Agw!mvgyPei{yrw1Qc* zlzvv0^jS6OMPYmHJ*t9kwGa4@K;Ugijd~7;)bYMwdQk8)270DvtnLdJ6J2&q7hg{d zcRv*s1y@Rh)f5+eygeD0^?5zo^ybRjBjh^{5Qd?hW_iAA`7Mg)G#u4Jr$nvzjUtMQ z1|JU@LH-$caKB!o?X&rw7WuX;IDBFim(Y+lt97;2Z4Io7413@iBZ;t>$PJ40YAwLD z=Cqobh)Lsfdnqj^c}x!8o=pQ{9}YwvQB+uXOHa$#QCj-x6KGU<%c>yT;3~`_In*~f z`@rnX-btO=PgPVjt1efdkb+{ieo~s+Wb-!xr{YE$IioK z2g$$L<)4WzPlEgb52hP_yg*Xs&_?)qRW_jGoPq0cqCH!L!8}alDlC)VXaJ5&_dT@Bamblc71z$ zxJaY;3re|E%ST1t{%E8b?u~G_s^SL8UJ}_s#+h^`+Jn?UE&DZ)PoIIa z6qqEuTNSPp$|F6s^P_ z-Z?zdxn?Jl?;v4~NK3cL6OSao$$Rk>(D>#-B=uC=UfNulz>|I!iYZt&aVO6zDl*(a zStF86jTVf|@)k@ToP<~m{*g+6X%b|VlPs^1XClIU`y#7mXUTkbr(L#U=8Mn1s-CTL zKzN0cqalCc+U9D#8)?nHB!K;v>S#e-7EsMV_7c6Yg3n%gMVuIE5$^W;ni+zPYQ?%C z)P3cXMN8LSfZab~%G*nw6RO#%04d9nbr0--6Cb|eD*6*6TVjLpMf9+3ch8salE;`Q zs_{84doy9~-jZIQM?cs8iFCVx>#mMfe%1e^oN<+8%x!EEg z&&o@QQf(0Jqdb59Tx0S=W3rBbN%#9n49bNkR$WoyrHrx_@z)TRY!^eLZ;N}EQB7W_ zjwu_+}eL_@go@iwQ$r>W9Rj!3}PQP&rTpWeIN+R!;Ak(^G7DQq+NhudN& zTuV^kFICH$LbS-&G$eW`cn^PNkq3Z4`9@0#&)1o3qnYJ{1l`EQ>cl{iW_Fo}{6 zVIUhWsG|^#*Q*yVm?pQA8QLzmg{Un6Z#!1CwXcUlmAUL@7X{F0OpOH>@^k^SAo{Cp z#RiN3E)N2wDaQTSL7EW!SoKWE!8CW5aIH@@bR{05+t99t3J;>B>A;(x72eJGVT}fW zBfgrYSFgq;5$AT-AMC=QlL`|ZIglqji^cg7V`Z`@W$bB$5$4~g&IFVTIVg97S{`E1 zct)1!2>M*~JRCtKB(6nxInML*#G8Y@-@?@9i)6jEV=K181l9&RbSir(Yd|`j`!i4knnX+mGjcr%a^E^u*h{ zx4G~Z_FR;=R@;%A zSUWgqdF?A9>5b%p?#j+4g;8e}I_@{=I|?noZ?X-Dc{MweVh>KJzny~CXGP}}m_8Sh z5?vco&KQ3hXy#S_w z71p&r4}N=fMa4zmqu0(Ce(58hPS)jl5i_4FQ;<~vaGjJaGh1F-T13GO!)c9ZYb#ws z`~@jLu{5HjmF1`TuQ*qEk4aJL+Sh|c4F|tNIBVWcgWk6-d3!N=AV&+#5Px;GfnGgh zacpN6`Fw?q$6Iq*n*zZ}#IxMHHaS-k19Bv%``5^4Y*{%~-sfFm8_Pjw+QEod{fQkq zmf9$0h7cwl)6SZJBJIIX2bpgWF59w+F=+sqN8B($!z4=kj!ye`$2l)_vTfiE z{B~>4L=P;WVh^yy%OO@esytI#i|f(EJQ&}T7j*o+7t==6{OfWBed}hsOD1{5wN)hBj_vS-q<@JICUh?-n=+($jMyE8P&FTHm_(ObpT| z6I_~Gnlz4Q)42giq#lKtr9^LR4h*0%QU;gbu6 zmS(GeF`4(TPo4|!T}_QD^b_{SPLz~lX|e`!pVkE;xIGzIk#D8U(;=6aApJS~Ow71L zMEFF!z5#pl4M>0O=kDxoo1sfn+WV>>)>P~mD6uk_A#8@fAm`>qW8f&G7-X+5XN5Zo zuPIr)YsL|gtFon-v9d2g(DxhzUp`wizSpIpnO8W!DQTQVbH@jDI0i>0>Kk*94);sz zHrc$kBJWx|?RO%)8BLtJ2IEEyWLRy~I8l%=9{D)UEJ-I7u+*ZDac0pqViK9|=mtrT3o^-iZMi8(oxF(jcHB2^r1L&xhUoS$`!j36u$ z#n=MSc0y5LL8i8>(7HiPW_>bSx!WJUB9F;1&h6yodhxABKwJW`?UZ@eo@|KZi{0{C zH@tt+i9y5rtK97k^UgFLG@2l9)?10@9AI671*>-OA7p-MB6R~Fj?DZN1pL@kh8DoJ zBsnv}bx{jg%;~$ha9(BZ_0eE6`L|I-)3!m$P*}CwOyRcXL??g;3<)}4F%MD(c?^E5 zv`&6rEkMxO--Ni1vb7bR@czA&!e9{2-cYC5uage=7Rt(0*4ZaiI^)C7vOgB+s;J=l zT|96yWw7S_ObdAmm4GKt!nqdb;24#k_x0irmzKNpb)5WhAnH{snBI?{_mGtR)v%D++k~NKSUED(soIx$8HroV{IjX8@FVsp*xwO{o9C_T*ujLkLdaR&=Xi%wf7Fz-+)MT7AJ2??i_6j9Pdu(Lv zA;~2hStd4qOj|_CdV+sTTf-_hFYi<(Mm`gZ7D!pgwM?MM&8>YJ!FYh*X=yN}mq4M# z{G-BPzM3pO6#vj4CcmT5hXNlh9HEEH$`&86n7~&FK7l+|`s!l`D$OvJMgCHl`{`@NXe2E5VO4Y*8t}dvzUTd;8^Q^7+eJes~N5;zYPO{iw z+_K3cyqH#s7Z}eOKK~eF0Y{6f#DDmqMGkxf%xa2GMj3;*Z;UE3pYsZxKE3Z!l#VH2n;qsH~%_e)Pt~_>2Y@Vo+-Un+?zV7f9JS*mRGn{8d*dPtn5FERn2XhhRgKyFp!Lm3GUKS z6z7Z}Kfj>~QY+Pc^!S6S>gz`DA=>A&Iua77!9vHm9~UKbeGN1&#FF-Az0MLoK%pPv z<5#qlVf%`2C30Vnj)MG2SbrAM_ssir;;LNeSeUyjzEW3ut#dP~rq|tls`!RNh;XDm?_@(W|IvtE#JC`;3=pY9^Oi)lmRTPH4jG_zyzX zww8NyyCH(%XaS--+uKBua%!0_baHZQ&YM%Yhg5MvN78a~wzhB;!YHzaXfH4w!6wFS>KG;R!oSbY+L%FEg%{V4#I z&f3C*3Ie&xw$yvQ+T?R}x;gr}^X_(hC?gh=cZ@)0ki}tRGGjI)`U_qB-Q#CBq;Et$ zXn-0=i?91h8!hBF#&l@68I62WHcwCjXs6DETpkBwhf-NK7g(6+^aI%7k{LuK?sn!I0X{}j>2C1ZNyb9p56 z8$m6iE*Z-m?(dxzBrcDjwK;*cl)(E#yO>0_rC8jhSl}IKgN&Xg((_Q!a$Sv zN1x8nUgVnZbr4|aTEu7^DArQ!6)tSJg))4>)`183I_bErYrJ^Q*qoIp7{e6 zz49Lq@RIpi{(O+1bfxsi1GW^lKOdBZdx-u?!9YlqycA1#Z#(tzPwn{7k$ck%!x5$W(L@E0PVQC3}06 z*OKG_1-`;Yd^94PYlJPkLqV3rVt-br+ZqRam<@UgJIw$)$nYNa@w@SVchf4>eDfOg z^cv9!v))A(35+2w@`LOrOCTKM`-WB8#Lc+9x%qt3dJTWMaS!VzT zK)vm&7bfTG)}*s6IZe!KE>l3AQRq5;WLGIiTTRTkHSGVia-e!IGu zO&L8|v(yiQ@SVjDa}snITvw-|b4!sPJkKn~j#Eu@LEXuFrn1$5uqKsOmcsbvsU;2m z5L2cwm7(KduA{cbn=XCQX32i(^m$rDq_@qChZ~e{Xx_Yjp`G;*J^~2@atA)-C*u6M zWtBpsvMYB|GgVd&oMOVHU>b@aO|4K#pppsGDEo>50@;F@6f>gSD|F%%DuA6JE&l(9xvrQwj z4?!R@jehql1j;Fz8{V49+Uh0~_T3T2ebJ-18BSgJS^+lvo!Y z#EI?@M*r1e^QFdPXFcL^9bkq&06M(9qI6`S{al6Be<}kHTEJMs?ValU;c2`|j*AEK z*9?_mw0a8NR!exB;4|s?8U&gV);3IXcu;Jm%ET%!yZjmsWRL0)W@7rZ3e`k|d0VCu z)`9`FJa}5g1GH?&1j1Ud9Ks~~2t#X&+N`xeAZ=0YC7eo71rgM2o#yVXK$2cbdWK$A zx^en`gj7P_Y_8$kK)k4@pAL=twdU%~mAoQE8AmDYr@Kj=C!$BV zg8}kqgAry)(l9}o6arfqm^$q1&+cyJuZpzsX*Nr@>o@S~q)hwiCY|9b9(AP4?Tcr?1%c%P##oSP;AER0a48a?Xta zU+U)NM^Rw5ocnbwaJ68*dU-7RsO6Iqm+_Cq0KA7xv z5H?2-I@Q92{KhP84bPNAHn5llhOgk|n zDgC9pP>=94XyFyIB)P#Xa83mtWdFbc_1(K#3}?Cjhq||ps;gP{MHeo?A;H~UgS$Hk zB)9|*5_IA25ZqmYySoPn?(PH#?(Xm=-~R5o_wI4dcz2Aq&mQmo0b|bY>gwvM?q1zJ ztA71>x81g|=Rc`Q>u?lQ%5}wu7jOR5EhJ%4_MVEkOWcmwV{dZ?7W9P!E%EfWpYX-D zsm?=)2N#?2Y+!!lX2Is9@=&5|b^gWqQwi5E**x7h^#oL}(>I(gf)d#F&i!I_Szb0S zwWWqdXmiB|SHSRa)pKIS*KF&wkl+g`5UB$4M%lm++)lhDu34UMY-!~!s8uZ32z`U= zbZ))>r29j;Ov}*GuiSUR+Tgy>1q6}=*@j4Oo^KsD&+-c5wlq6$X@zSzviG*HJpdwv zvo>v!TmXS8z<}PscOxg_qgZ%upl*5fG*V3F;-Z4WW@_YH*q})TG9YRl}}1_7@vSUB*1z z;0CzhIQ3AvMh<0lCx|(Vv}!$UIE(uwwne^!0CO1 zZ(c*?mNb%<>osabgxt&*pps>mSK~8LZ(#U^52;nWV77H$P?blzG#SS221-+CTBr;Tzfyb=>ogqWvgsiXdt*zSo90^N&g8+h9` z)wGn?qFBIWFEv;Txm^!GwZ33lX}elrXc($`2qMP-gE5SG1EZ}cFVi8o)n!ArC{^y_ zn8IhJ+2P<Y zMTILSa0mdzUE)ml=iT)8(Jx$Da;CMA5(~J-jqOO}E?BNM+4nvD&I}N=OJ+`Ur%Qu& z#>$Os)Rs13(~K(|ZJE@p>irZkHvCIQVJA*iHQnV#GrIay-f6>43-%++)wDjm&5`a zgYq#eRZ9(XT|Fw(+1lghF?K~f2ii8l8U&Dc6k1}V&7aA!_qON@3r}KZZ)Ytttk8S5 zc6bCFXLkH;qu;OvFW-@C(Uj`Ab!dNSS8Ib67%C&>-?}s*_h0%(8E1x-QF8s z+{3RjOP$#$nYy4XP>q}1+Ej$kXSa~dRUQs?KRiqrX~KBxbkw3fFSwGS$UI;)=`rL_ z1Q;uLi1dQl&8cRo=j|_u$K|t~`LGogX4Wq-8HJ=^J)+Y%#FZOiL83N-;q64Fk z#05SPZLa>dZ>%Et>((gp6(VN5a3e)_8FMj*^NE$b7|DuoW&>TIAR+FL#;+-#2bPH;A%fMv7_!B+{Jj&PY8jZU0%!+2MKi3;s!Qy1sq|xKja;hUaLdX;>@!E3D{-dIO zE#&PCEeU+mKR|U#71C(H2WOkPWx_FOie#{sB%v*dOjZ!NyGMTV|vc_}tvA>@R1EQcnYJkTy8dH$;AstzT-5#~J ztH+l7AMOZ`>|^T5RxiK_9pqgC1aTO4Q+_N=KSR}GMi$f7qe);?5$O9vF+LtU?@z?6 zjqx$(9wsa+xv6FEq*OeX6NZrq`Z3idGJ1~X4Tcz0l`6Ene(QvBk)He zj`}m{I*QkzS{^&Mn%;9MMe1PGtQ=iiJMLW2OES%H@1uDP=(eOP8Y^`hzXYc*-6{VZ zr{>yQuIHXucuLgSxDJp;1futC;S+6`cEix}_1&MIE)FQC&^C@EL&-BZz5Tnlc8)v- z+-;WK!7m!#PA*i!jhD(fp-pn~!?bLTiMW(Qvu7q=%Acq?W`4@uTpZNhY9l3@G`aGs z#~3FfiLvFSWS2=r0k{eBX%Ab_7b8d7?Vpm|n-=gV*`v=kWCDk#tcWx;LW(STaCYry z+v3)(BJ}=T-Cq)q^9N~+V4u8Ye!zGAL{wL7q8Dw3b-DO65L-2Ndb-~2bg~-mF~4<EY)7J9?5fAzO(w82` zrIOz|ujqIgHm%uyANlTq zLs4QRA-hLQLaN1F{#hZ*GFZenuw?mVs4oJZk8bnW=k~uRUs3=g4&(UC!DE5DF2gXJ za!4+khRafouO2=vmJ!x1I;suMI4fzHdzO0vpvg%B@QG34jhEjO9k-q?Ey$p4PP4sA791(!8|%$t9JRknU@CIWr8{U4e>wRc8q^mY)5u7oU`7; z0lX;phlsXyvltgo@03vwS^XQYJa|%Nlm@DuEKP6L$Oj0%i7lHFM^cafB_k3b<41|m z80ML}#0B~N*^!g5Q1%K;YRZ$@cE@R%AsTEgScL@ASppE~3nvg=5uAl7s9oF*d>iUY zN=OX>W1`A6)w!Vk5F>bB>Q zOSy_Lvm7`mmPZ#+wmY#~n9EvA%4vm)^0{#jO3r2E z#Bm);&RX-9L-bE1>0$ef;anaUM9tNOKF8+gS-BcRH-bZ@6)EE5X;NGV^p4l%CWUmtEuK zSg)dfT|IK*+J+!RwqFW4YJl&bY0PQgd$L|XAMnqgSl1nLv&XGVd%f85+{T9lv$Ems z*>UAzyY%Gs@j`(<;BVg8cb*4lu-MWXH1uZ@9ZFpXIy@M9@vSbcFl8onM+@?GG`Gs? zsG8>p!OSBvzXt2y_T8ovRPt|BA65;~{!&RItDgDp+UDFcr{P$^FLO~M!ikgH9bNB5 zGmkJtOJqEd!43M-jh>j)_|gboZS`ndik!)$%?}orb!a(iH0)rlUaHHak0je-Vi`RD zF)Jw^(?gUmU!x!MXK|j|O4BS%utQ!>+tB6B>$=~phccfbHR-2guW5Q3kz@U$Y#5$b z_TzEbkwQH3g&np!Q>~>oQ%gMvG!5)xX+0royL!Nh2FI5MYDp7Uq1Vma;j?U>*}oL& z>k>kLe&3Fh09=MQ8(!&wo$)LEVq+=MYfY(u#9I@IJzJtgC5Ry5Cp6$SQDkIKt~UV~ zl@i(p33}SF?Fog&kApGz!61-=2$1BY&6~>GbvY_q@TV9O^Z~Vp(j~l>2Z95V3f#5d%~&L82-1Xhl>@ULu*WyZ_$~7(u^mY(!7>;MloHU` z!`O9g%)ZHXhzBrq=%KVi=L|DPPYh#(0MP)sq9ZcHmBzS^D?rbJ+rW4O6Pars!P1>T zDFqN9OK5K#L#mq0+_QbrfYk;jxBZ~To|Q7P)Z+#=D9)`OI#q98PejDOX^U3Dlna47eR*Fy^6^`v~+)64coPY0cP|J#9B zR;#r7#DSlCw64dNa)k13y$$d14&i?b7|lN&(srg9HlWA?^Djx@os$4&fNd1_ZiVmf z$bYv=0PH4z7XZTu69UvJ3}6^FQ{mh@g+OsagHHeLI62;DlF+uzu0JZ#+mJM`KVuu%uWcai|mYe<4ESx|h!vb@1EaIAYIRD?abeo0`o zSQLXv5&8dn65A#T-5jFGB`|uwfRDZQL@EtMLYe3Y9jD!>`yaQI(4RRQV|Gd8!Dv*x z@R)@DAt+tqaQfMPEE6J0|Kem*_qNuTG51fsa~&ww*DF6))YqJ>LCkIrmJI^J2P9I^ws=tR%1J@Gm_>!os_g;JYCGS4;BO*umzW=x;0Tw_Lfe4lyfwZ znH`7)CGC_`7bux~sQa1BtD6r)8g)FC{1&z%d+HR!&B|I-oHjV65^LjECRA+0FZl5G zj~}ZVf8G&>L`2#NHf5SrA8=z2xpH#E=#2fGpRUUaIc!$!O=*8ZGMaPZa0HhZ2)2yY zRQ<3Q$llaVA9+&K(>Yivoa0YF?km5u<2cY&bZ}TH$oc$Y^}Xgmh{%IeRV8($_pY#- zEoF9J^;jx0eI!n`!CqLFK_S1UIq!|Kz8PEgCSvx3njCg+=i(QC(}V|K7ZKi zjcN9z%x4ptmD^Z$4x>Qo^xh6|w3G4}v=>7ibx~x%?>A9_dFco*A2ih_i4ZpvNswiE zG1u5-zR9>!`B)=Q#?<1U3C5`=)&?20x<#qxYD@Q$(Qq=$5%#kXND#GE?#6SMfsVS197N0jxe zidT^HT8Ac3@e*^6X&PZ>_o1f~V|-Hp3!0a=Nk17hpr>YF94J`wTCUDWk3cq{;{?E@ zVB(Ba_BiIs`b@!xVL;9xgi)!R2q=@jnB7wIJn!F9voq8Y7e(A~wAvG`o;&Z@F*K1D zg*>n=`=K14H^Q<1^?JkBYA^VjtIW_sRuuG4uP1EoD(LO^xA`#)9TY{r2Q1oR`sI*K zfia~uRJ0j8Ed1=a{4nRkMj94M%G`bW+>$Zeczcq!| z3L?3Zyj>x6C7Eb0i7|){66rM+t`80?(Dc$!rZ{KmzeVbQ7k&2WfLRVvJQGGBD#8j~ zAj;&)SjP4?=Qs5v4==#?V`qIX$K%IS%)3{y7Yz z{R{+zc40m7)y%XoUg(cK=@Yc3*te{nWIuNknT~#-`Vu)?n-4F*x`q)+vs~55Y2CUd z+51}eU|{M$4jK*Zx+S@IGfg}~*pN#jf9I0`E2uA3Nn}yRwEz2 z_jY07M6iUz;WNC@*La9R{t^i>WJrrNi^>4RJ?F4-k;NNELJW$L;!LB`Om}bR*r}0y z22uvdabcCwD5mrI?LfuBJ76(P(a!E zdc#<-&htgxl>%QO*@r^0fbP;Z>DWRQ?=H#R{V}DYt>=e;GYz=U(1;F&Hc3_3W|;Pf z(zAnyUTrU!G%68m>R#nyvc5*V@|>fKVH_bmFccQXt65$_cD4_v=O?DpGEwqD1HBrl z(NyRK-r{A$N^=n-DQi5!n!ZMYB-se1Gt#laDxhrDKWB1t2AS$>lyK&d;=JM- zCMmWt@@pi!9z+^0Jf~R|465~e?Q&&?DdkPdI>#cH-8`PsS$P*?2ZT{$k!$K}d|&2U zG6}f8(?o2d*g$cEFr=j|qml$dn;^BlF-ZdON$MG5@H>&WA!!B$-$)wtp{svE5sqTV zb<(;@yYal@-P$=mF@=iudhbv`4r;Iv+=d|?Wiqro2PoYfyN2k$~kW6ljY?t1{FR}jd zzonLX)GCx~T&GrV4{v&u2oNS(9UUtbx@1ptzGWYn#0^{&Ouck${d3kvylcTlk&u<* z3!$qP&kq?zpk3ga)D=Ai1JE;Cd-zd=8kT52<`vk*rym&(z!6?8~9w{K(zf*`~3-5i<*^w;Z2$^)i<@<)SyTrE{3lrf) zaxNXr8EL2SednNvNk-q)h(pO+?zo+4=HS9K zlcr!N@2#OB{O;W3R<*R&W)aB;e?^X!^6^3@4n+dz|TMqf?Y}fEPxcT7rpX^7omNdmsE& znw{To48WNS0)_~7ic>5JNFaKm2H^H|v%@a(FtsRpx7-0Wd{-|9Z}Ca(efYI78N!IM zX(t$&jv|pppRP{EsukE7oKW}cXx7hRifHS*qEG&?Z&`UopmRcJ zF!4Y4>_Ve|XTnngYa`@f`cKqd%t|F9if6y^+F$p1%fAPGHn_XGm^Klz;R!wiZ;;bF zPau#NObflN?JX!c()>`c5EhsDhg;?Q*7oIvysBQwJi(*my-Or4qkU@d=LX zLRaDIG$&s|Ye-TDx9y()`eWMvnk|vYOeG|iGJ#+~-t7AYF<+XUSEMw%q(9FffN*T>G2kN~kIGd%}QCf*jf*>5FPM}p6al;5)xE-d5 zwUcc~X$tP*en(iwqs04>;5$lU+62O;Jh*e4e^1<&jMud}R_=o-T>X zD-a)2K38zkkmwsMHAl}=k=O+A86AS5VOo0pDSCC3ly4Lh$gd zLLtwUJq^+IN0t5jZN6P1&O!u>ibd-zXZ2FfN@P`cP+PYwJzL8}@kJ5gtVaAIvTCN{ zS!M73AExR9%kM$1Et6X2I}_6=GmhI0gR7}#gx`;lZ33RKRrul-iPz)G?e_@x!FlQv zuJmJrF1`|i%Zr{j+zIOZ26^U28;~{OK5JFp zDfw9Gte-5(?TweyKkB#%u?QS6KXyo_nKlblG>aafnc!Lv>t-lO z<6FUyI$#-~*_AAi{z|xwL%Fhxg^<@xkeU0Sot^EFWPs_ADu(fu&}80dWjhL5HVBtf zL(iuFff}2`=w~eV_`?^gPp6i|PyRh2rVafp239UNHv>R(Mic_{&NdOPD!R7$Y)a8(_X_H~K1m zR=lV}MFXs$CCpX)dpi#{$%+WUkf|ft6H13B-hvN9Iiu_Dd>0R~ty)A_{aev+w$15x zPckcIqh{0Rh4$R5tDp{LrxJU-I{tlvhz73CirSUMPl2k$-w;tNg}T;qXC^-C#&i7R&F@{wdkKbU8oAH=KM8=Rjh4)~MsIY2vfPb3}Zk)yWbGm;jTx1i} z1?3#vO9H0`=hZG;De*INlNB$AK%4OK4)W(a7_W%Fuc3C%w$54FjS}k+{Guvxn--gx zTmC2ruQm&x_rj{I1f zq6EYu@2}r3NHt>l-5AW=;C}rO49+pblrwpE3GtcF5jvfT>-2G*MZ8I#-sI~rE|xU(V;E(0o68WBHKu;y>^u{Xal?)0+!k@+Xge4r*^3M2J~O3PG~ zeImcg{uZ`@DBJ;QLGL@4#8=uTPkhSqNs3&M=*08kJ*3y) zOwJfI9V+5M`PH1g)NY*r2lI3({1WN(_pEjdj=B_8(ywX5i5hH1Pf;3_AM_BCHAhQ8 z9EyKJDOj^TgLBzllNM1*-*PB!$Pqxxh)^i<6ju1lmr>XA+N2oy^oT@ZiEmJNW7DiF zAB2>lq)?rIQ-0b;^2lHt;Yi8r_~7_k_sS#g3W^bZpB}<6b$$^tUj`gH)%x^iWQwSJ z_jF;xY%L`)mlUG_>4TbRFI&xfSozr9nY8;SEw)4Q{%hiL$JSU5@r^i$ecAp`sSArx z`7)P-iunyWgXG*(>1BIwfPIO^|lQeDi? z;uLRxT2dO(A(atVvP6%_CaY-qqh@u)dW6uL2TRlWF39#*iXFV6k*BCpehS#8b@cl= zoi^ck&5>V7Mn(%86Q320Y#Q#}CC*0u9+eUD+NnC;ZA$SIdNdZ)fb6)9$^kM^lwJ9$ zUvw9OU$>j!;BR4|k=g5>g}W%2c8tmuJ0O4ce#O7BPtT>mpoX=LuUy}r#g|U%*-Cpe zX-`9Wza*!J9UUjW(L+*>!MVKb3I!iqm}cKPq<^yDghIg>%?$(kj6h&z(+1&>@JVrx zd#m;$eYxe2Zwh=Ij__y5pj2&ZkUnJmN4CxDgAd%*$itBi|B;uh?e$k43W3eC%P~xT z78N8V?1%VHeX2Qp>4X(yq&X30v8b9pngnB$FbsT{e4x~$iRRx3kiGL0gptN)mHC-e zyRjB8vt^NN6_@QY^|Sjju5&$1g_-vPtrw*>7Ir=fis)ZZDulclO3V>Q6TN@2B>Lj! zxvfQd)y4%sw>u>TZ(APCS9%9O<9Lh@_KL|RVhWIE2g02RP_Z1#C6^_2ze-q~(j^~P zUe!@`dihwJD0p+A^v-HoFFlX2;0;&dar|uwv?gz!H&5#`sM?aQ#^bBlpumeoi3{97 zzL8`irVj3K{c+aVqu=7#RL`&If^X^K4-p@xZW1iXc}2wGa=O!H&dcL8kl5Q+|4|-R z)~VU=>r`g&ZfGbo+C*n~tWrqf4!l5!AY#$+ORmrqEo9Q(6>OBTO7aoy8Y{`MfZv~W zvwk-9uK;YBI%s*L*Q|G#_tTmpBmJhfOshliel#%<&^VTfYa4{o!Y7l5mB@nSv#R&o zgcK2A)B1^@-NvJEj$T5pFC?OJ1^xQ@bNIpu3dZ#hLeb|z))U9=lQlJm=HwGsYcB`a zO$wU4Fy6_!)*ube_=V#Ru++`?!0}`adu7OTgF{#_Y#kU8@-H=%7SrZFQbJYhMNc~T z_6mM>cU*l*+Rb5>-~vee|I#!-a@#>>yhWH@_H=e}v3J0+obZr*a-L|<%*-AcEXa*( z&Dme{U3B>LzMDZ-0w5pmgc<8TFx#Mip~`;y;7XNhHT4u|Dt;nRA8VJF;}qQPnz!+) zHkje{*Pi=X;fJU8t<;`#{`S0AUBMnF`qN`?tAmjCX)5usSM2Wj$#K~Vu1*AQdRwkg z!=&_$#la{Wu{QpbsOTlJgo|w?SpGm#wcwt3u+{L(rP1aW0^8@M+5_k3-kv(fyGf64 zBsbyK@AQ0to+c0UG$|x6kcQ(7hjNAtx`(#d=JSd8*jW0poVdN0oqupf+QY)4+}-5F zsGbDATZH7x`|(#n{~lt7CW1*{ZKtZ?3Gn(Je=e+zG{hIQ1FAj41 z@E)qax+Lt(99-5xA4|-pw&-TS^&M16^UHG&5WNSV6o`P-KH)KmVFbT840vTgruI6v`RW@M-%zEvxY<(bN#| zOu$dC)10JjJ66~o1&fTFHyK1R2KVrvdnkC!!mth3LVNykQUyTWtbeDaZQKSuFExcq zL%&C-Vf8MCM&W8&1$9x-?QrWPbhR~N)j@y7$fEPudRx3DG~wK z#I}dF@J)4JP`eFeD;kbZGUPgRk`Ds)7buiYVgheuJ`jX52olE!2a0@x79_&0+`9DE z)Ul-5%@MBc>fzdZ|A=)Q=40duDt5v&qS_Kl9TH-qC|73EETNan!%OG)C!W5mVDrLU z)#gQ$LgNpOIL*(&Fa8?O3m7HvGvss(MQXOzT*F=7g^WbeO}w@nD@9VyW~5=+>NB9x%`eO zXH}Q;&2K3%wnB~zJEQ-DYGlQdAE46f zUtV5&zJ2g3=)1|&8wn>t7GWbd(q_|YT=;UxNz;MV+}?s`71TY}J+-rL%PlzkgzE%( z1%()1=^|sfXJ9z76a_)iEqw1|M70YsK!0z5U3n12AEQt5B+O=Lsmm7HJ`Z!qOM@El z1^8Yt4xgGhY=G*B-h%S_aYFU4j}w$N{caMK51srtTF?nlVd+&aGK~A09}fjNBDc4H zYzf;}%(v#gvoGa#B+lrIeeeAK^v@ek=At{L`0nG)b8XkK5}3qUuV2DchoVLJU=O_#U}WNeB%lw6zfixY1KAlRP6 z7|?Om_KXJYa+oef9lb{`(m(9=1PFa(b|vTQ++IMba`6w~&J_>WvRkpCN<-YN} zfkRwQxAhWcv#_nfdVzY>OFHN3eSsNZxHoWl#=h-f*|rXQc@v{~_%j8XpY%888VnZI zZ_F6Y<)+1eR?-b}bcc}Jz(4P7OFZ=}Dm`gR>GX+XT1(aNn086)$Dlt`?y|?E9ZBQE zyTQNws4VyQkXGJQs*UapvdKiWl>J>m!Fnu=Z+;qer^NYH+D}PV^dhJ!+lpu-YZ4(l zRqJG%6ooFGXIAFej3_6-}$p{t#~}9Y!LP8daOy2eb?T3SBv|n06OYY zrjwQ-sn3PruKn|NAW0&0(gX0gvcnJZA^Cp)TtGBT7D^I={&7T^)%gU{3i68d)Ep{1{Cd( zxG9?h4=MWKC!R8PacmXAs9pzHeQ~kbZk2oktUHyvM0<+1VZ6-EmuvC^tcN|j*-{n} zW>S)gLyC68d>qX$j+so{*Yj=5BaZ3J+}8_ri%Ep2Q3QNP^OlQ;_*i`=HGUqW!+g+E zox|!DrGir5{*;#2&d*RIM3e#m!UGQtX5m4t#8fPb{|5h#|I&Bl82mC{;0O2@gJ6B0 zv?>Bv8s&aVJvqt4u}+B$gVERtd;YI}toqAoDv7}&y|j=KI!$-e+s zcp8$u3Zeh3Gbec>1I?0y+G+7`mBCv9a5sGoD-ec1TyuR(wQ4&D3ZnC-{uk@}ztq7$ zjC@GY;_v}*N%jUDO)c!5Eg_t9po9L~jQ^hs)7b)eBLgC^AOYUU89`SRA3H-lss63D z0D%Nwu`K{K=mRhtSKv|#AtCnge_f~lPuu;^Bdyj{%>8hF%zRoH)OWTp{aodY*7`M3$B5ZZc{uILOz|VM_6xT zTL*z~`CUWUCKGJud!P)Z)#@*V4W$BWG5E-c3@JPbG$+5q^>2W)14_NKEAoJ zPIJx!X9CV2Rw-M&YHB0hIi^FI4H#8nRucn$!R|Q`YHe~e?ItN6G@>cZLMNo*Zr7=yf%(J2V;6#WiL(rwFxf)jl z=|gs^9%y`>%k2hp$p{zD=FzOh;gZ;r(SGz-zh*No=KE+HQYzmNY{OtLCc57;P{DB7 z{R6vcQj({g(5&meq!WG!K7P@GHZ0nlDAEQ5T54gqBLqudzBN31SmuR z5Y1t}J?qjX5AIsOmH3hMM3|~Ih88eDVv>mhs>BgN5@wAR(Y8j8T;*R~|5hWA6m8Rz z2GKF+j+i)zU7Os3!1GOey7ul$;X{(8LF^nFs1otD3_GiuHS!D3^HHE`LFJxb7et2| zQ@n*gn2L)pak?)wlq`Kn5L;0DrXtDAfc>@9yT41Rp+!ms5i;JtEH5*ens%zSYmREB zsHP<=^#9xtZO1_&EIxTaFaSAg@4lFTyhQ{38q4uAf{}+HS9k4Uc=-oMEgS{wqSP@& zPd3Zi!mSLt0p=ed0Oq*txDD-i$4IxW8Jxz{RFo>o$qW9)R3>JGAoV~J*erQNKWAg* z?1Gk+g~jZ{QdwjByP{hG(*4ZzFE)^%l*m^SC_i;Qi5)QFM4DT7p6W4XLCsZZ6?rg3 z)*ZY7Xpn<0Sjw8{=0UqF-_@!yWy@tFJ4uc~z?_TE7v~=g!q!R3-wP9jAYBJOa<;4- z**Q8`)m|GhX+JU&y*T~353i~!M9c0Fs`Xe3ee(FJ!{;>p{9`XU;8&jI$0>sespAFx z#t>vZB~T|FG%Ls$2~N9=geWo{JbyH*D&?fs;@<90`HUCpd3QBFUpDZ4ZFUWtpOs_$ z;*;7hr>*AZ+sih~@(<&+HYe2gKZ*g7zq0w_c;f|Hs0Z(h08+s=SiR$%Sg9N6TH#Xk z@H)Ok725C6P9HnqY4lplxLGZ}js{a~7=@Iq1fX39WS8JT;Vfa0_|}r4N{C9#Lar_JGEX0O{YCq8fNGu1F@L zZR`$D%9dZqW4M72Du?-!Vob-uPWpmT%dvi`+Bro)t za~BUYdVdb=hEy;m(3j6`?^<5i9b@O`Kf{1ZMPDmZZ~lz3p*0c9$arr;Ah1Gc{(Ns2 zB7VN5bJD-Lq9k~BkY|7HAfa-0XIUOKX5sO}JQWOBb)4fbOCfE9%vY{hS*-mzp8vyn zF{jt$`t9-_2u!*BmK=a4nCbLTkL}oAowH~-EgK%k&{ZP9M(UrGuEa=@U@jQ-s^@&t zS3Q#i)2|V|6BRe?=4=@mJ_f6m>+(51UZ&sHK06pYcAPCvjG=sT>+z?6i`Y6?4Bhuv zU#%-Id@I&AGdqKzpBsX#{TbA$3C(&se;?WA780_5zX|f}?6_Am5tm~SS<;l~%w?UO z3$z*!rjKgg9qP-cqA^RI<~}M%TvYhgr})G8Gp)kZG-48yrGZYZmHV$|h{G?IZ@AAh z+@!t)HWmDoV@kvw1ujc#GtIyB6r!IvNb4T>lV)u-dYAs9-UpqXS}JTgTFv08H+siT zU2na_u>-X|*X@5gSiW~@k%kT|-=EXbf+0u*mXUhyLz>?+ZyB2|W%QKh>Zh+IPED(4 zy0Zpl7Y3ntO)kuo38`w=9zR$oW83d?gbO~qeduc9_4x<`@)ob31JyfBmvg;ZmJ2Ar!e*q4(se}N?(hA46i*s$1D2?r$q&7aIteW zXqOAkeGSu4={7Um6t}}uY;v0?p+>`GLuIczxtcAt};})Os&?X`{ zEb_|OLiJs{PWhL>E*FX2p-%XoC9ZAGbl0PoQ0#Yqb~K6o|8Q6?50}!IFU@4WK|BvX zNYq-YAgth%>n}Y=A24gI&VIaD^!_Dy86eq5Z7`wk-hCg5^YV*6fXY3!f?@38~g@5n1l|4G0)#oN~`SA+b=f2ilS*ZsxV!}cj*g*Q=7zvZW(hmFF?u{VQ zeshL0w#1hf>Jz9EShCS{=Vh_9MYWYOJxzaN-g)K#DZq*)T0jE}P}Q87E*#<;c0h1ettqPK=FL!0?ym@pFCylytA zRG7r^4K-GN@@B?-#y4(80F32>Y+0O++d&&%j(Ja-SyEKdxcjb6XIcnP&t#>pW4N;N z?Y=y(5?N&saEQ(i0Z3ibCJv$QBYgNykw%{VZ+QubJ{rWv(pnd@kM{0yUrq4x`VkYC z9J!r;@`^EjX|eXiE7X6Yhhy4i>BcvxeDhy$sl^E%X$ex9l~TdF3avpts&SISskd5C zSMeAx>@dNGtipw4oevO3s$Tftn-VcxKVMUIw$&u3_J?UJ%qCu8kIHM^MNhqNW8Y(gL?|F_x`YpT7Iq<^6{bwZJV3#tf|HMVSFl*BDx)Wi}N4yU`6QX|($?QNCxJ5GwqdQtx>b6c+UBT8;$GPYw99^p(Q` z5kppKsoS!Ur#VR4)a$?J6+}m-kIs{Ow^gCti-&yiqd9JCGK{0tOA{Er>*Qbr(WiA& z!--o8Mmn$)6e}dFGt6tN8pR<_UnP1A$KLg~L~)bPKhZ_uP3L;9@VO#k_rt1qy|#Ns ztCcsUYWz7YpU`w=?>!MjrEj`@bXp?VGy3oiepbLaLj&vrfuZ=?Bk560{A)&o$2dzJ zyJd~s$@YgdTG__N@X#*G5jvQ6jJ}cZV6HWLyg09D1aYy~T%yvM8;Op3BD9jiRse%& zp(l|Bgz{>s>MxSq2Vu8>rMSw?{KRq|6MF>Oel*+=vaX3XfA3&T{du40)pvujNcUq)@|nKYe>Ie(w>^0F)Bc>IX|%0M(% zOJ-8{KD|M4dOe>P%^T=Rtk|d^YP4XTo=88l?NatvrXOYZPNkjM%FnnIcdb_1y>S z2z7prj*^f9H_+IK+3L&4=%35*1zjpze3~MH37Y>!3D!mJnP-Lox+Ku04lrN4ROqcO z%M-z+lzZ1Y7v5a$k9C$jaI%-o>UV-5!*f)(o0=s_bT}J#S%W@`aGE$-aRPLLC|41i z1M<#P8{rKYXB=H`F})wyxpu$9vf%u`%EV4r)p)h?eHAD({x$0AxP609y?P=gDjgs5 zG!Sjlj(6m`>GgPNd2ZrvT*ianz%RE0J$I_(k!^M5pG49t3C&s?aH1sq##jA=+naoB zR;63tnzQWBpVKqiSbJ+bT9_biba@TsRk8FupS$zvF?yg`Imv^6FuHp|YNGY{a@K!w z{XrhU%q^$}J}GDKb$31g!ac9_QiWsq-R}BEXyiatb4{)xjD#w<3fRhhTYtbD_a%Av zXUaDuAOfrXx3lhq$D5`4(GYCY?$mbEZ@41zXol>*IE!63)LAeh4E;4QD&O&GZ5Ga2 zce6t<*OU&A@j0m!kYD1?#~6=qOZ47#TPC&SMl9&+ynL=>Nw&Y(&P%9NfoS-661TfKhsuoBv-_PSu>Le1;j0MRoAc7n9w|DBsG`P42)cO~g%J;L~-#oLh#B&sPg~ zf9ztoXe|{09Qf3=_9}+zKm>zJ6hOaKe3-z_j$!C(`5Pwd=jp+ztLE9o0ghDN_iKXs z^7e*j6YD>}a_nmM))bFc+p&$T9CaPvHFZ35uUwKfe~uP$Z^$fcxi*MM9Ba3DM))d$ zCZ;uA554S9k}&fgVk$UE_RH2DFa?)W$CfZy6M5JN`n64bbp~^D^diAMl#H#;)G-bw zvzo9mR+rKY4nF-86x{>CNrac6-O$Znkx}NgOTM>p5i^n{4*7(jrOh*TcZ@O_V zx>#G5N7goxYfXH96;-q9T1)q=sKDvC@ zm~)OfYQ{U)7-Pc3KoTjf)d+>u5VInMnxgPTS?jg1#5Q~>t@jnLeUJnT^2ZF!ijr+W{h_qK zR*5^NH)pJ)j29x-uRZ#kjVPE&+($8X0H@|izI;@q_SmrTJEi*8;#{3pyB6BACu_R* z_6-hTgc2#^>OpBVkWR!^z5BQ-o5kX(bP*`VP53S@tJafLkRbv<$Mrfm9^sUP6AU{q z-jK_C6C9?qaYCwICE^+XcnB14>EK+1QI0QCxGU?BF9oc6h|a?csjA+6UPwR(y8&RzC3&07?QF6{Sm zoU*NQ`L$7k;BB~VMcCA-KqDrRv(LiSHp~OJprVxI6;zX;EqF~df8v)FV!ih~{X%4- z)g*G_w480Za}`mb%c9 z8{LbPd!B(IGNh@qmWWPtbT6{RDG8B(;l|7B_iGaCz`K|F-I9wlN2b6&i~zE0`%Dw= z_#QK`ajP8KVlv$L29p%!aL~Tjzd6LH`=`DuFVH6WI0c8k^`+7nhlfR0e$)~G&0NZs zGUQ?#G9Va#wE27uZ>apzjk-eW;>y8#;A^FWv_ElJJlZeXLPRlCKQ4tu^ndSJF9Z^s z5u*O0OM()K@f!@Y1x z%DwmfT9|15nq+@!QCbj^GxVd-m+te%j9pKWlf6A}y8Aop@QA7JJv&eY5Tp| z?0#H??TfbHc~;VWuJdE#JM0Oo^`fgkBOrx4a*4Ar?c6|+P{_4r1VAtMwuIT(*z&s< zuaV6Mlh3!g3chgLStBo3yBtqBQoQ34upIt;tc0Zaf%olBIUHaFcLJHTc6(0=(g|Ao zjY3yk+sl~04xapIU6cIXq*)Q@-r(lo8D68=+ zl86DpSdWLsd@JSHH-9H!80vop%{#5$g;3h1uYe$Jdw^XMSaS=?0tAP){pzh_D>SgT zS8Ww*(ui`NDB)eAlV77Zf^n$?3RDy^1v45~j51!97V|j$yHkDgbUjm6`snDWyW1B6 zbip{;1&0;+8|avRL5r%_+C^kn^L#VOUNKtm#GADiG7+D~gAYsv#XhHctR$xg`flA1 zv4CuZ6<-I@(OF%c@~^!TnDy$RQ7G-07^%`q^7i%4!|?vCx~FoAL1|tg4H*-Dz8U<1x4R zJg!qi9eJiRJ(kmrb+4oFgxTM|ueInHX;E`^iHp;CAFux1i9fhqW%CrBL+OE&>#Oqe zqphtLTRV+j(*ehgKK<*(Yup~w*BMkmhDdd-I@x0_wUz$$8=sgP zlH1-A;JTfb`V%Q{N5=xMlZbPXBhB*3nVy5oi;p9l+B5w80u3%wUHV_1EN<9uK@G@q zHnAP;6KlW7v_;RLkte}T%U4_Yy*12V8lppi0{Z?;+ig8v{%O-Zd?_n1@M_^{MDx+W zvyect?y=GFCR{?T7ca6Gz>DiFGei#$zE5)@nauJO?drcVyLzfPuBA|8K7u|2bbBTi zwPI|dKht>Ns;77BX(@Ad?rXLkid3itoV5Q4%2UaLhp)*KXrR`QUJ_wn?^&z3apCRk z_Pi%zELCV`TnGve%)78(pX-bH#>QbM$ou8i(4*0TQaFZCBO_nfX*F@F?nU0Cl{1~* z_$ORstGtQ@V{|#>vYtmM>2;`is_#IgBxIbUB~n-2$hT3`4J{c%h$Lu9V?cXeFpUyQ1wtReQkA_2fG(A+qVO25~ zt0&PWc7r^;j3LvUd&y3D#wQlAQO7H=zGhngRrd^s$(Rw3<|n6YJEGQI8*x(Qn*&$( z9w-b}kk+iP6CKjrr$`ep`jCNGslD6lJL}B8;@!p@?b}Cl6nJaxhFHinIe`5@KZ$471;jnAsF(S~5h6nF=5U{j-biLeaOsA*{w3TjDWwZZ1WGwsQ@ z5wp$K6_#r;Y2W)ERQZF3PJgrkHsl#jG$$qOr0ug$b3rxo`9)8TSzXkK&l>_`IN*Te zCt2o1CQ!*%?CE&|^7`gpwKeQSL?6ZB z{)EUvrcDJ;Fi(~GY=SpxCcQKid+O3y<%FJMG#U#9L({Wnn1_i;WLx~EmH5=$YNvj2 z0oE|y`IJr?Sc+7RsRTAwYR@Xu(#YHPgC6O=COef}{IrVBi{R@LX>mofzS2a=b4kWW z$ulhw>zosnrdUytqB`O z>{0$*paPC`2w*Qeh?cu4Jb#Q-Mn8Gdw>`*R z-)|tF&)6`l^IVJTRTT2MHL8wrJc~OCmHAp?-@X`%O@uxve(QS_HNJ5Rf$C(XG$+`$ zM9BpLTN5h#2;N3rU3E>mK_j#zU)$Yheyb*sdOV04`gv|r(Sa_q4%X{C@S$hNZ)bPc z+vSA%MCIO1NvC9s#Ox&t4I(`f6(KU}0Crr9hR8-eojPiimgBt(>=!RM4ysa%j+L@H&yojIZtQ%| z$9&3#JT<-^6%SGe73(*tYdXPb2Z?$<*H>3#xndjmiWu0jMqlochKmrBT__Hu33^3> zG}bPQ*RBx&mG0Tq53qg%g~`H20F z%nWxoEm)yu5n(YG(_!XaoG-ca>(`GN`kvQ`%SWv(a;E4a$STR%8^GF&We)&y0Pk_B9mzorME5max42D9`(Q_I-XyK)2vH`eI^%g9BS7thtt2@Lb=n64AU%L;<$$v!;QTRbf{wnPf zw_ICFQJt|th{n@Z|E1fbW>WDl-fgo#Dx-14Jx_d&)xT?JTcT8^3s6m47SkAaQ9_p~ z+s=)M#TzY69?i@8-wqp_3rE&H_;~XJ2R_gNGqOKQu>yJ8wqpYMgila7bs?;!zh=3{ zuAg3M`Sj8A$N0fg$gXB<`MnKXDK9;i6Uzr4pn&b8;l(kO#RBd{lefQ1j!CR{7$J0V zQili`_yl68?qs9%^{80rrtOu42W`I08y+6UC4ZH%@hVH?Cg75W^C`sf=*?9iF-~_a zHj0C|u~nZ4F$X!CGgk`<@efwpu)r_c7~;%WxF0C?lp&WF7ZK!ML08A6poF-%LGPgy zYa%~+Hp-=iRj*f7_Rg^K@58iua7U?85wb6@LkV7q@3>Bzo!5*jpXC(IQYyWu=m<+XG)R`WY#iJRtCgA}aBS@4D1}A6v3GynH5HQG!aHc>iBwCW|xGWm?d!{0WeWzm1+X`~?v|6t}rYKdSP1sK7J1>Ze;%2r9u5 zcQhA?jg8A^&x@KZ>BCu`o3gA(-&XqZyvA(#rTf~E?X^@Cj`2VilaT61_6ixaZ{xoP zmHmbMoIDZF;r7JXRoBo6z`T;uU?4W;w9b`^Wm#$w7vDFVr3L7SiO;l)Srl_me+rKR z9TvYvd3CmRW5zx4+#Bmpejpu9ftWG#lhqwV3v32Bag1+BzXwtXJ+!FkVYKkPT>){r zhQXVetLEzJ@pY5M(=oUy%FLgaTULggquTS2gdapCwS91nzhNq>d zc5Q9Vx%4$|FNWYPA|mpn%K#cUhq)e@rrP5pGiitB2|>ocR*zpgQHS8Xc&?*L+a-+` z^^h-UyB0ONlgM~NOUcArwMIMwbirvdG5v*j{f%K-%C?(C;7HZ6nVCG_Slp8TeqmF; zQ7O&+8y8pfyXkHH3if3*$+X8lC~>+~TU$Gvu)YYzgwYFI3Bs2GX7hD)s7}06_Plg& ztZ5q>x>>vtGU>{V{BmUjB|el)+i&Sl=Z<@}vr>5cb?w5%g`113YV|&wFSdgrEV=3O zFo_3=jXT-!)hiBlB|D{oDF134ctAsu)4o1%_ViCV7N3i2zCaABt=L{x8GHg7K#)O+ z!(Zp+J1)^fjm~-jNz$SGA!VEKl@SjGjBMYyh35xf0k>*7_+niVpCm|=>@%MTw3FVK zIOWSN;v}YA2cB`zxAD)FnBaU@-cr+S`exo+_Y>N5Y!ked<=FFGW?*u^JgP8dpCaw; zI6{}5baA#kzXGvb6NrwyW26NTUyyRclGA-&C8AQQf| zo)P5HsDAFoe2;3NpXm@?w`V@|NkhnHy&D6k;5+8&K?@6M-1A4D5F@XM|De#xMenMh zS9gFKJP`CMSBT%dFVP6y!Om`9=Ab7Q#vZfVvx+{)iP5~ATq!3#@p^9%_+*AcRAI~nE7V-eYROrW=5qmZZpFcUk>Hn84~ zL=>73bSF)~e_6ZeO*n6?v(C#48xoy)Z1Vl*6!b2YVtQr}xv?slc|9@@So=nyPid&u zDFjY?S!Jqi1{ZH@Mu0J^30VL|9xYCUR_B<$PE%%?Fle#ODj8&&o}NDQXJRb4x<79| zM?_^FEA6HGW9U&JtniUAq7T^^UR0X=3RL|8B86IA0RC(9qkRLQmDJ z_o&aN>#DxB=zO!DdX$c?hl!~`#4iA(6t9X~Gd+5yt^HtM`sJ(bmsb1};|@NJ8UB%D z9p-onX6z&zQ}}37dfp~BHcc7+{!Q1ab-L*zVh`u$fW+inm99>dLGlri)`dk~k)&G| zn}0JPC_H&9ju@QD#pm+TxwY4>vnaF9hCXndh`tAJz#T|NCBsCj|%DK-4c86ej4;1l{zZ0BDG$@y+i{rkOC4y1HnFH z^MWaW(d>7A?;HMap;0bIqP2$c`GLaW`>_48{Xp=Q0H$2Hdv>aD;(hl3+x!PwJ|Ws0 z&T)i0D02@CRIN_o_aX?uHVS7_E8Ufr>X++doqY20nWE7gD%`n zU$Rw36R4vM0}qWp2;ZAV023hXOOn3S!u@-$ zzw+ifvi;XST*pWLTBAGsuNAsCj`aW9DHY^A?C*SD?Z++9dr|$t*j1$O&bXK@-gA)D zkZsp|1kwFMf->wzV!?G9^T%&!5_UB<-wh;5zwuZ!*q^^)4M;=@?0zB>Wg<4);r&q- z6iWvQV{`LbECopNti@JEH6BI);~+(Qk`+ZDI$)prGm6P4Q_{6BI^;-jl~L|32`ke= zp5Z|yi3Me`-gO4lhF*%sQPL@Z@Qh$?lk{DGt)idF7xfn`2iigauYd07gDx5RGWj07 zS^(g=C?C`Y+@{W`1v<5-$i;SdG?d7|L091x5(IZ7uVY}&_VJx??sY%I@F)| zoTPcWe}9FHoOd^0I)lfww>{28RcX10@^H*HfHenxd*^T~-4bpG$jsySbVwtJHV9(K@5ZG4uSwK1U#Rff}o{Cl zWntp&k@;N~W50~YKeHGIHe-hc&gY}>_JAZhLGY~z5*P%4TQ?pCSQT)smS=-1gQ0M2 zZU0RQVckEY0{r|bLk=wTKo4KDPQkIuAPSQh=Mo#kB^p99j3M_71E@mYP$BuDh7dCX zuGw_N|4j;OcL3*cPQZyC)Nxk95~9f0WQ{=b=^FIkTH?P=0JdFbf?S{m{~Ru4@R5zf zR4_V)652eWRcjoRPUabcJ_Fa8*YZFXF2CR0mSQo z^&8?KfcpSf=2mJHMHf|9wbmwym0XCvr*xu2r)X_)zF*pj_PQNkinj5-goUQ zsV6dm0-A&A*ufXGeRVXqULF>yK%Hha5 z6CU1hdEB$9753Q7BQ|b|vm+&8B#y@T_=h07Ez;5Dk=S{qeo2Wwd`seu23%{pR?$Uy zOH=<~Sj6^Imi~rgn{{$m3$T9GuIY)kbV|RHLgTCOh_j1>b*sAVdRBMMJ^on^WMv>NhKANmHNIm~0sd7~We*Fj`e8?h@O2jNpb!DU0S3LB^joUQ5uj z9EmpG%SGgx6_wjc4K%;)i)vCdK?c1&^8vls_89l9m`;xx_^?zAW7Yb>30&Sui-F`i z|HVT!Ty5p{$a&%H`eI&n^;|3Ao5ma0x7fA|%|9+)J980~ z0o=gptk9%tk>dKqD3Zx4=e z#yVR>KqsEn$OvD$By)On43){Z_`=k@8Q>~V0Gs(B^)#K@7`>+DHuzSB=3zwsA`^9N zs58t4zViFf(WB2Zvh__mEpd^G|S}YIp?d-9CtBgf_M1TFpaV z4Z|s_iFm-l8PZZ6c5y9Inl6AKb{N819AUSYnQ%{r5oTY+WppSJn_y?MtjgMXs&Z+o z8l22*CgT_96YbjVWWvWwQUW))nem7;r{KRDD@X4V{+>OStx4)K+G)vUSMOtD<0`2_ zWh`qd<$AftU;V1l5?wm6?e!QL*8p|@EI99>D2SX84z9G2yNI7>^T%fO z5p^aG9u=s?>t;;-8r4tR4`xQY#$I) zh8cC5hq`4&d8NSC6)4R7aZu89U|>@Ae2ll0slq};w~rxg-M)KkX8Qex7jNT8D(CEc z&SXzV5(Od%@Fo38H1!MK(^_WS913qn#TA}clh28em+O#1=GpLUcm{(*-nhj`)jVzF zBTnLZmUbDDlAWhJ2}54ZBbTgNW$yL4$P%V_)Qkt`xZDk}!<;1;K0tx5@m%e|0@~lG zw(`)~=PAs^{4-Yb4aoeHVkgCl^_E(`$L`!CvcsJOP8sl}i>Zj?B%NY*W>@X&IK{6V zu;peb1*52W0h5-&f{q&nxh8*r=9D6+gf;lqyVqHGkDQMa^ zs1mu=PVfgv6q{anGV)qZt+20>A3Dq#dt8nGF!$?0z4wU?sUy#2Qkm^uQ!(|3h`xyT zg@Pu^$5(r8K#-rWTq0eD@sZT!qxu~No| z`@#a2Jw-YKQp?*TE>=9;UZe-l77%{Q|EwD$bgC?#U^zGaUMru>Pn}wN@C>%>u!L8) zjS0-deegv9!u8ZEs)P=U(5as}G`8G2Ym%KJ7dW_YAPB&1;Q0eFd}ES1dS@h9)Lr{I zOt&R0qYp_j76l6^^Z=QCE-LCPB3KV{{XSbq3O68fXXO@4*aa%SPo<9;pG2?6?tO;EzQO7I51W5aD@jcTKEojidbZo-+H-4X6FD4JYCsdn2MhcB8s~ z>_-3V3(Lyvx_OJ>pA$>(N-B9sl@oOc!<7xAOd^}I){2TBDl3QbR-5m|c`2qyrqLyr z!1fPXS;a7(1ACayln|=B{XaeeSP};c7ZX4k@))qU7a%AI*cXYS1rTT6y(|DOMfkwB zhXKVHa`)1J_)i;u`?9oGW#D}fKO9LB9jS;hQ+nZx3fFh!%X>YuyWxHM?oddbo*yb*5;hR1G$z||_-KKC8^F4yQT3fu0&JE>@Z_T#4 zk2(S;*P4yJ2ARe7FT2iDgu%` z^!eFm98gt?_h+jl;L+?%e?noz#jzypTBLi_#iInU3V)EF) zlP2c!>BJ1o@@Yf8J0F=CXhZ_Q0i2s4fUg0K8wDf+$0$nwSs)wXsk<0u;7%I<8@*`4 z2p_pUjG%Q2cIYDs`E)8I!#+?f2G~1<*bgir&kp?o1Wb2ffO|kA7La?y9RF^W4yw9s z=Ncu)LLA6M3Wj998F4FRFG(jqW_QGql>Bk%O7ut~Nb^w>iWwH78N%?_Bts;+LqA>g zi3zoX^Fkk<4Pgrh^@W!0%YZ~LAfU@QAn_?E7SN2cJO~ff_z(z}djp(th{+4z#n_3- zKZ5ko0}+A1DFy=g9MEJZ0{AT@T{;j;l}Jg43ta_920n21^4|*CWI7=@hbs79LGLtD{wCzqdB-c6D?RyBiqY@#)iklfJ9X?r_JYYeK@U zU3wZHnGe74jf2ZRJRvv$6{$ig!+k#-lGi=$OuTiXU)%?+S|6Wc95Lizp4-2-$=h2;5%(H zQlyLB|8PEcv^p(zwgCA3!TI$~>rh510a?yPdw8-Adv*hHp6hR4pJBwtlYJr<%3M|4 zY()GDc$jhbxOqI*C~+DY9yXTPOF6@5wQHe|W;(-Isdr1;kFT<8%DNF*ySTWB`37tK zSYl;mH5EG>F(`6;q?I!x5jvL|`dAAAxDI@{X{c*@6oP5$UYYA&p8^ zGMZfIVa6G-<5~UA#`VapLAeLnpZIgm%>p?P+zq`W^ODZ&CNs+muds-Dc+dhyl~a<_ zFz_n)H2a~=2qO+6;su|80#SZ~R}CT((ylMxi;X6qwZp9N&Wfrk=ZbaaIww9kK?d`0 z4I4czQpBW~#<4nHuE+&grOA+L>mT;Fuiq-;6zOevQeL4HgaxrRv6?0*<79o-w@=>v zY8B~Q{R0RN@wj`bqO5Qshun(5Bmd~Fe+R`5Qejk%MpklqY!(>#1 zyyxp{P^!Qo_Iq|@ciY35scl?HRaJwPAO;;SwfWjYL6Gd~R+i*=w2s=fSLuP~&>N7c z#USoL^eIB6haAKExEEYPMmDEsi+LJWkAOz-TxrrKqqyn)X~fag&No^cHM-LCRW;We_cMb74o z*M#fd?0Jdj$vN^4!Tv<+y=$ysWNcC^Cyo-sfPT({;k-l$_LF(~Ou&lL^o6~8yc(yH zVnem|tQeLU{Og}Dv<9hN)~2j z-t_WZ0t9$Q=KR@ppOdHgKV_6e*(r6CU9=j{h7;X-)hs+cfy47L9JDxbDZD8=obvR2 z&}|h$Z&$^=Z1VilMx=apixl)3%|z+-fZ|Bt{p+v26p!VL&Q}L^=feqkk1}-sVlumQ zijX%LW`HM-((TrD_fnzx-dvB-lSawa=F#o5uo3Yw=2qX{Mm~(=g;`EVWcn5W(Fc8^!}B4!;F0L+t^qc z$^B@Krq^6LXK<*js|2%OlpB;*bhkF2(}b2Gn+Azu4Bx$D!X-6H``2b6>C!e>M-RpP`-QV5ZNK20neNSzWm}JCJ6J*>O&5Kp; z0lbkvhl*mr!Le^o`q$>=Ju68#V4YpY+*U8tTu+Wou`roOyW6SPH4w3J0`*1UC zynth+)cf8@wokh{&*fQxI953@OW0~xILP(Jby)U*X=$?zSoD~fW9%QK#>A*!NRW`) z&X!swm5((Mz6P8KH~*Mj`MoGzK2-5?T~jZZ9bk7_j#l>?cUNPwpj%XghRexzCn*_o z#U|t1WWIDqWz9NH#r-6Mxglb3nk(3Hbt7@3rJ{mpmrj`ptu-;}PDY8F{kuJ3Q9zW^ z!(1KoXy?~VWKL$LHOrHL>Gup;*%cC!r=qRs9``$ZH(x2D|n7@C`j)3dA@!v!Q1XMzRXf9wyy9Xy~ z4uFBuUy}j=CjN&;u#l`gT04?Ybf8>FlgX)&H~&^&f8n`@jv3)<6z^ zD4YFl(MUb^q~I*(M{P7XgMZ&Qh5ywnPGZ3wuYqhBNJg9)1MDOSi3DZHBq5_$mCqib zp_znvmK>=S?+i9A*;xk?SEohyo}femuf_a$P%mo8IVSL8U@_uFDszh?qgKT-v4V!_ z<_GuPI(dHu_J9*CpysTdaAX_EefML<(0}F!ERyF>*RxK47wUFMWqIDlgkM-a#BOQ<)Yp@G<8V@lS zWCV=ze?@|@U&2U>nB#v0kYETJZ#mYPEu|IB3>Ns;=Ei~p5+(lqER6^_OZ$ut{380F zm>lg-hVUyRn*i3qUv;64s{6SC{$HH5?E{C)cFdhUh#TIHSIEIa8jyGq;NiUfrAfLH zd0n;>fgPuxSfcMlMOn}|94j>(?CXC>R=WSQ;B^3YZ*SdcL`wci-om>qfB(UG3;*?( zz5YsE_$yT*F9#dXUosVrhyl0lqQFrBm%ZZp*al+lz>&0zLrOu^%t0vVRR4C5K71#e z-`8!3Q34Hb)#yvW0Z^FTvqoAAG*Hk=O>+l40yG{;vTG z=r3$(Y;@NRY@;M@T%$ibrQF|WeURP~VUGgu8vfW6_fQ5N3h*s*=~XyvXFHZVYYKZEz`q0ag5@d7`Gn%fcnsIxQt+i(^4WO#l@ z-TGT2iH+5A2Eh!6gUn@;r&)hjU+S>1`GT8%dCOGMry2A7$0)7Ea9IfaerTecAlZ+& zX}LkTPvKD*{jeTWW!}e^@mq;(5^!91+n-I{M{OI3b51-z9z61GZkseqZvRd{V4NB; zPv^U0z#GoR?vvWbN5&g|y!4IUg8a1K*v1Y2YeKg-hbAd`@Zp-n0>*fVOonyc2cB@} zrQyeNirxLDLcGpjBW5f)w2*C!%9q?G9IE4fW!mhMFkD{FuRVA%^Grl|mbw5eec$OYlE1Z9 zIDDGRaDij-MulUM@dX{kO1azcsIs5* z_{U*u`50z2)*QkEXJ0*Ff_=@11=SC_U~&&V1-|6rhjL2t(sMf5fk`FNG*)5IA{bjn$16-7gi}t!8e%O3*_btV>Q3 z&Jw-T*O<%nBICZ5r|RPi!Fn!7>f)!8Um?dhZ@*W{*sV+GzJYmP58r>P17j*ojX!IHVh&ojQ4TDY2v&PAhzDbIWo zA2J%;llSALz`>zemyyiuyg4qD{tyj;{3OQs_JY_Xs@rrl@f@7=jWk1~I&lR|!e#Cy zPxnLmdoeu{5*|k(S4Ai(* zx}nD2GIFy;6DqSYF#I%>x?_Im2CR1}tjL#{O{JZ~je0c^w{x9VuU#qf5sXWS8prA> z{qlVuUbcHaKKvQzeTEO0svsO!_J+&j8w($NL~i|P?fn-w&eBna7S*2^Bl_?@I+&^% zT=4O}*xJ0R(7zSDKA7n}rw|dBhIm~9WKLW3Loi_-HcHGbULH3$4XnjJV+$=ehld`= z`!Ov&c2<-F~8xnpKz4-?pW9DXpMY7g<@*Rx9_YigDJbNGq7NbpT9*!$ZSYEqb|aL zsz|{#)bOmXjcIFf`G?bG<1u4GubG}!t-3wilEzb$<2?|*2#=Fgs(_o5+b(U<{^)7v z%c5_(T_rJHTf0<`eQX!s@VlIyEksWg^~N5bVBec$VpCtdYk3307vgaei@W^(3g#hv zUX792B<_gXB&uC-659H`&L2I0GEix0oA0(UBB1lW3CUdvHv}j#LeC%7$bqe4bR1T& zM{uFb5qw7+)~=F3kRHU;QO;hxTq@csCVoX2&-e}fbJgoml&DnFL{{TaC0K#`Qm)$? zsx=|8++-uC#tw+8)DixO&jq%sw)|Q;<~>w}2;#Nnbd zX2L>3;&7lFqEm?SmoonYVj7VZRoQgc`vr(y)a)$%okG<3udNLQyPAE|ffm>`9Sf~i z{$-E|IY)`mZDz$a}q>o4f`3fr+; zZT-vqyi&{@@&~Szq#pjwaNBenZ-YusIl{k=l-A@wB4#G!OVrx@lXS2t3GLE#Bk-tvs7VlufIE3JUNg8#EcjSDc&?{c`t*?3sU0b0qMf2O?4uH` zQ~UJCc7Bct`czd-QdLb0)ycU=YbVxd_~xo3+hXk7?I573bBLD)@(o2Q+N(gcZS>3J zShN`ug7JhYAE^k%yH*C~m$cT5g_w+mtQFVEDg@(51mkh%K5uJ(Hu&mgFqU!GjmNwB zpkRY5DUqby_6Hg5{D)V^XHpOCanvRUa!aH7&VvW)X{!N3S2i8^4Toa!gbmd+X;d|N z(ppGc$Xr62^Gl_3OKr)DjwJ3WDY9`7KPdxxB--Rqq$v#3w354H(wVyD6GwYKB&+%- zI}|6I1!yx=1mnS5KEy1Uijz0FrC8Qc;S(w5?va`$xH=i_C;OYbS3UzMLcBw>=pI-A zhcgZR=j^`v#t5e%tf)IQlLJo%x9SIuFw|?H>ba$Qo^I+3m@Cd^?`Tp>xpPbBrgaO| zM@HiEsGMaA?-)CISwZg8thrnJIy*>SJ-A9dcvtzNx!}QsD0{JvF@O&%uT+qgbgp-W zaxlDkmyy}M@x`Ev48M_$vXQ`#7e?pR`K75Zj089tcJ!UiG&b*4u&b;$d7D+jSct=D z9jdCCmJqqO=CI>F@FS0T$7h2{gmn&g=3~3dV|{Hn=~Y3ep7gzbz2g-eM??!pdc?n zFdj43zIFQQn$>|YzcfVE$oX-m%4_+#2gS^UF3SPe$t1FfQckj1o*DT0rTq9q41D>e zf%3W~B@}z3y3}`dC(*M?Uw0@H?DyVo$l;{ETPabw#c0u;)aW+wC6)jH9r}-hgWI>7 zF4N9#N`tBSX+xWo(bO~_zWM&1Ol=ap8h$7QyK(wm(Bj_F9Decl?<2uuIumr$?f7@q zPsADe2wgIrY(77c&wwcQ7_q(=Cr}RsaLN#z#ODc=V^#$-+!47G{35Z=h#q~S>+db) z@m;FzY>NNZGC+6oyt=BVn(cSjf1?SV(6*agA z!f2(y$z^$pgZ>wFFvcAdOn#BGt32#q;yqKEDjc>n-zdZU1;}mRx|3IKyYx_bZv3bb17MV*s!QZ5q@a#x2vFdAy{<5STG*7j! z1+G}XbhDJyuCH-;VdL`~t)$UDn)|7+z%R5A)*bJM`>v}YzcjTJ{P5*UYy9Z1<{4-O zcP9D?t)ad3n6H$U>vyweBbl$f<@6lCzN4`0C=-Qp)BZ+N7W}Yad9t|i7aFR{(m(~W z*?7WVYCs@#sSWKQjTQezbZ$E%t?G&SZ$*j)$MHY5QAGKr5o5FhHRYL9>|c$4jX_l- zsZmmuxpd6mIA=>=->&+b{_4`Gs+40bC8-DD7ZO5rfw88%49VZcS)~=7DXG2pe;1<( z%r$JbJ^Dw!1zNv8sbjx<mhDH+`&u+o^Qd~`5aQfsjwYCE5kH-ILMawgx z@g@(wZ+T%w@eBK3Qk@~FCnE_p4^K_LuN_VJ+f`lqSnL%_$d^v;bT{y@?(<;VW45)o zmKb~~%nZ;8xEG*?!;Aqcd}C$`}y* zZ(el^{e<4rIhRq5SlZ|;{j(HXKc=Q+1z|&{4%-*MHbbx*kp~{(e*0r{t~|m+1tOqy4oL3cy)T~%bRvmBtX%Ujuf!=!G$$_R)2e9X*=f_ zHs^A-zAbZEH9nKmQd2d~-&or)esH})F*DiZ;o@B+VwZM1M<`c{r(5b+lcA-KP1fyu z(Q<7kycVt{Oc`tSZGF8OC5857ZWtA9#+0O&tYu=}`=Uo&VxF;>J@lm*3Z98a3``2v zZ)i!>q;(XC#uGe9thZw zlH6LHU}@YqJd?UCUk_gRkPsP-0(vp{>F9cisMGC6t<=u z7B6f>q@!JoJYHa@XVU6n79d;Dhe}H^g_q{tcV$Z6ER~X7y5NKu5KJ%BtnvOhTyH0E zrY~*eN0moLUsQh;Y&CNC0d6vRbT87V>wD?_m;psE`m_M4QkW@}+=i62a`crzx_d{&O zvU!8MsP7mjl0?u8O7IM}IAuy~u=W51^t8DY99NF9GZYuF~x?j$5_PYZy2vZJ@H5Bj52RYL%M^FgU z3cWOY*JZ6V4s!d_VuhQuuA`GWbDDB9@tNk`|IE>^-B~G z5R5Z=_Umn4e&CjWp_cdAhYPh|pP?f1gHL$Bi1YJ@Y3Uxf=FfJc*JU22kR!d^b_)%r z*BdZn%-@`od)~gs$55lL-NOE$>2XFhax&?o@%PWrPacI^L>4^OIKZ)-D(K$xGEH=u z-`%9Gh66O)Wn0EX+q+QisW^N%0kq<(DdR!yuds^ zQ&1S%B3%kI`F5$s;qzX#TKa3N|uVEi~szG(rPeEyA3hKfeUb! zDn)^7tEbjP@H5oIVZJX~T8u(?k5W?uAsh}=$P^$2hcZskMh%Cs{pNpK^+krsmZ`eH z5ynj3Hy!aYSbd7$A|FB?ni}zmQ)@<1y2Rj?Kex|{H$;91itHi%;0Qhx3E9`tN7}KH&fMxm0mEwb}W&b@sBKUmE+>b+J`%PF-}1k%`|#Ea4IW3%|W``AM<+t@b^UCVi|lMIubT!DvO5c8+K9Yw;N zhXH1zyK_Cul`^G$^;H5|A5Ku>jaqhr61@Pk$^Jc4hiQ7v?Ca@NX2nZ{-pcfb*iHsY z%`UxtpoX7elIvX)+yJxrHK67jl=%A=IfOY8h79&j2VZ>0q!4-oH0;uu1?Luzwp}qx z9P9uRD}7>95f=*|E59$ZK!F>u`w^G+&Sx}>bEv}qrCaE0Uskc&}d5)-|R>K z&}ml;befQ0oQ`&gkrA|%%~+Ed%p5^XDE*%fetZAU&Eg1t{OX^$S^Uk*0*zJqwVjEI znG>ZBtFojtC9A5Ln-eALGaDldGx1;lOZ@u(nI0Oew4JRJrJx}2z;43L&cz4jF)?Q6 z-~b!*aB!HIa+wZZHd78GFeUhps~+#}e$-SlwlXvMqsM0eW^NunQ*I+LC!Z-B z7Y7%&Ih%=*sSy_^hY=^3hs~Icj~&2ZM#&ETqswQUreH8P2cMCtDJPo|7q1bR%gB_S zjhEBJ%!HSRo14?r%!r2_%xgl)es^Ey3$(i~|8(&sz$X9!{+ijE-Z`bPbNy9rrp_j2 zuPGnj+`>u2DZ@zupOkQ5I2Je_1^~@#Gb1NUJ6lO3Co{^&lKkv!?3`=>m0&(jJ}@^> zLBY=Se^vIU9=ZS2;~y7!N*FmAS=(6viUU;SNcoFZMI#&F%bjARY>drJP0dWDEvgV|45$Mw%q*HP`Xx@NG~`>P|C+~v6})kAZr{>yrw Zr^RmrvW?NFj%(e#B}|muFkBxu_XB|P@xA~6 diff --git a/e2etests-cli/testdata/TestCLI_E2E/no-nav-pdf.exp.pdf b/e2etests-cli/testdata/TestCLI_E2E/no-nav-pdf.exp.pdf index 73d6e3754de3b03f34ccfa42dc02e1106a3ad970..59fd3431a7928b5061ef72dfea699e06d5968444 100644 GIT binary patch literal 91400 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 delta 92527 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 z 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

9thyQpXjAS<9X{v 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 diff --git a/e2etests-cli/testdata/TestCLI_E2E/renamed-board.exp.pdf b/e2etests-cli/testdata/TestCLI_E2E/renamed-board.exp.pdf index 581e72d2a77bca16b0b2e4c6277e2d32a38184d9..9ab29298bab4bb4d7c9b25143547e5226d8ae2fc 100644 GIT binary patch literal 107020 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 literal 109975 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 Date: Sun, 24 Nov 2024 10:45:06 -0800 Subject: [PATCH 14/17] apply to edges --- d2ast/d2ast.go | 16 +- d2compiler/compile.go | 65 ++-- d2ir/compile.go | 40 +-- d2ir/d2ir.go | 130 ++++---- d2ir/merge.go | 4 +- .../sql-table-reserved/dagre/board.exp.json | 305 ++++++++++++++++++ .../sql-table-reserved/dagre/sketch.exp.svg | 102 ++++++ .../sql-table-reserved/elk/board.exp.json | 300 +++++++++++++++++ .../sql-table-reserved/elk/sketch.exp.svg | 102 ++++++ e2etests/txtar.txt | 14 + 10 files changed, 957 insertions(+), 121 deletions(-) create mode 100644 e2etests/testdata/txtar/sql-table-reserved/dagre/board.exp.json create mode 100644 e2etests/testdata/txtar/sql-table-reserved/dagre/sketch.exp.svg create mode 100644 e2etests/testdata/txtar/sql-table-reserved/elk/board.exp.json create mode 100644 e2etests/testdata/txtar/sql-table-reserved/elk/sketch.exp.svg diff --git a/d2ast/d2ast.go b/d2ast/d2ast.go index 446a8975b..464faf196 100644 --- a/d2ast/d2ast.go +++ b/d2ast/d2ast.go @@ -1065,9 +1065,17 @@ func MakeKeyPath(a []string) *KeyPath { return kp } -func (kp *KeyPath) IDA() (ida []string) { +func MakeKeyPathString(a []String) *KeyPath { + kp := &KeyPath{} + for _, el := range a { + kp.Path = append(kp.Path, MakeValueBox(RawString(el.ScalarString(), true)).StringBox()) + } + return kp +} + +func (kp *KeyPath) IDA() (ida []String) { for _, el := range kp.Path { - ida = append(ida, el.Unbox().ScalarString()) + ida = append(ida, el.Unbox()) } return ida } @@ -1578,9 +1586,9 @@ func (s *Substitution) IDA() (ida []string) { return ida } -func (i *Import) IDA() (ida []string) { +func (i *Import) IDA() (ida []String) { for _, el := range i.Path[1:] { - ida = append(ida, el.Unbox().ScalarString()) + ida = append(ida, el.Unbox()) } return ida } diff --git a/d2compiler/compile.go b/d2compiler/compile.go index c7573e21e..221bb9d67 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -110,7 +110,7 @@ func (c *compiler) compileBoard(g *d2graph.Graph, ir *d2ir.Map) *d2graph.Graph { } func (c *compiler) compileBoardsField(g *d2graph.Graph, ir *d2ir.Map, fieldName string) { - boards := ir.GetField(fieldName) + boards := ir.GetField(d2ast.FlatUnquotedString(fieldName)) if boards.Map() == nil { return } @@ -224,7 +224,7 @@ func (c *compiler) errorf(n d2ast.Node, f string, v ...interface{}) { } func (c *compiler) compileMap(obj *d2graph.Object, m *d2ir.Map) { - class := m.GetField("class") + class := m.GetField(d2ast.FlatUnquotedString("class")) if class != nil { var classNames []string if class.Primary() != nil { @@ -265,7 +265,7 @@ func (c *compiler) compileMap(obj *d2graph.Object, m *d2ir.Map) { } } } - shape := m.GetField("shape") + shape := m.GetField(d2ast.FlatUnquotedString("shape")) if shape != nil { if shape.Composite != nil { c.errorf(shape.LastPrimaryKey(), "reserved field shape does not accept composite") @@ -388,7 +388,7 @@ func (c *compiler) compileField(obj *d2graph.Object, f *d2ir.Field) { IsVar: d2ir.IsVar(fr.Context_.ScopeMap), } if fr.Context_.ScopeMap != nil && !d2ir.IsVar(fr.Context_.ScopeMap) { - scopeObjIDA := d2graphIDA(d2ir.BoardIDA(fr.Context_.ScopeMap)) + scopeObjIDA := d2ir.BoardIDA(fr.Context_.ScopeMap) r.ScopeObj = obj.Graph.Root.EnsureChild(scopeObjIDA) } obj.References = append(obj.References, r) @@ -766,7 +766,7 @@ func compileStyleFieldInit(attrs *d2graph.Attributes, f *d2ir.Field) { } func (c *compiler) compileEdge(obj *d2graph.Object, e *d2ir.Edge) { - edge, err := obj.Connect(d2graphIDA(e.ID.SrcPath), d2graphIDA(e.ID.DstPath), e.ID.SrcArrow, e.ID.DstArrow, "") + edge, err := obj.Connect(e.ID.SrcPath, e.ID.DstPath, e.ID.SrcArrow, e.ID.DstArrow, "") if err != nil { c.errorf(e.References[0].AST(), err.Error()) return @@ -790,7 +790,7 @@ func (c *compiler) compileEdge(obj *d2graph.Object, e *d2ir.Edge) { ScopeObj: obj, } if er.Context_.ScopeMap != nil && !d2ir.IsVar(er.Context_.ScopeMap) { - scopeObjIDA := d2graphIDA(d2ir.BoardIDA(er.Context_.ScopeMap)) + scopeObjIDA := d2ir.BoardIDA(er.Context_.ScopeMap) r.ScopeObj = edge.Src.Graph.Root.EnsureChild(scopeObjIDA) } edge.References = append(edge.References, r) @@ -798,7 +798,7 @@ func (c *compiler) compileEdge(obj *d2graph.Object, e *d2ir.Edge) { } func (c *compiler) compileEdgeMap(edge *d2graph.Edge, m *d2ir.Map) { - class := m.GetField("class") + class := m.GetField(d2ast.FlatUnquotedString("class")) if class != nil { var classNames []string if class.Primary() != nil { @@ -1230,7 +1230,11 @@ func (c *compiler) validateBoardLinks(g *d2graph.Graph) { continue } - if slices.Equal(linkKey.IDA(), obj.Graph.IDA()) { + formattedIDA := []string{} + for _, id := range linkKey.IDA() { + formattedIDA = append(formattedIDA, id.ScalarString()) + } + if slices.Equal(formattedIDA, obj.Graph.IDA()) { obj.Link = nil continue } @@ -1246,34 +1250,34 @@ func (c *compiler) validateBoardLinks(g *d2graph.Graph) { } } -func hasBoard(root *d2graph.Graph, ida []string) bool { +func hasBoard(root *d2graph.Graph, ida []d2ast.String) bool { if len(ida) == 0 { return true } - if ida[0] == "root" { + if ida[0].ScalarString() == "root" && ida[0].IsUnquoted() { return hasBoard(root, ida[1:]) } id := ida[0] if len(ida) == 1 { - return root.Name == id + return root.Name == id.ScalarString() } nextID := ida[1] - switch id { + switch id.ScalarString() { case "layers": for _, b := range root.Layers { - if b.Name == nextID { + if b.Name == nextID.ScalarString() { return hasBoard(b, ida[2:]) } } case "scenarios": for _, b := range root.Scenarios { - if b.Name == nextID { + if b.Name == nextID.ScalarString() { return hasBoard(b, ida[2:]) } } case "steps": for _, b := range root.Steps { - if b.Name == nextID { + if b.Name == nextID.ScalarString() { return hasBoard(b, ida[2:]) } } @@ -1288,13 +1292,6 @@ func init() { } } -func d2graphIDA(irIDA []string) (ida []d2ast.String) { - for _, el := range irIDA { - ida = append(ida, d2ast.RawString(el, true)) - } - return ida -} - // Unused for now until shape: edge_group func (c *compiler) preprocessSeqDiagrams(m *d2ir.Map) { for _, f := range m.Fields { @@ -1350,8 +1347,8 @@ func (c *compiler) preprocessEdgeGroup(seqDiagram, m *d2ir.Map) { f := srcParent.GetField(el) if !isEdgeGroup(f) { for j := 0; j < i+1; j++ { - e.ID.SrcPath = append([]string{"_"}, e.ID.SrcPath...) - e.ID.DstPath = append([]string{"_"}, e.ID.DstPath...) + e.ID.SrcPath = append([]d2ast.String{d2ast.FlatUnquotedString("_")}, e.ID.SrcPath...) + e.ID.DstPath = append([]d2ast.String{d2ast.FlatUnquotedString("_")}, e.ID.DstPath...) } break } @@ -1361,7 +1358,7 @@ func (c *compiler) preprocessEdgeGroup(seqDiagram, m *d2ir.Map) { } func hoistActor(seqDiagram *d2ir.Map, f *d2ir.Field) { - f2 := seqDiagram.GetField(f.Name.ScalarString()) + f2 := seqDiagram.GetField(f.Name) if f2 == nil { seqDiagram.Fields = append(seqDiagram.Fields, f.Copy(seqDiagram).(*d2ir.Field)) } else { @@ -1420,7 +1417,7 @@ func parentSeqDiagram(n d2ir.Node) *d2ir.Map { } func compileConfig(ir *d2ir.Map) (*d2target.Config, error) { - f := ir.GetField("vars", "d2-config") + f := ir.GetField(d2ast.FlatUnquotedString("vars"), d2ast.FlatUnquotedString("d2-config")) if f == nil || f.Map() == nil { return nil, nil } @@ -1429,36 +1426,36 @@ func compileConfig(ir *d2ir.Map) (*d2target.Config, error) { config := &d2target.Config{} - f = configMap.GetField("sketch") + f = configMap.GetField(d2ast.FlatUnquotedString("sketch")) if f != nil { val, _ := strconv.ParseBool(f.Primary().Value.ScalarString()) config.Sketch = &val } - f = configMap.GetField("theme-id") + f = configMap.GetField(d2ast.FlatUnquotedString("theme-id")) if f != nil { val, _ := strconv.Atoi(f.Primary().Value.ScalarString()) config.ThemeID = go2.Pointer(int64(val)) } - f = configMap.GetField("dark-theme-id") + f = configMap.GetField(d2ast.FlatUnquotedString("dark-theme-id")) if f != nil { val, _ := strconv.Atoi(f.Primary().Value.ScalarString()) config.DarkThemeID = go2.Pointer(int64(val)) } - f = configMap.GetField("pad") + f = configMap.GetField(d2ast.FlatUnquotedString("pad")) if f != nil { val, _ := strconv.Atoi(f.Primary().Value.ScalarString()) config.Pad = go2.Pointer(int64(val)) } - f = configMap.GetField("layout-engine") + f = configMap.GetField(d2ast.FlatUnquotedString("layout-engine")) if f != nil { config.LayoutEngine = go2.Pointer(f.Primary().Value.ScalarString()) } - f = configMap.GetField("theme-overrides") + f = configMap.GetField(d2ast.FlatUnquotedString("theme-overrides")) if f != nil { overrides, err := compileThemeOverrides(f.Map()) if err != nil { @@ -1466,7 +1463,7 @@ func compileConfig(ir *d2ir.Map) (*d2target.Config, error) { } config.ThemeOverrides = overrides } - f = configMap.GetField("dark-theme-overrides") + f = configMap.GetField(d2ast.FlatUnquotedString("dark-theme-overrides")) if f != nil { overrides, err := compileThemeOverrides(f.Map()) if err != nil { @@ -1474,7 +1471,7 @@ func compileConfig(ir *d2ir.Map) (*d2target.Config, error) { } config.DarkThemeOverrides = overrides } - f = configMap.GetField("data") + f = configMap.GetField(d2ast.FlatUnquotedString("data")) if f != nil && f.Map() != nil { config.Data = make(map[string]interface{}) for _, f := range f.Map().Fields { diff --git a/d2ir/compile.go b/d2ir/compile.go index 07e882a15..a112a99e3 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -88,12 +88,12 @@ func Compile(ast *d2ast.Map, opts *CompileOptions) (*Map, []string, error) { } func (c *compiler) overlayClasses(m *Map) { - classes := m.GetField("classes") + classes := m.GetField(d2ast.FlatUnquotedString("classes")) if classes == nil || classes.Map() == nil { return } - layersField := m.GetField("layers") + layersField := m.GetField(d2ast.FlatUnquotedString("layers")) if layersField == nil { return } @@ -108,7 +108,7 @@ func (c *compiler) overlayClasses(m *Map) { continue } l := lf.Map() - lClasses := l.GetField("classes") + lClasses := l.GetField(d2ast.FlatUnquotedString("classes")) if lClasses == nil { lClasses = classes.Copy(l).(*Field) @@ -153,7 +153,7 @@ func (c *compiler) compileSubstitutions(m *Map, varsStack []*Map) { } else if f.Map() != nil { if f.Name != nil && f.Name.ScalarString() == "vars" && f.Name.IsUnquoted() { c.compileSubstitutions(f.Map(), varsStack) - c.validateConfigs(f.Map().GetField("d2-config")) + c.validateConfigs(f.Map().GetField(d2ast.FlatUnquotedString("d2-config"))) } else { c.compileSubstitutions(f.Map(), varsStack) } @@ -381,7 +381,7 @@ func (c *compiler) resolveSubstitution(vars *Map, node Node, substitution *d2ast parent := ParentField(node) for i, p := range substitution.Path { - f := vars.GetField(p.Unbox().ScalarString()) + f := vars.GetField(p.Unbox()) if f == nil { return nil } @@ -445,7 +445,7 @@ func (g *globContext) copyApplied(from *globContext) { func (g *globContext) prefixed(dst *Map) *globContext { g2 := g.copy() - prefix := d2ast.MakeKeyPath(RelIDA(g2.refctx.ScopeMap, dst)) + prefix := d2ast.MakeKeyPathString(RelIDA(g2.refctx.ScopeMap, dst)) g2.refctx.Key = g2.refctx.Key.Copy() if g2.refctx.Key.Key != nil { prefix.Path = append(prefix.Path, g2.refctx.Key.Key.Path...) @@ -483,9 +483,9 @@ func (c *compiler) ampersandFilterMap(dst *Map, ast, scopeAST *d2ast.Map) bool { } var ks string if gctx.refctx.Key.HasMultiGlob() { - ks = d2format.Format(d2ast.MakeKeyPath(IDA(dst))) + ks = d2format.Format(d2ast.MakeKeyPathString(IDA(dst))) } else { - ks = d2format.Format(d2ast.MakeKeyPath(BoardIDA(dst))) + ks = d2format.Format(d2ast.MakeKeyPathString(BoardIDA(dst))) } delete(gctx.appliedFields, ks) delete(gctx.appliedEdges, ks) @@ -992,11 +992,11 @@ func (c *compiler) extendLinks(m *Map, importF *Field, importDir string) { } for _, id := range linkIDA[1:] { - if id == "_" { + if id.ScalarString() == "_" && id.IsUnquoted() { if len(linkIDA) < 2 || len(importIDA) < 2 { break } - linkIDA = append([]string{linkIDA[0]}, linkIDA[2:]...) + linkIDA = append([]d2ast.String{linkIDA[0]}, linkIDA[2:]...) importIDA = importIDA[:len(importIDA)-2] } else { break @@ -1004,7 +1004,7 @@ func (c *compiler) extendLinks(m *Map, importF *Field, importDir string) { } extendedIDA := append(importIDA, linkIDA[1:]...) - kp := d2ast.MakeKeyPath(extendedIDA) + kp := d2ast.MakeKeyPathString(extendedIDA) s := d2format.Format(kp) f.Primary_.Value = d2ast.MakeValueBox(d2ast.FlatUnquotedString(s)).ScalarBox().Unbox() } @@ -1046,30 +1046,34 @@ func (c *compiler) compileLink(f *Field, refctx *RefContext) { return } - if linkIDA[0] == "root" { + if linkIDA[0].ScalarString() == "root" && linkIDA[0].IsUnquoted() { c.errorf(refctx.Key.Key, "cannot refer to root in link") return } + if !linkIDA[0].IsUnquoted() { + return + } + // If it doesn't start with one of these reserved words, the link is definitely not a board link. - if !strings.EqualFold(linkIDA[0], "layers") && !strings.EqualFold(linkIDA[0], "scenarios") && !strings.EqualFold(linkIDA[0], "steps") && linkIDA[0] != "_" { + if !strings.EqualFold(linkIDA[0].ScalarString(), "layers") && !strings.EqualFold(linkIDA[0].ScalarString(), "scenarios") && !strings.EqualFold(linkIDA[0].ScalarString(), "steps") && linkIDA[0].ScalarString() != "_" { return } // Chop off the non-board portion of the scope, like if this is being defined on a nested object (e.g. `x.y.z`) for i := len(scopeIDA) - 1; i > 0; i-- { - if strings.EqualFold(scopeIDA[i-1], "layers") || strings.EqualFold(scopeIDA[i-1], "scenarios") || strings.EqualFold(scopeIDA[i-1], "steps") { + if scopeIDA[i-1].IsUnquoted() && (strings.EqualFold(scopeIDA[i-1].ScalarString(), "layers") || strings.EqualFold(scopeIDA[i-1].ScalarString(), "scenarios") || strings.EqualFold(scopeIDA[i-1].ScalarString(), "steps")) { scopeIDA = scopeIDA[:i+1] break } - if scopeIDA[i-1] == "root" { + if scopeIDA[i-1].ScalarString() == "root" && scopeIDA[i-1].IsUnquoted() { scopeIDA = scopeIDA[:i] break } } // Resolve underscores - for len(linkIDA) > 0 && linkIDA[0] == "_" { + for len(linkIDA) > 0 && linkIDA[0].ScalarString() == "_" && linkIDA[0].IsUnquoted() { if len(scopeIDA) < 2 { // Leave the underscore. It will fail in compiler as a standalone board, // but if imported, will get further resolved in extendLinks @@ -1080,12 +1084,12 @@ func (c *compiler) compileLink(f *Field, refctx *RefContext) { linkIDA = linkIDA[1:] } if len(scopeIDA) == 0 { - scopeIDA = []string{"root"} + scopeIDA = []d2ast.String{d2ast.FlatUnquotedString("root")} } // Create the absolute path by appending scope path with value specified scopeIDA = append(scopeIDA, linkIDA...) - kp := d2ast.MakeKeyPath(scopeIDA) + kp := d2ast.MakeKeyPathString(scopeIDA) f.Primary_.Value = d2ast.FlatUnquotedString(d2format.Format(kp)) } diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 690b5acb7..9400761ee 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -377,11 +377,11 @@ func (f *Field) LastRef() Reference { } type EdgeID struct { - SrcPath []string `json:"src_path"` - SrcArrow bool `json:"src_arrow"` + SrcPath []d2ast.String `json:"src_path"` + SrcArrow bool `json:"src_arrow"` - DstPath []string `json:"dst_path"` - DstArrow bool `json:"dst_arrow"` + DstPath []d2ast.String `json:"dst_path"` + DstArrow bool `json:"dst_arrow"` // If nil, then any EdgeID with equal src/dst/arrows matches. Index *int `json:"index"` @@ -409,8 +409,8 @@ func (eid *EdgeID) Copy() *EdgeID { tmp := *eid eid = &tmp - eid.SrcPath = append([]string(nil), eid.SrcPath...) - eid.DstPath = append([]string(nil), eid.DstPath...) + eid.SrcPath = append([]d2ast.String(nil), eid.SrcPath...) + eid.DstPath = append([]d2ast.String(nil), eid.DstPath...) return eid } @@ -428,7 +428,7 @@ func (eid *EdgeID) Match(eid2 *EdgeID) bool { return false } for i, s := range eid.SrcPath { - if !strings.EqualFold(s, eid2.SrcPath[i]) { + if !strings.EqualFold(s.ScalarString(), eid2.SrcPath[i].ScalarString()) { return false } } @@ -440,7 +440,7 @@ func (eid *EdgeID) Match(eid2 *EdgeID) bool { return false } for i, s := range eid.DstPath { - if !strings.EqualFold(s, eid2.DstPath[i]) { + if !strings.EqualFold(s.ScalarString(), eid2.DstPath[i].ScalarString()) { return false } } @@ -450,21 +450,21 @@ func (eid *EdgeID) Match(eid2 *EdgeID) bool { // resolve resolves both underscores and commons in eid. // It returns the new eid, containing map adjusted for underscores and common ida. -func (eid *EdgeID) resolve(m *Map) (_ *EdgeID, _ *Map, common []string, _ error) { +func (eid *EdgeID) resolve(m *Map) (_ *EdgeID, _ *Map, common []d2ast.String, _ error) { eid = eid.Copy() maxUnderscores := go2.Max(countUnderscores(eid.SrcPath), countUnderscores(eid.DstPath)) for i := 0; i < maxUnderscores; i++ { - if eid.SrcPath[0] == "_" { + if eid.SrcPath[0].ScalarString() == "_" && eid.SrcPath[0].IsUnquoted() { eid.SrcPath = eid.SrcPath[1:] } else { mf := ParentField(m) - eid.SrcPath = append([]string{mf.Name.ScalarString()}, eid.SrcPath...) + eid.SrcPath = append([]d2ast.String{mf.Name}, eid.SrcPath...) } - if eid.DstPath[0] == "_" { + if eid.DstPath[0].ScalarString() == "_" && eid.DstPath[0].IsUnquoted() { eid.DstPath = eid.DstPath[1:] } else { mf := ParentField(m) - eid.DstPath = append([]string{mf.Name.ScalarString()}, eid.DstPath...) + eid.DstPath = append([]d2ast.String{mf.Name}, eid.DstPath...) } m = ParentMap(m) if m == nil { @@ -473,7 +473,7 @@ func (eid *EdgeID) resolve(m *Map) (_ *EdgeID, _ *Map, common []string, _ error) } for len(eid.SrcPath) > 1 && len(eid.DstPath) > 1 { - if !strings.EqualFold(eid.SrcPath[0], eid.DstPath[0]) || strings.Contains(eid.SrcPath[0], "*") { + if !strings.EqualFold(eid.SrcPath[0].ScalarString(), eid.DstPath[0].ScalarString()) || strings.Contains(eid.SrcPath[0].ScalarString(), "*") { return eid, m, common, nil } common = append(common, eid.SrcPath[0]) @@ -702,9 +702,9 @@ func (m *Map) EdgeCountRecursive() int { func (m *Map) GetClassMap(name string) *Map { root := RootMap(m) - classes := root.Map().GetField("classes") + classes := root.Map().GetField(d2ast.FlatUnquotedString("classes")) if classes != nil && classes.Map() != nil { - class := classes.Map().GetField(name) + class := classes.Map().GetField(d2ast.FlatUnquotedString(name)) if class != nil && class.Map() != nil { return class.Map() } @@ -712,8 +712,8 @@ func (m *Map) GetClassMap(name string) *Map { return nil } -func (m *Map) GetField(ida ...string) *Field { - for len(ida) > 0 && ida[0] == "_" { +func (m *Map) GetField(ida ...d2ast.String) *Field { + for len(ida) > 0 && ida[0].ScalarString() == "_" && ida[0].IsUnquoted() { m = ParentMap(m) if m == nil { return nil @@ -722,7 +722,7 @@ func (m *Map) GetField(ida ...string) *Field { return m.getField(ida) } -func (m *Map) getField(ida []string) *Field { +func (m *Map) getField(ida []d2ast.String) *Field { if len(ida) == 0 { return nil } @@ -730,7 +730,7 @@ func (m *Map) getField(ida []string) *Field { s := ida[0] rest := ida[1:] - if s == "_" { + if s.ScalarString() == "_" && s.IsUnquoted() { return nil } @@ -738,7 +738,10 @@ func (m *Map) getField(ida []string) *Field { if f.Name == nil { continue } - if !strings.EqualFold(f.Name.ScalarString(), s) { + if !strings.EqualFold(f.Name.ScalarString(), s.ScalarString()) { + continue + } + if f.Name.IsUnquoted() != s.IsUnquoted() { continue } if len(rest) == 0 { @@ -788,9 +791,9 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b if gctx != nil { var ks string if refctx.Key.HasMultiGlob() { - ks = d2format.Format(d2ast.MakeKeyPath(IDA(f))) + ks = d2format.Format(d2ast.MakeKeyPathString(IDA(f))) } else { - ks = d2format.Format(d2ast.MakeKeyPath(BoardIDA(f))) + ks = d2format.Format(d2ast.MakeKeyPathString(BoardIDA(f))) } if !kp.HasGlob() { if !passthrough { @@ -887,7 +890,7 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", headString) } - if findBoardKeyword(headString) != -1 && head.IsUnquoted() && NodeBoardKind(m) == "" { + if findBoardKeyword(head) != -1 && head.IsUnquoted() && NodeBoardKind(m) == "" { return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", headString) } @@ -945,9 +948,9 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b for _, grefctx := range c.globRefContextStack { var ks string if grefctx.Key.HasMultiGlob() { - ks = d2format.Format(d2ast.MakeKeyPath(IDA(f))) + ks = d2format.Format(d2ast.MakeKeyPathString(IDA(f))) } else { - ks = d2format.Format(d2ast.MakeKeyPath(BoardIDA(f))) + ks = d2format.Format(d2ast.MakeKeyPathString(BoardIDA(f))) } gctx2 := c.getGlobContext(grefctx) gctx2.appliedFields[ks] = struct{}{} @@ -1090,7 +1093,7 @@ func (m *Map) getEdges(eid *EdgeID, refctx *RefContext, gctx *globContext, ea *[ } if len(common) > 0 { - commonKP := d2ast.MakeKeyPath(common) + commonKP := d2ast.MakeKeyPathString(common) lastMatch := 0 for i, el := range commonKP.Path { for j := lastMatch; j < len(refctx.Edge.Src.Path); j++ { @@ -1142,9 +1145,9 @@ func (m *Map) getEdges(eid *EdgeID, refctx *RefContext, gctx *globContext, ea *[ if gctx != nil { var ks string if refctx.Key.HasMultiGlob() { - ks = d2format.Format(d2ast.MakeKeyPath(IDA(e))) + ks = d2format.Format(d2ast.MakeKeyPathString(IDA(e))) } else { - ks = d2format.Format(d2ast.MakeKeyPath(BoardIDA(e))) + ks = d2format.Format(d2ast.MakeKeyPathString(BoardIDA(e))) } if _, ok := gctx.appliedEdges[ks]; ok { continue @@ -1186,7 +1189,7 @@ func (m *Map) createEdge(eid *EdgeID, refctx *RefContext, gctx *globContext, c * return d2parser.Errorf(refctx.Edge, err.Error()) } if len(common) > 0 { - commonKP := d2ast.MakeKeyPath(common) + commonKP := d2ast.MakeKeyPathString(common) lastMatch := 0 for i, el := range commonKP.Path { for j := lastMatch; j < len(refctx.Edge.Src.Path); j++ { @@ -1303,7 +1306,7 @@ func (m *Map) createEdge2(eid *EdgeID, refctx *RefContext, gctx *globContext, c return nil, d2parser.Errorf(refctx.Edge, err.Error()) } if len(common) > 0 { - commonKP := d2ast.MakeKeyPath(common) + commonKP := d2ast.MakeKeyPathString(common) lastMatch := 0 for i, el := range commonKP.Path { for j := lastMatch; j < len(refctx.Edge.Src.Path); j++ { @@ -1360,9 +1363,9 @@ func (m *Map) createEdge2(eid *EdgeID, refctx *RefContext, gctx *globContext, c e2.ID = e2.ID.Copy() e2.ID.Index = nil if refctx.Key.HasMultiGlob() { - ks = d2format.Format(d2ast.MakeKeyPath(IDA(e2))) + ks = d2format.Format(d2ast.MakeKeyPathString(IDA(e2))) } else { - ks = d2format.Format(d2ast.MakeKeyPath(BoardIDA(e2))) + ks = d2format.Format(d2ast.MakeKeyPathString(BoardIDA(e2))) } if _, ok := gctx.appliedEdges[ks]; ok { return nil, nil @@ -1401,11 +1404,11 @@ func (f *Field) AST() d2ast.Node { func (e *Edge) AST() d2ast.Node { astEdge := &d2ast.Edge{} - astEdge.Src = d2ast.MakeKeyPath(e.ID.SrcPath) + astEdge.Src = d2ast.MakeKeyPathString(e.ID.SrcPath) if e.ID.SrcArrow { astEdge.SrcArrow = "<" } - astEdge.Dst = d2ast.MakeKeyPath(e.ID.DstPath) + astEdge.Dst = d2ast.MakeKeyPathString(e.ID.DstPath) if e.ID.DstArrow { astEdge.DstArrow = ">" } @@ -1424,7 +1427,7 @@ func (e *Edge) AST() d2ast.Node { return k } -func (e *Edge) IDString() string { +func (e *Edge) IDString() d2ast.String { ast := e.AST().(*d2ast.Key) if e.ID.Index != nil { ast.EdgeIndex = &d2ast.EdgeIndex{ @@ -1433,7 +1436,8 @@ func (e *Edge) IDString() string { } ast.Primary = d2ast.ScalarBox{} ast.Value = d2ast.ValueBox{} - return d2format.Format(ast) + formatted := d2format.Format(ast) + return d2ast.FlatUnquotedString(formatted) } func (a *Array) AST() d2ast.Node { @@ -1465,7 +1469,7 @@ func (m *Map) AST() d2ast.Node { func (m *Map) appendFieldReferences(i int, kp *d2ast.KeyPath, refctx *RefContext, c *compiler) { sb := kp.Path[i] - f := m.GetField(sb.Unbox().ScalarString()) + f := m.GetField(sb.Unbox()) if f == nil { return } @@ -1563,7 +1567,7 @@ func ParentShape(n Node) string { f, ok := n.(*Field) if ok { if f.Map() != nil { - shapef := f.Map().GetField("shape") + shapef := f.Map().GetField(d2ast.FlatUnquotedString("shape")) if shapef != nil && shapef.Primary() != nil { return shapef.Primary().Value.ScalarString() } @@ -1576,30 +1580,30 @@ func ParentShape(n Node) string { } } -func countUnderscores(p []string) int { +func countUnderscores(p []d2ast.String) int { for i, el := range p { - if el != "_" { + if el.ScalarString() != "_" || el.IsUnquoted() { return i } } return 0 } -func findBoardKeyword(ida ...string) int { +func findBoardKeyword(ida ...d2ast.String) int { for i := range ida { - if _, ok := d2ast.BoardKeywords[ida[i]]; ok { + if _, ok := d2ast.BoardKeywords[ida[i].ScalarString()]; ok && ida[i].IsUnquoted() { return i } } return -1 } -func findProhibitedEdgeKeyword(ida ...string) int { +func findProhibitedEdgeKeyword(ida ...d2ast.String) int { for i := range ida { - if _, ok := d2ast.SimpleReservedKeywords[ida[i]]; ok { + if _, ok := d2ast.SimpleReservedKeywords[ida[i].ScalarString()]; ok && ida[i].IsUnquoted() { return i } - if _, ok := d2ast.ReservedKeywordHolders[ida[i]]; ok { + if _, ok := d2ast.ReservedKeywordHolders[ida[i].ScalarString()]; ok && ida[i].IsUnquoted() { return i } } @@ -1643,7 +1647,7 @@ func parentPrimaryKey(n Node) *d2ast.Key { } // BoardIDA returns the absolute path to n from the nearest board root. -func BoardIDA(n Node) (ida []string) { +func BoardIDA(n Node) (ida []d2ast.String) { for { switch n := n.(type) { case *Field: @@ -1651,7 +1655,7 @@ func BoardIDA(n Node) (ida []string) { reverseIDA(ida) return ida } - ida = append(ida, n.Name.ScalarString()) + ida = append(ida, n.Name) case *Edge: ida = append(ida, n.IDString()) } @@ -1664,11 +1668,11 @@ func BoardIDA(n Node) (ida []string) { } // IDA returns the absolute path to n. -func IDA(n Node) (ida []string) { +func IDA(n Node) (ida []d2ast.String) { for { switch n := n.(type) { case *Field: - ida = append(ida, n.Name.ScalarString()) + ida = append(ida, n.Name) if n.Root() { reverseIDA(ida) return ida @@ -1685,17 +1689,17 @@ func IDA(n Node) (ida []string) { } // RelIDA returns the path to n relative to p. -func RelIDA(p, n Node) (ida []string) { +func RelIDA(p, n Node) (ida []d2ast.String) { for { switch n := n.(type) { case *Field: - ida = append(ida, n.Name.ScalarString()) + ida = append(ida, n.Name) if n.Root() { reverseIDA(ida) return ida } case *Edge: - ida = append(ida, n.String()) + ida = append(ida, d2ast.FlatUnquotedString(n.String())) } n = n.Parent() f, fok := n.(*Field) @@ -1707,11 +1711,11 @@ func RelIDA(p, n Node) (ida []string) { } } -func reverseIDA(ida []string) { - for i := 0; i < len(ida)/2; i++ { - tmp := ida[i] - ida[i] = ida[len(ida)-i-1] - ida[len(ida)-i-1] = tmp +func reverseIDA[T any](slice []T) { + for i := 0; i < len(slice)/2; i++ { + tmp := slice[i] + slice[i] = slice[len(slice)-i-1] + slice[len(slice)-i-1] = tmp } } @@ -1786,7 +1790,7 @@ func (m *Map) Equal(n2 Node) bool { } func (m *Map) InClass(key *d2ast.Key) bool { - classes := m.Map().GetField("classes") + classes := m.Map().GetField(d2ast.FlatUnquotedString("classes")) if classes == nil || classes.Map() == nil { return false } @@ -1814,7 +1818,7 @@ func (m *Map) IsClass() bool { if parentBoard.Map() == nil { return false } - classes := parentBoard.Map().GetField("classes") + classes := parentBoard.Map().GetField(d2ast.FlatUnquotedString("classes")) if classes == nil || classes.Map() == nil { return false } @@ -1835,9 +1839,9 @@ func (m *Map) FindBoardRoot(path []string) *Map { return m } - layersf := m.GetField("layers") - scenariosf := m.GetField("scenarios") - stepsf := m.GetField("steps") + layersf := m.GetField(d2ast.FlatUnquotedString("layers")) + scenariosf := m.GetField(d2ast.FlatUnquotedString("scenarios")) + stepsf := m.GetField(d2ast.FlatUnquotedString("steps")) if layersf != nil && layersf.Map() != nil { for _, f := range layersf.Map().Fields { diff --git a/d2ir/merge.go b/d2ir/merge.go index dd2e77be0..3b22b27df 100644 --- a/d2ir/merge.go +++ b/d2ir/merge.go @@ -2,7 +2,7 @@ package d2ir func OverlayMap(base, overlay *Map) { for _, of := range overlay.Fields { - bf := base.GetField(of.Name.ScalarString()) + bf := base.GetField(of.Name) if bf == nil { base.Fields = append(base.Fields, of.Copy(base).(*Field)) continue @@ -31,7 +31,7 @@ func ExpandSubstitution(m, resolved *Map, placeholder *Field) { } for _, of := range resolved.Fields { - bf := m.GetField(of.Name.ScalarString()) + bf := m.GetField(of.Name) if bf == nil { m.Fields = append(m.Fields[:fi], append([]*Field{of.Copy(m).(*Field)}, m.Fields[fi:]...)...) fi++ diff --git a/e2etests/testdata/txtar/sql-table-reserved/dagre/board.exp.json b/e2etests/testdata/txtar/sql-table-reserved/dagre/board.exp.json new file mode 100644 index 000000000..05f561842 --- /dev/null +++ b/e2etests/testdata/txtar/sql-table-reserved/dagre/board.exp.json @@ -0,0 +1,305 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "my_table", + "type": "sql_table", + "pos": { + "x": 0, + "y": 166 + }, + "width": 200, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "N1", + "stroke": "N7", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "static.wikia.nocookie.net", + "Path": "/tomandjerry/images/4/46/JerryJumbo3-1-.jpg", + "RawPath": "", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "OUTSIDE_TOP_LEFT", + "blend": false, + "fields": null, + "methods": null, + "columns": [ + { + "name": { + "label": "shape", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 51, + "labelHeight": 26 + }, + "type": { + "label": "string", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 48, + "labelHeight": 26 + }, + "constraint": null, + "reference": "" + }, + { + "name": { + "label": "icon", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 35, + "labelHeight": 26 + }, + "type": { + "label": "string", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 48, + "labelHeight": 26 + }, + "constraint": null, + "reference": "" + }, + { + "name": { + "label": "width", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 48, + "labelHeight": 26 + }, + "type": { + "label": "int", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 23, + "labelHeight": 26 + }, + "constraint": null, + "reference": "" + }, + { + "name": { + "label": "height", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 53, + "labelHeight": 26 + }, + "type": { + "label": "int", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 23, + "labelHeight": 26 + }, + "constraint": null, + "reference": "" + } + ], + "label": "my_table", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 99, + "labelHeight": 31, + "zIndex": 0, + "level": 1, + "primaryAccentColor": "B2", + "secondaryAccentColor": "AA2", + "neutralAccentColor": "N2" + }, + { + "id": "x", + "type": "rectangle", + "pos": { + "x": 74, + "y": 0 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "x", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(x -> my_table)[0]", + "src": "x", + "srcArrow": "none", + "dst": "my_table", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 100, + "y": 66 + }, + { + "x": 100, + "y": 106 + }, + { + "x": 100, + "y": 126 + }, + { + "x": 100, + "y": 166 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/txtar/sql-table-reserved/dagre/sketch.exp.svg b/e2etests/testdata/txtar/sql-table-reserved/dagre/sketch.exp.svg new file mode 100644 index 000000000..47427da18 --- /dev/null +++ b/e2etests/testdata/txtar/sql-table-reserved/dagre/sketch.exp.svg @@ -0,0 +1,102 @@ +my_tableshapestringiconstringwidthintheightintx + + + \ No newline at end of file diff --git a/e2etests/testdata/txtar/sql-table-reserved/elk/board.exp.json b/e2etests/testdata/txtar/sql-table-reserved/elk/board.exp.json new file mode 100644 index 000000000..c53ead7f7 --- /dev/null +++ b/e2etests/testdata/txtar/sql-table-reserved/elk/board.exp.json @@ -0,0 +1,300 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "my_table", + "type": "sql_table", + "pos": { + "x": 78, + "y": 217 + }, + "width": 200, + "height": 200, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "N1", + "stroke": "N7", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": { + "Scheme": "https", + "Opaque": "", + "User": null, + "Host": "static.wikia.nocookie.net", + "Path": "/tomandjerry/images/4/46/JerryJumbo3-1-.jpg", + "RawPath": "", + "OmitHost": false, + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "iconPosition": "OUTSIDE_TOP_LEFT", + "blend": false, + "fields": null, + "methods": null, + "columns": [ + { + "name": { + "label": "shape", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 51, + "labelHeight": 26 + }, + "type": { + "label": "string", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 48, + "labelHeight": 26 + }, + "constraint": null, + "reference": "" + }, + { + "name": { + "label": "icon", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 35, + "labelHeight": 26 + }, + "type": { + "label": "string", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 48, + "labelHeight": 26 + }, + "constraint": null, + "reference": "" + }, + { + "name": { + "label": "width", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 48, + "labelHeight": 26 + }, + "type": { + "label": "int", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 23, + "labelHeight": 26 + }, + "constraint": null, + "reference": "" + }, + { + "name": { + "label": "height", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 53, + "labelHeight": 26 + }, + "type": { + "label": "int", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 23, + "labelHeight": 26 + }, + "constraint": null, + "reference": "" + } + ], + "label": "my_table", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 99, + "labelHeight": 31, + "zIndex": 0, + "level": 1, + "primaryAccentColor": "B2", + "secondaryAccentColor": "AA2", + "neutralAccentColor": "N2" + }, + { + "id": "x", + "type": "rectangle", + "pos": { + "x": 12, + "y": 12 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "x", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(x -> my_table)[0]", + "src": "x", + "srcArrow": "none", + "dst": "my_table", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 38.5, + "y": 77.6989974975586 + }, + { + "x": 38.5, + "y": 228.6999969482422 + }, + { + "x": 78.5, + "y": 228.6999969482422 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/txtar/sql-table-reserved/elk/sketch.exp.svg b/e2etests/testdata/txtar/sql-table-reserved/elk/sketch.exp.svg new file mode 100644 index 000000000..1f6898cdd --- /dev/null +++ b/e2etests/testdata/txtar/sql-table-reserved/elk/sketch.exp.svg @@ -0,0 +1,102 @@ +my_tableshapestringiconstringwidthintheightintx + + + \ No newline at end of file diff --git a/e2etests/txtar.txt b/e2etests/txtar.txt index a9d4bffa8..38b0ec213 100644 --- a/e2etests/txtar.txt +++ b/e2etests/txtar.txt @@ -643,3 +643,17 @@ financial.style.fill: "#e8f4f8" monitoring.style.fill: "#f8e8e8" projects.style.fill: "#e8f8e8" team.style.fill: "#f8f0e8" + +-- sql-table-reserved -- +my_table: { + shape: sql_table + icon: https://static.wikia.nocookie.net/tomandjerry/images/4/46/JerryJumbo3-1-.jpg + width: 200 + height: 200 + "shape": string + "icon": string + "width": int + "height": int +} + +x -> my_table."shape" From 5f6ee277951c6ea045d5f7a6f22979520a92aa36 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sun, 24 Nov 2024 10:55:30 -0800 Subject: [PATCH 15/17] fix underscore in edges --- d2ir/d2ir.go | 4 +- .../TestCompile/reserved_quoted/3.exp.json | 68 --- .../d2ir/TestCompile/edges/chain.exp.json | 60 ++- .../d2ir/TestCompile/edges/nested.exp.json | 40 +- testdata/d2ir/TestCompile/edges/root.exp.json | 20 +- .../TestCompile/edges/underscore.exp.json | 30 +- .../d2ir/TestCompile/filters/edge.exp.json | 40 +- .../filters/label-filter/1.exp.json | 20 +- .../filters/label-filter/2.exp.json | 40 +- .../filters/label-filter/3.exp.json | 20 +- .../filters/primary-filter.exp.json | 60 ++- .../layers/errs/4/good_edge.exp.json | 20 +- .../d2ir/TestCompile/layers/root.exp.json | 20 +- .../patterns/alixander-review/2.exp.json | 60 ++- .../patterns/alixander-review/3.exp.json | 60 ++- .../patterns/alixander-review/5.exp.json | 20 +- .../patterns/alixander-review/6.exp.json | 40 +- .../patterns/alixander-review/8.exp.json | 20 +- .../double-glob/edge-no-container.exp.json | 110 +++- .../patterns/double-glob/edge/1.exp.json | 30 +- .../patterns/double-glob/edge/2.exp.json | 30 +- .../patterns/edge-glob-index.exp.json | 60 ++- .../edge-glob-style-inherit/1.exp.json | 40 +- .../edge-glob-style-inherit/2.exp.json | 80 ++- .../TestCompile/patterns/edge-nexus.exp.json | 80 ++- .../d2ir/TestCompile/patterns/edge/1.exp.json | 40 +- .../d2ir/TestCompile/patterns/edge/2.exp.json | 40 +- .../d2ir/TestCompile/patterns/edge/3.exp.json | 40 +- .../d2ir/TestCompile/patterns/edge/4.exp.json | 120 ++++- .../patterns/glob-edge-glob-index.exp.json | 80 ++- .../TestCompile/patterns/override/3.exp.json | 40 +- .../TestCompile/patterns/override/4.exp.json | 20 +- .../TestCompile/patterns/override/5.exp.json | 20 +- .../TestCompile/patterns/reserved.exp.json | 120 ++++- .../TestCompile/patterns/scenarios.exp.json | 480 ++++++++++++++++-- .../triple-glob/edge-defaults.exp.json | 120 ++++- .../d2ir/TestCompile/scenarios/edge.exp.json | 40 +- .../scenarios/multiple-scenario-map.exp.json | 40 +- .../d2ir/TestCompile/scenarios/root.exp.json | 60 ++- .../d2ir/TestCompile/steps/recursive.exp.json | 80 ++- testdata/d2ir/TestCompile/steps/root.exp.json | 60 ++- 41 files changed, 2162 insertions(+), 310 deletions(-) diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 9400761ee..0e742110e 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -757,7 +757,7 @@ func (m *Map) getField(ida []d2ast.String) *Field { // EnsureField is a bit of a misnomer. It's more of a Query/Ensure combination function at this point. func (m *Map) EnsureField(kp *d2ast.KeyPath, refctx *RefContext, create bool, c *compiler) ([]*Field, error) { i := 0 - for kp.Path[i].Unbox().ScalarString() == "_" { + for kp.Path[i].Unbox().ScalarString() == "_" && kp.Path[i].Unbox().IsUnquoted() { m = ParentMap(m) if m == nil { return nil, d2parser.Errorf(kp.Path[i].Unbox(), "invalid underscore: no parent") @@ -1582,7 +1582,7 @@ func ParentShape(n Node) string { func countUnderscores(p []d2ast.String) int { for i, el := range p { - if el.ScalarString() != "_" || el.IsUnquoted() { + if el.ScalarString() != "_" || !el.IsUnquoted() { return i } } diff --git a/testdata/d2compiler/TestCompile/reserved_quoted/3.exp.json b/testdata/d2compiler/TestCompile/reserved_quoted/3.exp.json index ee0fc6d36..bb563d13a 100644 --- a/testdata/d2compiler/TestCompile/reserved_quoted/3.exp.json +++ b/testdata/d2compiler/TestCompile/reserved_quoted/3.exp.json @@ -96,74 +96,6 @@ "id": "shape", "id_val": "shape", "references": [ - { - "key": { - "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "double_quoted_string": { - "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:2:2-0:9:9", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "key_path_index": 1, - "map_key_edge_index": -1 - }, - { - "key": { - "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "double_quoted_string": { - "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:2:2-0:9:9", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "key_path_index": 1, - "map_key_edge_index": -1 - }, { "key": { "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:9:9", diff --git a/testdata/d2ir/TestCompile/edges/chain.exp.json b/testdata/d2ir/TestCompile/edges/chain.exp.json index aeb0aafab..046190339 100644 --- a/testdata/d2ir/TestCompile/edges/chain.exp.json +++ b/testdata/d2ir/TestCompile/edges/chain.exp.json @@ -1173,11 +1173,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1350,11 +1366,27 @@ { "edge_id": { "src_path": [ - "b" + { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "src_arrow": false, "dst_path": [ - "c" + { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1527,11 +1559,27 @@ { "edge_id": { "src_path": [ - "c" + { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "src_arrow": false, "dst_path": [ - "d" + { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/edges/nested.exp.json b/testdata/d2ir/TestCompile/edges/nested.exp.json index bb4c4c6a2..b22c45a68 100644 --- a/testdata/d2ir/TestCompile/edges/nested.exp.json +++ b/testdata/d2ir/TestCompile/edges/nested.exp.json @@ -735,13 +735,45 @@ { "edge_id": { "src_path": [ - "x", - "y" + { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "src_arrow": false, "dst_path": [ - "z", - "p" + { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, + { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/edges/root.exp.json b/testdata/d2ir/TestCompile/edges/root.exp.json index b442d6bdd..7516b678a 100644 --- a/testdata/d2ir/TestCompile/edges/root.exp.json +++ b/testdata/d2ir/TestCompile/edges/root.exp.json @@ -255,11 +255,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/edges/underscore.exp.json b/testdata/d2ir/TestCompile/edges/underscore.exp.json index 3145a947b..ef947862b 100644 --- a/testdata/d2ir/TestCompile/edges/underscore.exp.json +++ b/testdata/d2ir/TestCompile/edges/underscore.exp.json @@ -444,12 +444,36 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/edges/underscore.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "p", - "z" + { + "range": "TestCompile/edges/underscore.d2,0:0:0-0:1:1", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, + { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/filters/edge.exp.json b/testdata/d2ir/TestCompile/filters/edge.exp.json index 6ca3f3911..5622ca570 100644 --- a/testdata/d2ir/TestCompile/filters/edge.exp.json +++ b/testdata/d2ir/TestCompile/filters/edge.exp.json @@ -1171,11 +1171,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2455,11 +2471,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 1, diff --git a/testdata/d2ir/TestCompile/filters/label-filter/1.exp.json b/testdata/d2ir/TestCompile/filters/label-filter/1.exp.json index 919c0b32e..7b9cda909 100644 --- a/testdata/d2ir/TestCompile/filters/label-filter/1.exp.json +++ b/testdata/d2ir/TestCompile/filters/label-filter/1.exp.json @@ -3213,11 +3213,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/filters/label-filter/1.d2,4:0:10-4:1:11", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "z" + { + "range": "TestCompile/filters/label-filter/1.d2,4:5:15-4:6:16", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/filters/label-filter/2.exp.json b/testdata/d2ir/TestCompile/filters/label-filter/2.exp.json index 43db3ce00..c8901f508 100644 --- a/testdata/d2ir/TestCompile/filters/label-filter/2.exp.json +++ b/testdata/d2ir/TestCompile/filters/label-filter/2.exp.json @@ -499,11 +499,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/filters/label-filter/2.d2,8:0:83-8:1:84", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/filters/label-filter/2.d2,8:5:88-8:6:89", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1863,11 +1879,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/filters/label-filter/2.d2,8:0:83-8:1:84", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/filters/label-filter/2.d2,8:5:88-8:6:89", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 1, diff --git a/testdata/d2ir/TestCompile/filters/label-filter/3.exp.json b/testdata/d2ir/TestCompile/filters/label-filter/3.exp.json index d238e7807..987ebd9e8 100644 --- a/testdata/d2ir/TestCompile/filters/label-filter/3.exp.json +++ b/testdata/d2ir/TestCompile/filters/label-filter/3.exp.json @@ -275,11 +275,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/filters/label-filter/3.d2,6:0:53-6:1:54", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/filters/label-filter/3.d2,6:5:58-6:6:59", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/filters/primary-filter.exp.json b/testdata/d2ir/TestCompile/filters/primary-filter.exp.json index d8543a7d8..18d20b92f 100644 --- a/testdata/d2ir/TestCompile/filters/primary-filter.exp.json +++ b/testdata/d2ir/TestCompile/filters/primary-filter.exp.json @@ -1084,11 +1084,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/filters/primary-filter.d2,2:2:13-2:3:14", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b1" + { + "range": "TestCompile/filters/primary-filter.d2,2:7:18-2:9:20", + "value": [ + { + "string": "b1", + "raw_string": "b1" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1187,11 +1203,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/filters/primary-filter.d2,2:2:13-2:3:14", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b3" + { + "range": "TestCompile/filters/primary-filter.d2,4:7:38-4:9:40", + "value": [ + { + "string": "b3", + "raw_string": "b3" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1290,11 +1322,27 @@ { "edge_id": { "src_path": [ - "b1" + { + "range": "TestCompile/filters/primary-filter.d2,2:7:18-2:9:20", + "value": [ + { + "string": "b1", + "raw_string": "b1" + } + ] + } ], "src_arrow": false, "dst_path": [ - "c1" + { + "range": "TestCompile/filters/primary-filter.d2,6:8:50-6:10:52", + "value": [ + { + "string": "c1", + "raw_string": "c1" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json b/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json index 02d9d1eed..f9cb22e45 100644 --- a/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json +++ b/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json @@ -486,11 +486,27 @@ { "edge_id": { "src_path": [ - "y" + { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/layers/root.exp.json b/testdata/d2ir/TestCompile/layers/root.exp.json index 7596f3e4a..08f0334ed 100644 --- a/testdata/d2ir/TestCompile/layers/root.exp.json +++ b/testdata/d2ir/TestCompile/layers/root.exp.json @@ -868,11 +868,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/2.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/2.exp.json index f8ffd52a6..80f5083dc 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/2.exp.json @@ -806,11 +806,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/alixander-review/2.d2,1:0:1-1:1:2", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -915,11 +931,27 @@ { "edge_id": { "src_path": [ - "b" + { + "range": "TestCompile/patterns/alixander-review/2.d2,5:0:12-5:1:13", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1024,11 +1056,27 @@ { "edge_id": { "src_path": [ - "c" + { + "range": "TestCompile/patterns/alixander-review/2.d2,6:0:14-6:1:15", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/3.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/3.exp.json index 42b241363..f9c230282 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/3.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/3.exp.json @@ -2853,12 +2853,36 @@ { "edge_id": { "src_path": [ - "d", - "b" + { + "range": "TestCompile/patterns/alixander-review/3.d2,7:4:37-7:5:38", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, + { + "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "src_arrow": false, "dst_path": [ - "c" + { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -3732,12 +3756,36 @@ { "edge_id": { "src_path": [ - "a", - "b" + { + "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, + { + "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "src_arrow": false, "dst_path": [ - "c" + { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/5.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/5.exp.json index 141698860..676ef76cc 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/5.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/5.exp.json @@ -2254,11 +2254,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/alixander-review/5.d2,5:9:50-5:10:51", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/6.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/6.exp.json index c5fe6579c..e4ee83a08 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/6.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/6.exp.json @@ -499,11 +499,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/patterns/alixander-review/6.d2,3:0:33-3:1:34", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/alixander-review/6.d2,3:5:38-3:6:39", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1149,11 +1165,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/patterns/alixander-review/6.d2,3:0:33-3:1:34", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/alixander-review/6.d2,3:5:38-3:6:39", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 1, diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/8.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/8.exp.json index d1770ba79..ff3df8a4b 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/8.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/8.exp.json @@ -255,11 +255,27 @@ { "edge_id": { "src_path": [ - "b" + { + "range": "TestCompile/patterns/alixander-review/8.d2,4:0:62-4:1:63", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "src_arrow": false, "dst_path": [ - "c" + { + "range": "TestCompile/patterns/alixander-review/8.d2,4:5:67-4:6:68", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/double-glob/edge-no-container.exp.json b/testdata/d2ir/TestCompile/patterns/double-glob/edge-no-container.exp.json index e51884ec3..a43d04e43 100644 --- a/testdata/d2ir/TestCompile/patterns/double-glob/edge-no-container.exp.json +++ b/testdata/d2ir/TestCompile/patterns/double-glob/edge-no-container.exp.json @@ -818,12 +818,36 @@ { "edge_id": { "src_path": [ - "zone A", - "machine A" + { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,0:0:0-0:6:6", + "value": [ + { + "string": "zone A", + "raw_string": "zone A" + } + ] + }, + { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,1:1:11-1:10:20", + "value": [ + { + "string": "machine A", + "raw_string": "machine A" + } + ] + } ], "src_arrow": false, "dst_path": [ - "load balancer" + { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,7:13:83-7:26:96", + "value": [ + { + "string": "load balancer", + "raw_string": "load balancer" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -954,13 +978,45 @@ { "edge_id": { "src_path": [ - "zone A", - "machine B", - "submachine A" + { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,0:0:0-0:6:6", + "value": [ + { + "string": "zone A", + "raw_string": "zone A" + } + ] + }, + { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,2:1:22-2:10:31", + "value": [ + { + "string": "machine B", + "raw_string": "machine B" + } + ] + }, + { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,3:2:37-3:14:49", + "value": [ + { + "string": "submachine A", + "raw_string": "submachine A" + } + ] + } ], "src_arrow": false, "dst_path": [ - "load balancer" + { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,7:13:83-7:26:96", + "value": [ + { + "string": "load balancer", + "raw_string": "load balancer" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1091,13 +1147,45 @@ { "edge_id": { "src_path": [ - "zone A", - "machine B", - "submachine B" + { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,0:0:0-0:6:6", + "value": [ + { + "string": "zone A", + "raw_string": "zone A" + } + ] + }, + { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,2:1:22-2:10:31", + "value": [ + { + "string": "machine B", + "raw_string": "machine B" + } + ] + }, + { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,4:2:52-4:14:64", + "value": [ + { + "string": "submachine B", + "raw_string": "submachine B" + } + ] + } ], "src_arrow": false, "dst_path": [ - "load balancer" + { + "range": "TestCompile/patterns/double-glob/edge-no-container.d2,7:13:83-7:26:96", + "value": [ + { + "string": "load balancer", + "raw_string": "load balancer" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/double-glob/edge/1.exp.json b/testdata/d2ir/TestCompile/patterns/double-glob/edge/1.exp.json index ac6f162e9..a4a865b93 100644 --- a/testdata/d2ir/TestCompile/patterns/double-glob/edge/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/double-glob/edge/1.exp.json @@ -730,12 +730,36 @@ { "edge_id": { "src_path": [ - "task", - "a" + { + "range": "TestCompile/patterns/double-glob/edge/1.d2,5:0:21-5:4:25", + "value": [ + { + "string": "task", + "raw_string": "task" + } + ] + }, + { + "range": "TestCompile/patterns/double-glob/edge/1.d2,6:2:31-6:3:32", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "fast" + { + "range": "TestCompile/patterns/double-glob/edge/1.d2,0:0:0-0:4:4", + "value": [ + { + "string": "fast", + "raw_string": "fast" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/double-glob/edge/2.exp.json b/testdata/d2ir/TestCompile/patterns/double-glob/edge/2.exp.json index f38e7e726..b076a2afb 100644 --- a/testdata/d2ir/TestCompile/patterns/double-glob/edge/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/double-glob/edge/2.exp.json @@ -406,12 +406,36 @@ { "edge_id": { "src_path": [ - "a", - "b" + { + "range": "TestCompile/patterns/double-glob/edge/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, + { + "range": "TestCompile/patterns/double-glob/edge/2.d2,2:3:6-2:4:7", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "src_arrow": false, "dst_path": [ - "c" + { + "range": "TestCompile/patterns/double-glob/edge/2.d2,2:8:11-2:9:12", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/edge-glob-index.exp.json b/testdata/d2ir/TestCompile/patterns/edge-glob-index.exp.json index 625cbddbc..b19cf8189 100644 --- a/testdata/d2ir/TestCompile/patterns/edge-glob-index.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge-glob-index.exp.json @@ -1627,11 +1627,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/edge-glob-index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/edge-glob-index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2236,11 +2252,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/edge-glob-index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/edge-glob-index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 1, @@ -2845,11 +2877,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/edge-glob-index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/edge-glob-index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 2, diff --git a/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/1.exp.json b/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/1.exp.json index 241cca559..cb4d52c8f 100644 --- a/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/1.exp.json @@ -1593,11 +1593,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,1:0:29-1:1:30", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,1:5:34-1:6:35", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -3424,11 +3440,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,1:0:29-1:1:30", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/edge-glob-style-inherit/1.d2,1:5:34-1:6:35", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/2.exp.json b/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/2.exp.json index 2c010d9ef..ff631774e 100644 --- a/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/2.exp.json @@ -7309,11 +7309,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -13900,11 +13916,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -21481,11 +21513,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -24885,11 +24933,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/edge-nexus.exp.json b/testdata/d2ir/TestCompile/patterns/edge-nexus.exp.json index 42fb7fc68..82142a1b6 100644 --- a/testdata/d2ir/TestCompile/patterns/edge-nexus.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge-nexus.exp.json @@ -400,11 +400,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/edge-nexus.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "nexus" + { + "range": "TestCompile/patterns/edge-nexus.d2,4:5:13-4:10:18", + "value": [ + { + "string": "nexus", + "raw_string": "nexus" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -509,11 +525,27 @@ { "edge_id": { "src_path": [ - "b" + { + "range": "TestCompile/patterns/edge-nexus.d2,1:0:2-1:1:3", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "src_arrow": false, "dst_path": [ - "nexus" + { + "range": "TestCompile/patterns/edge-nexus.d2,4:5:13-4:10:18", + "value": [ + { + "string": "nexus", + "raw_string": "nexus" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -618,11 +650,27 @@ { "edge_id": { "src_path": [ - "c" + { + "range": "TestCompile/patterns/edge-nexus.d2,2:0:4-2:1:5", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "src_arrow": false, "dst_path": [ - "nexus" + { + "range": "TestCompile/patterns/edge-nexus.d2,4:5:13-4:10:18", + "value": [ + { + "string": "nexus", + "raw_string": "nexus" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -727,11 +775,27 @@ { "edge_id": { "src_path": [ - "d" + { + "range": "TestCompile/patterns/edge-nexus.d2,3:0:6-3:1:7", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } ], "src_arrow": false, "dst_path": [ - "nexus" + { + "range": "TestCompile/patterns/edge-nexus.d2,4:5:13-4:10:18", + "value": [ + { + "string": "nexus", + "raw_string": "nexus" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/edge/1.exp.json b/testdata/d2ir/TestCompile/patterns/edge/1.exp.json index d550db9c1..eb2826547 100644 --- a/testdata/d2ir/TestCompile/patterns/edge/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge/1.exp.json @@ -137,11 +137,27 @@ { "edge_id": { "src_path": [ - "animate" + { + "range": "TestCompile/patterns/edge/1.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } ], "src_arrow": false, "dst_path": [ - "animal" + { + "range": "TestCompile/patterns/edge/1.d2,1:0:8-1:6:14", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -256,11 +272,27 @@ { "edge_id": { "src_path": [ - "animal" + { + "range": "TestCompile/patterns/edge/1.d2,1:0:8-1:6:14", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } ], "src_arrow": false, "dst_path": [ - "animate" + { + "range": "TestCompile/patterns/edge/1.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/edge/2.exp.json b/testdata/d2ir/TestCompile/patterns/edge/2.exp.json index 0679c9e6f..f7e1516ce 100644 --- a/testdata/d2ir/TestCompile/patterns/edge/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge/2.exp.json @@ -193,11 +193,27 @@ { "edge_id": { "src_path": [ - "animate" + { + "range": "TestCompile/patterns/edge/2.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } ], "src_arrow": false, "dst_path": [ - "animal" + { + "range": "TestCompile/patterns/edge/2.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -332,11 +348,27 @@ { "edge_id": { "src_path": [ - "animal" + { + "range": "TestCompile/patterns/edge/2.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } ], "src_arrow": false, "dst_path": [ - "animate" + { + "range": "TestCompile/patterns/edge/2.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/edge/3.exp.json b/testdata/d2ir/TestCompile/patterns/edge/3.exp.json index 563e08697..4986e0fc5 100644 --- a/testdata/d2ir/TestCompile/patterns/edge/3.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge/3.exp.json @@ -193,11 +193,27 @@ { "edge_id": { "src_path": [ - "animate" + { + "range": "TestCompile/patterns/edge/3.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } ], "src_arrow": false, "dst_path": [ - "animal" + { + "range": "TestCompile/patterns/edge/3.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -372,11 +388,27 @@ { "edge_id": { "src_path": [ - "animal" + { + "range": "TestCompile/patterns/edge/3.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } ], "src_arrow": false, "dst_path": [ - "animate" + { + "range": "TestCompile/patterns/edge/3.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/edge/4.exp.json b/testdata/d2ir/TestCompile/patterns/edge/4.exp.json index 8024698a6..0e71feff0 100644 --- a/testdata/d2ir/TestCompile/patterns/edge/4.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge/4.exp.json @@ -470,11 +470,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/patterns/edge/4.d2,1:3:12-1:4:13", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/edge/4.d2,8:18:55-8:19:56", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1187,11 +1203,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/patterns/edge/4.d2,8:7:44-8:8:45", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/patterns/edge/4.d2,5:3:31-5:4:32", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1439,13 +1471,45 @@ { "edge_id": { "src_path": [ - "app_a", - "x" + { + "range": "TestCompile/patterns/edge/4.d2,0:0:0-0:5:5", + "value": [ + { + "string": "app_a", + "raw_string": "app_a" + } + ] + }, + { + "range": "TestCompile/patterns/edge/4.d2,1:3:12-1:4:13", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "app_b", - "y" + { + "range": "TestCompile/patterns/edge/4.d2,4:1:19-4:6:24", + "value": [ + { + "string": "app_b", + "raw_string": "app_b" + } + ] + }, + { + "range": "TestCompile/patterns/edge/4.d2,5:3:31-5:4:32", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1604,13 +1668,45 @@ { "edge_id": { "src_path": [ - "app_b", - "x" + { + "range": "TestCompile/patterns/edge/4.d2,4:1:19-4:6:24", + "value": [ + { + "string": "app_b", + "raw_string": "app_b" + } + ] + }, + { + "range": "TestCompile/patterns/edge/4.d2,8:7:44-8:8:45", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "app_a", - "y" + { + "range": "TestCompile/patterns/edge/4.d2,0:0:0-0:5:5", + "value": [ + { + "string": "app_a", + "raw_string": "app_a" + } + ] + }, + { + "range": "TestCompile/patterns/edge/4.d2,8:18:55-8:19:56", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/glob-edge-glob-index.exp.json b/testdata/d2ir/TestCompile/patterns/glob-edge-glob-index.exp.json index 30745c840..7a1b8fc34 100644 --- a/testdata/d2ir/TestCompile/patterns/glob-edge-glob-index.exp.json +++ b/testdata/d2ir/TestCompile/patterns/glob-edge-glob-index.exp.json @@ -1580,11 +1580,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2207,11 +2223,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 1, @@ -2834,11 +2866,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 2, @@ -3461,11 +3509,27 @@ { "edge_id": { "src_path": [ - "c" + { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,3:0:21-3:1:22", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/glob-edge-glob-index.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/override/3.exp.json b/testdata/d2ir/TestCompile/patterns/override/3.exp.json index c8fce0556..2be7ec5e2 100644 --- a/testdata/d2ir/TestCompile/patterns/override/3.exp.json +++ b/testdata/d2ir/TestCompile/patterns/override/3.exp.json @@ -553,11 +553,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/override/3.d2,12:8:175-12:9:176", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/override/3.d2,12:13:180-12:14:181", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -8160,11 +8176,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/override/3.d2,3:0:28-3:1:29", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/override/3.d2,3:5:33-3:6:34", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/override/4.exp.json b/testdata/d2ir/TestCompile/patterns/override/4.exp.json index 6d3d73bb5..3c38e65f0 100644 --- a/testdata/d2ir/TestCompile/patterns/override/4.exp.json +++ b/testdata/d2ir/TestCompile/patterns/override/4.exp.json @@ -333,11 +333,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/override/4.d2,3:0:28-3:1:29", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/override/4.d2,3:5:33-3:6:34", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/override/5.exp.json b/testdata/d2ir/TestCompile/patterns/override/5.exp.json index 08d282a70..0b2e4e7ac 100644 --- a/testdata/d2ir/TestCompile/patterns/override/5.exp.json +++ b/testdata/d2ir/TestCompile/patterns/override/5.exp.json @@ -255,11 +255,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/override/5.d2,4:0:74-4:1:75", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/override/5.d2,4:5:79-4:6:80", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/reserved.exp.json b/testdata/d2ir/TestCompile/patterns/reserved.exp.json index 4528cc15b..d287e3151 100644 --- a/testdata/d2ir/TestCompile/patterns/reserved.exp.json +++ b/testdata/d2ir/TestCompile/patterns/reserved.exp.json @@ -539,11 +539,27 @@ { "edge_id": { "src_path": [ - "Spiderman 1" + { + "range": "TestCompile/patterns/reserved.d2,6:0:53-6:11:64", + "value": [ + { + "string": "Spiderman 1", + "raw_string": "Spiderman 1" + } + ] + } ], "src_arrow": false, "dst_path": [ - "Spiderman 2" + { + "range": "TestCompile/patterns/reserved.d2,7:0:65-7:11:76", + "value": [ + { + "string": "Spiderman 2", + "raw_string": "Spiderman 2" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -675,11 +691,27 @@ { "edge_id": { "src_path": [ - "Spiderman 1" + { + "range": "TestCompile/patterns/reserved.d2,6:0:53-6:11:64", + "value": [ + { + "string": "Spiderman 1", + "raw_string": "Spiderman 1" + } + ] + } ], "src_arrow": false, "dst_path": [ - "Spiderman 3" + { + "range": "TestCompile/patterns/reserved.d2,8:0:77-8:11:88", + "value": [ + { + "string": "Spiderman 3", + "raw_string": "Spiderman 3" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -811,11 +843,27 @@ { "edge_id": { "src_path": [ - "Spiderman 2" + { + "range": "TestCompile/patterns/reserved.d2,7:0:65-7:11:76", + "value": [ + { + "string": "Spiderman 2", + "raw_string": "Spiderman 2" + } + ] + } ], "src_arrow": false, "dst_path": [ - "Spiderman 1" + { + "range": "TestCompile/patterns/reserved.d2,6:0:53-6:11:64", + "value": [ + { + "string": "Spiderman 1", + "raw_string": "Spiderman 1" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -947,11 +995,27 @@ { "edge_id": { "src_path": [ - "Spiderman 2" + { + "range": "TestCompile/patterns/reserved.d2,7:0:65-7:11:76", + "value": [ + { + "string": "Spiderman 2", + "raw_string": "Spiderman 2" + } + ] + } ], "src_arrow": false, "dst_path": [ - "Spiderman 3" + { + "range": "TestCompile/patterns/reserved.d2,8:0:77-8:11:88", + "value": [ + { + "string": "Spiderman 3", + "raw_string": "Spiderman 3" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1083,11 +1147,27 @@ { "edge_id": { "src_path": [ - "Spiderman 3" + { + "range": "TestCompile/patterns/reserved.d2,8:0:77-8:11:88", + "value": [ + { + "string": "Spiderman 3", + "raw_string": "Spiderman 3" + } + ] + } ], "src_arrow": false, "dst_path": [ - "Spiderman 1" + { + "range": "TestCompile/patterns/reserved.d2,6:0:53-6:11:64", + "value": [ + { + "string": "Spiderman 1", + "raw_string": "Spiderman 1" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1219,11 +1299,27 @@ { "edge_id": { "src_path": [ - "Spiderman 3" + { + "range": "TestCompile/patterns/reserved.d2,8:0:77-8:11:88", + "value": [ + { + "string": "Spiderman 3", + "raw_string": "Spiderman 3" + } + ] + } ], "src_arrow": false, "dst_path": [ - "Spiderman 2" + { + "range": "TestCompile/patterns/reserved.d2,7:0:65-7:11:76", + "value": [ + { + "string": "Spiderman 2", + "raw_string": "Spiderman 2" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/scenarios.exp.json b/testdata/d2ir/TestCompile/patterns/scenarios.exp.json index e7882c90c..b2bcb9333 100644 --- a/testdata/d2ir/TestCompile/patterns/scenarios.exp.json +++ b/testdata/d2ir/TestCompile/patterns/scenarios.exp.json @@ -337,11 +337,27 @@ { "edge_id": { "src_path": [ - "e" + { + "range": "TestCompile/patterns/scenarios.d2,4:1:26-4:2:27", + "value": [ + { + "string": "e", + "raw_string": "e" + } + ] + } ], "src_arrow": false, "dst_path": [ - "f" + { + "range": "TestCompile/patterns/scenarios.d2,5:1:29-5:2:30", + "value": [ + { + "string": "f", + "raw_string": "f" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -460,11 +476,27 @@ { "edge_id": { "src_path": [ - "e" + { + "range": "TestCompile/patterns/scenarios.d2,4:1:26-4:2:27", + "value": [ + { + "string": "e", + "raw_string": "e" + } + ] + } ], "src_arrow": false, "dst_path": [ - "g" + { + "range": "TestCompile/patterns/scenarios.d2,6:1:32-6:2:33", + "value": [ + { + "string": "g", + "raw_string": "g" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -583,11 +615,27 @@ { "edge_id": { "src_path": [ - "e" + { + "range": "TestCompile/patterns/scenarios.d2,4:1:26-4:2:27", + "value": [ + { + "string": "e", + "raw_string": "e" + } + ] + } ], "src_arrow": false, "dst_path": [ - "h" + { + "range": "TestCompile/patterns/scenarios.d2,7:1:35-7:2:36", + "value": [ + { + "string": "h", + "raw_string": "h" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -706,11 +754,27 @@ { "edge_id": { "src_path": [ - "f" + { + "range": "TestCompile/patterns/scenarios.d2,5:1:29-5:2:30", + "value": [ + { + "string": "f", + "raw_string": "f" + } + ] + } ], "src_arrow": false, "dst_path": [ - "e" + { + "range": "TestCompile/patterns/scenarios.d2,4:1:26-4:2:27", + "value": [ + { + "string": "e", + "raw_string": "e" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -829,11 +893,27 @@ { "edge_id": { "src_path": [ - "f" + { + "range": "TestCompile/patterns/scenarios.d2,5:1:29-5:2:30", + "value": [ + { + "string": "f", + "raw_string": "f" + } + ] + } ], "src_arrow": false, "dst_path": [ - "g" + { + "range": "TestCompile/patterns/scenarios.d2,6:1:32-6:2:33", + "value": [ + { + "string": "g", + "raw_string": "g" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -952,11 +1032,27 @@ { "edge_id": { "src_path": [ - "f" + { + "range": "TestCompile/patterns/scenarios.d2,5:1:29-5:2:30", + "value": [ + { + "string": "f", + "raw_string": "f" + } + ] + } ], "src_arrow": false, "dst_path": [ - "h" + { + "range": "TestCompile/patterns/scenarios.d2,7:1:35-7:2:36", + "value": [ + { + "string": "h", + "raw_string": "h" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1075,11 +1171,27 @@ { "edge_id": { "src_path": [ - "g" + { + "range": "TestCompile/patterns/scenarios.d2,6:1:32-6:2:33", + "value": [ + { + "string": "g", + "raw_string": "g" + } + ] + } ], "src_arrow": false, "dst_path": [ - "e" + { + "range": "TestCompile/patterns/scenarios.d2,4:1:26-4:2:27", + "value": [ + { + "string": "e", + "raw_string": "e" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1198,11 +1310,27 @@ { "edge_id": { "src_path": [ - "g" + { + "range": "TestCompile/patterns/scenarios.d2,6:1:32-6:2:33", + "value": [ + { + "string": "g", + "raw_string": "g" + } + ] + } ], "src_arrow": false, "dst_path": [ - "f" + { + "range": "TestCompile/patterns/scenarios.d2,5:1:29-5:2:30", + "value": [ + { + "string": "f", + "raw_string": "f" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1321,11 +1449,27 @@ { "edge_id": { "src_path": [ - "g" + { + "range": "TestCompile/patterns/scenarios.d2,6:1:32-6:2:33", + "value": [ + { + "string": "g", + "raw_string": "g" + } + ] + } ], "src_arrow": false, "dst_path": [ - "h" + { + "range": "TestCompile/patterns/scenarios.d2,7:1:35-7:2:36", + "value": [ + { + "string": "h", + "raw_string": "h" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1444,11 +1588,27 @@ { "edge_id": { "src_path": [ - "h" + { + "range": "TestCompile/patterns/scenarios.d2,7:1:35-7:2:36", + "value": [ + { + "string": "h", + "raw_string": "h" + } + ] + } ], "src_arrow": false, "dst_path": [ - "e" + { + "range": "TestCompile/patterns/scenarios.d2,4:1:26-4:2:27", + "value": [ + { + "string": "e", + "raw_string": "e" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1567,11 +1727,27 @@ { "edge_id": { "src_path": [ - "h" + { + "range": "TestCompile/patterns/scenarios.d2,7:1:35-7:2:36", + "value": [ + { + "string": "h", + "raw_string": "h" + } + ] + } ], "src_arrow": false, "dst_path": [ - "f" + { + "range": "TestCompile/patterns/scenarios.d2,5:1:29-5:2:30", + "value": [ + { + "string": "f", + "raw_string": "f" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1690,11 +1866,27 @@ { "edge_id": { "src_path": [ - "h" + { + "range": "TestCompile/patterns/scenarios.d2,7:1:35-7:2:36", + "value": [ + { + "string": "h", + "raw_string": "h" + } + ] + } ], "src_arrow": false, "dst_path": [ - "g" + { + "range": "TestCompile/patterns/scenarios.d2,6:1:32-6:2:33", + "value": [ + { + "string": "g", + "raw_string": "g" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2465,11 +2657,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/scenarios.d2,11:0:44-11:1:45", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/scenarios.d2,12:0:46-12:1:47", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2588,11 +2796,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/scenarios.d2,11:0:44-11:1:45", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "c" + { + "range": "TestCompile/patterns/scenarios.d2,13:0:48-13:1:49", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2711,11 +2935,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/scenarios.d2,11:0:44-11:1:45", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "d" + { + "range": "TestCompile/patterns/scenarios.d2,14:0:50-14:1:51", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2834,11 +3074,27 @@ { "edge_id": { "src_path": [ - "b" + { + "range": "TestCompile/patterns/scenarios.d2,12:0:46-12:1:47", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "src_arrow": false, "dst_path": [ - "a" + { + "range": "TestCompile/patterns/scenarios.d2,11:0:44-11:1:45", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2957,11 +3213,27 @@ { "edge_id": { "src_path": [ - "b" + { + "range": "TestCompile/patterns/scenarios.d2,12:0:46-12:1:47", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "src_arrow": false, "dst_path": [ - "c" + { + "range": "TestCompile/patterns/scenarios.d2,13:0:48-13:1:49", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -3080,11 +3352,27 @@ { "edge_id": { "src_path": [ - "b" + { + "range": "TestCompile/patterns/scenarios.d2,12:0:46-12:1:47", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "src_arrow": false, "dst_path": [ - "d" + { + "range": "TestCompile/patterns/scenarios.d2,14:0:50-14:1:51", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -3203,11 +3491,27 @@ { "edge_id": { "src_path": [ - "c" + { + "range": "TestCompile/patterns/scenarios.d2,13:0:48-13:1:49", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "src_arrow": false, "dst_path": [ - "a" + { + "range": "TestCompile/patterns/scenarios.d2,11:0:44-11:1:45", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -3326,11 +3630,27 @@ { "edge_id": { "src_path": [ - "c" + { + "range": "TestCompile/patterns/scenarios.d2,13:0:48-13:1:49", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/scenarios.d2,12:0:46-12:1:47", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -3449,11 +3769,27 @@ { "edge_id": { "src_path": [ - "c" + { + "range": "TestCompile/patterns/scenarios.d2,13:0:48-13:1:49", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "src_arrow": false, "dst_path": [ - "d" + { + "range": "TestCompile/patterns/scenarios.d2,14:0:50-14:1:51", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -3572,11 +3908,27 @@ { "edge_id": { "src_path": [ - "d" + { + "range": "TestCompile/patterns/scenarios.d2,14:0:50-14:1:51", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } ], "src_arrow": false, "dst_path": [ - "a" + { + "range": "TestCompile/patterns/scenarios.d2,11:0:44-11:1:45", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -3695,11 +4047,27 @@ { "edge_id": { "src_path": [ - "d" + { + "range": "TestCompile/patterns/scenarios.d2,14:0:50-14:1:51", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/scenarios.d2,12:0:46-12:1:47", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -3818,11 +4186,27 @@ { "edge_id": { "src_path": [ - "d" + { + "range": "TestCompile/patterns/scenarios.d2,14:0:50-14:1:51", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } ], "src_arrow": false, "dst_path": [ - "c" + { + "range": "TestCompile/patterns/scenarios.d2,13:0:48-13:1:49", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/patterns/triple-glob/edge-defaults.exp.json b/testdata/d2ir/TestCompile/patterns/triple-glob/edge-defaults.exp.json index c5c892e94..54aa40e1d 100644 --- a/testdata/d2ir/TestCompile/patterns/triple-glob/edge-defaults.exp.json +++ b/testdata/d2ir/TestCompile/patterns/triple-glob/edge-defaults.exp.json @@ -1279,11 +1279,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,4:0:55-4:1:56", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,4:5:60-4:6:61", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2134,11 +2150,27 @@ { "edge_id": { "src_path": [ - "c" + { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,5:0:62-5:1:63", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "src_arrow": false, "dst_path": [ - "d" + { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,5:5:67-5:6:68", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2989,11 +3021,27 @@ { "edge_id": { "src_path": [ - "p" + { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,7:15:85-7:16:86", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } ], "src_arrow": false, "dst_path": [ - "q" + { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,7:20:90-7:21:91", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -5469,11 +5517,27 @@ { "edge_id": { "src_path": [ - "j" + { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,8:12:106-8:13:107", + "value": [ + { + "string": "j", + "raw_string": "j" + } + ] + } ], "src_arrow": false, "dst_path": [ - "f" + { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,8:17:111-8:18:112", + "value": [ + { + "string": "f", + "raw_string": "f" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -7675,11 +7739,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,4:0:55-4:1:56", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,4:5:60-4:6:61", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -8165,11 +8245,27 @@ { "edge_id": { "src_path": [ - "c" + { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,5:0:62-5:1:63", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } ], "src_arrow": false, "dst_path": [ - "d" + { + "range": "TestCompile/patterns/triple-glob/edge-defaults.d2,5:5:67-5:6:68", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/scenarios/edge.exp.json b/testdata/d2ir/TestCompile/scenarios/edge.exp.json index 9e6e0e618..e310c85e5 100644 --- a/testdata/d2ir/TestCompile/scenarios/edge.exp.json +++ b/testdata/d2ir/TestCompile/scenarios/edge.exp.json @@ -829,11 +829,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1750,11 +1766,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/scenarios/multiple-scenario-map.exp.json b/testdata/d2ir/TestCompile/scenarios/multiple-scenario-map.exp.json index 6c2986ff7..2e605908f 100644 --- a/testdata/d2ir/TestCompile/scenarios/multiple-scenario-map.exp.json +++ b/testdata/d2ir/TestCompile/scenarios/multiple-scenario-map.exp.json @@ -1079,11 +1079,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2342,11 +2358,27 @@ { "edge_id": { "src_path": [ - "a" + { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } ], "src_arrow": false, "dst_path": [ - "b" + { + "range": "TestCompile/scenarios/multiple-scenario-map.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/scenarios/root.exp.json b/testdata/d2ir/TestCompile/scenarios/root.exp.json index 189ae71f1..85d0e8ec1 100644 --- a/testdata/d2ir/TestCompile/scenarios/root.exp.json +++ b/testdata/d2ir/TestCompile/scenarios/root.exp.json @@ -869,11 +869,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1411,11 +1427,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1794,11 +1826,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/steps/recursive.exp.json b/testdata/d2ir/TestCompile/steps/recursive.exp.json index 0afdd842b..1ba1752c1 100644 --- a/testdata/d2ir/TestCompile/steps/recursive.exp.json +++ b/testdata/d2ir/TestCompile/steps/recursive.exp.json @@ -869,11 +869,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2497,11 +2513,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2806,11 +2838,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -3351,11 +3399,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, diff --git a/testdata/d2ir/TestCompile/steps/root.exp.json b/testdata/d2ir/TestCompile/steps/root.exp.json index 4cc496405..7cd244a71 100644 --- a/testdata/d2ir/TestCompile/steps/root.exp.json +++ b/testdata/d2ir/TestCompile/steps/root.exp.json @@ -869,11 +869,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -1751,11 +1767,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, @@ -2134,11 +2166,27 @@ { "edge_id": { "src_path": [ - "x" + { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } ], "src_arrow": false, "dst_path": [ - "y" + { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } ], "dst_arrow": true, "index": 0, From 7a4ea253a906b6a0468bd203cac8b7a4920fa3d5 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sun, 24 Nov 2024 10:56:35 -0800 Subject: [PATCH 16/17] fix reserved casing --- d2ir/d2ir.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 0e742110e..18a8b5b9e 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -1591,7 +1591,7 @@ func countUnderscores(p []d2ast.String) int { func findBoardKeyword(ida ...d2ast.String) int { for i := range ida { - if _, ok := d2ast.BoardKeywords[ida[i].ScalarString()]; ok && ida[i].IsUnquoted() { + if _, ok := d2ast.BoardKeywords[strings.ToLower(ida[i].ScalarString())]; ok && ida[i].IsUnquoted() { return i } } From 1ecadc576ccfa5621da626d71bb9e5cdf33cee0b Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sun, 24 Nov 2024 11:03:03 -0800 Subject: [PATCH 17/17] fix tests --- d2ast/d2ast.go | 7 +++++++ d2cli/main.go | 2 +- d2compiler/compile.go | 6 +----- d2lsp/d2lsp.go | 2 +- .../TestCLI_E2E/internal_linked_pdf.exp.pdf | Bin 62121 -> 62121 bytes .../testdata/TestCLI_E2E/no-nav-pdf.exp.pdf | Bin 91400 -> 91400 bytes .../TestCLI_E2E/renamed-board.exp.pdf | Bin 107020 -> 107020 bytes .../testdata/TestCLI_E2E/theme-pdf.exp.pdf | Bin 17219 -> 17219 bytes 8 files changed, 10 insertions(+), 7 deletions(-) diff --git a/d2ast/d2ast.go b/d2ast/d2ast.go index 464faf196..b0e9386e9 100644 --- a/d2ast/d2ast.go +++ b/d2ast/d2ast.go @@ -1080,6 +1080,13 @@ func (kp *KeyPath) IDA() (ida []String) { return ida } +func (kp *KeyPath) StringIDA() (ida []string) { + for _, el := range kp.Path { + ida = append(ida, el.Unbox().ScalarString()) + } + return ida +} + func (kp *KeyPath) Copy() *KeyPath { kp2 := *kp kp2.Path = nil diff --git a/d2cli/main.go b/d2cli/main.go index df66926fa..eeefd6ae9 100644 --- a/d2cli/main.go +++ b/d2cli/main.go @@ -349,7 +349,7 @@ func Run(ctx context.Context, ms *xmain.State) (err error) { if err != nil { return xmain.UsageErrorf("invalid target: %s", *targetFlag) } - boardPath = key.IDA() + boardPath = key.StringIDA() } ctx, cancel := timelib.WithTimeout(ctx, time.Minute*2) diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 221bb9d67..be7150d1a 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -1230,11 +1230,7 @@ func (c *compiler) validateBoardLinks(g *d2graph.Graph) { continue } - formattedIDA := []string{} - for _, id := range linkKey.IDA() { - formattedIDA = append(formattedIDA, id.ScalarString()) - } - if slices.Equal(formattedIDA, obj.Graph.IDA()) { + if slices.Equal(linkKey.StringIDA(), obj.Graph.IDA()) { obj.Link = nil continue } diff --git a/d2lsp/d2lsp.go b/d2lsp/d2lsp.go index fbd2c4d75..eedcd6550 100644 --- a/d2lsp/d2lsp.go +++ b/d2lsp/d2lsp.go @@ -28,7 +28,7 @@ func GetRefRanges(path string, fs map[string]string, boardPath []string, key str var f *d2ir.Field if mk.Key != nil { for _, p := range mk.Key.Path { - f = m.GetField(p.Unbox().ScalarString()) + f = m.GetField(p.Unbox()) if f == nil { return nil, nil, nil } diff --git a/e2etests-cli/testdata/TestCLI_E2E/internal_linked_pdf.exp.pdf b/e2etests-cli/testdata/TestCLI_E2E/internal_linked_pdf.exp.pdf index 76279f245789662ad78d057b2f5c3f547d0d0654..b1ef566beb81f6edb077ee18618599687d1e97ce 100644 GIT binary patch delta 49 zcmZ4alzHV-<_&A!D;XM?TACPZa_Rf#r?@1Rq$+5*SQ!}@nHU-ZF<5T%x%ao30JUfk Ap8x;= delta 49 zcmZ4alzHV-<_&A!D;Zdtnj4vGa_Rf#r?@1Rq$+5*SQ!}@nHU-xnLy+=pL>6s2>`a* B5U&6L diff --git a/e2etests-cli/testdata/TestCLI_E2E/no-nav-pdf.exp.pdf b/e2etests-cli/testdata/TestCLI_E2E/no-nav-pdf.exp.pdf index 59fd3431a7928b5061ef72dfea699e06d5968444..5a6a7c3644119bd74359e897b151ea27fe06f249 100644 GIT binary patch delta 36 mcmeA;#oBR-wP6b*cM_YSfvKg5$#lUaMlmRRyKWNWZ6*NAiV6?_ delta 36 mcmeA;#oBR-wP6b*cM_X{rK!1*>2$#)MlmRRyKWNWZ6*NBJ_;HD diff --git a/e2etests-cli/testdata/TestCLI_E2E/renamed-board.exp.pdf b/e2etests-cli/testdata/TestCLI_E2E/renamed-board.exp.pdf index 9ab29298bab4bb4d7c9b25143547e5226d8ae2fc..c520c51ab5d2ab24a5ca3b80abd0ff2aa2e90842 100644 GIT binary patch delta 52 zcmeA?-~1Gp#FA764HqjT10xedLn9N2+;)TcjCYs- DqB;)b diff --git a/e2etests-cli/testdata/TestCLI_E2E/theme-pdf.exp.pdf b/e2etests-cli/testdata/TestCLI_E2E/theme-pdf.exp.pdf index b062ef0bf07895b4d985ffc48b4bf976b3409309..79e8b42da37221c85c4f96434958c18ac235f948 100644 GIT binary patch delta 49 zcmX@y#(21malU;n2+l0C`mo AIRF3v delta 49 zcmX@y#(21mal