github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/go/format/example_test.go (about) 1 // Copyright 2018 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package format_test 6 7 import ( 8 "github.com/shogo82148/std/bytes" 9 "github.com/shogo82148/std/fmt" 10 "github.com/shogo82148/std/go/format" 11 "github.com/shogo82148/std/go/parser" 12 "github.com/shogo82148/std/go/token" 13 "github.com/shogo82148/std/log" 14 ) 15 16 func ExampleNode() { 17 const expr = "(6+2*3)/4" 18 19 // parser.ParseExprは引数を解析し、対応するast.Nodeを返します。 20 node, err := parser.ParseExpr(expr) 21 if err != nil { 22 log.Fatal(err) 23 } 24 25 // ノード用のFileSetを作成します。ノードは実際のソースファイルから 26 // 来ないため、fsetは空になります。 27 fset := token.NewFileSet() 28 29 var buf bytes.Buffer 30 err = format.Node(&buf, fset, node) 31 if err != nil { 32 log.Fatal(err) 33 } 34 35 fmt.Println(buf.String()) 36 37 // Output: (6 + 2*3) / 4 38 }