URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [go/] [printer/] [testdata/] [comments.input] - Rev 747
Compare with Previous | Blame | View Log
// Copyright 2009 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.// This is a package for testing comment placement by go/printer.//package mainimport "fmt" // fmtconst c0 = 0 // zeroconst (c1 = iota // c1c2 // c2)// Alignment of comments in declarations>const (_ T = iota // comment_ // comment_ // comment_ = iota+10_ // comments_ = 10 // comment_ T = 20 // comment)const (_____ = iota // foo_ // bar_ = 0 // bal_ // bat)const (_ T = iota // comment_ // comment_ // comment_ = iota + 10_ // comment_ = 10_ = 20 // comment_ T = 0 // comment)// The SZ struct; it is empty.type SZ struct {}// The S0 struct; no field is exported.type S0 struct {intx, y, z int // 3 unexported fields}// The S1 struct; some fields are not exported.type S1 struct {S0A, B, C float // 3 exported fieldsD, b, c int // 2 unexported fields}// The S2 struct; all fields are exported.type S2 struct {S1A, B, C float // 3 exported fields}// The IZ interface; it is empty.type SZ interface {}// The I0 interface; no method is exported.type I0 interface {f(x int) int // unexported method}// The I1 interface; some methods are not exported.type I1 interface {I0F(x float) float // exported methodsg(x int) int // unexported method}// The I2 interface; all methods are exported.type I2 interface {I0F(x float) float // exported methodG(x float) float // exported method}// The S3 struct; all comments except for the last one must appear in the export.type S3 struct {// lead comment for F1F1 int // line comment for F1// lead comment for F2F2 int // line comment for F2f3 int // f3 is not exported}// This comment group should be separated// with a newline from the next comment// group.// This comment should NOT be associated with the next declaration.var x int // xvar ()// This comment SHOULD be associated with f0.func f0() {const pi = 3.14 // pivar s1 struct {} /* an empty struct */ /* foo */// a struct constructor// --------------------var s2 struct {} = struct {}{}x := pi}//// This comment should be associated with f1, with one blank line before the comment.//func f1() {f0()/* 1 */// 2/* 3 *//* 4 */f0()}func _() {// this comment should be properly indented}func _(x int) int {if x < 0 { // the tab printed before this comment's // must not affect the remaining linesreturn -x // this statement should be properly indented}if x < 0 { /* the tab printed before this comment's /* must not affect the remaining lines */return -x // this statement should be properly indented}return x}func typeswitch(x interface{}) {switch v := x.(type) {case bool, int, float:case string:default:}switch x.(type) {}switch v0, ok := x.(int); v := x.(type) {}switch v0, ok := x.(int); x.(type) {case byte: // this comment should be on the same line as the keyword// this comment should be normally indented_ = 0case bool, int, float:// this comment should be indentedcase string:default:// this comment should be indented}// this comment should not be indented}func _() {/* freestanding commentaligned linealigned line*/}func _() {/* freestanding commentaligned linealigned line*/}func _() {/* freestanding commentaligned linealigned line */}func _() {/* freestanding commentaligned linealigned line*/}func _() {/* freestanding commentaligned linealigned line*/}func _() {/* freestanding commentaligned linealigned line */}func _() {/*freestanding commentaligned linealigned line*/}func _() {/*freestanding commentaligned linealigned line*/}func _() {/*freestanding commentaligned linealigned line */}func _() {/*freestanding commentaligned linealigned line*/}func _() {/*freestanding commentaligned linealigned line*/}func _() {/*freestanding commentaligned linealigned line */}func _() {/* freestanding commentaligned line*/}func _() {/* freestanding commentaligned line*/}func _() {/* freestanding commentaligned line */}func _() {/* freestanding commentaligned line*/}func _() {/* freestanding commentaligned line*/}func _() {/* freestanding commentaligned line */}func _() {/*freestanding commentaligned line*/}func _() {/*freestanding commentaligned line*/}func _() {/*freestanding commentaligned line */}func _() {/*freestanding commentaligned line*/}func _() {/*freestanding commentaligned line*/}func _() {/*freestanding commentaligned line */}/** line* of* stars*//* another line* of* stars *//* and another line* of* stars *//* a line of* stars *//* and another line of* stars *//* a line of stars*//* and another line of*//* a line of stars*//* and another line of*//*aligned in middleherenot here*//*blank line in middle:with no leading spaces on blank line.*//*aligned in middleherenot here*//*blank line in middle:with no leading spaces on blank line.*/func _() {/** line* of* stars*//*aligned in middleherenot here*//*blank line in middle:with no leading spaces on blank line.*/}// Some interesting interspersed commentsfunc _(/* this */x/* is *//* an */ int) {}func _(/* no params */) {}func _() {f(/* no args */)}func (/* comment1 */ T /* comment2 */) _() {}func _() { /* one-line functions with comments are formatted as multi-line functions */ }func _() {_ = 0/* closing curly brace should be on new line */ }func _() {_ = []int{0, 1 /* don't introduce a newline after this comment - was issue 1365 */}}// Comments immediately adjacent to punctuation (for which the go/printer// may only have estimated position information) must remain after the punctuation.func _() {_ = T{1, // comment after comma2, /* comment after comma */3 , // comment after comma}_ = T{1 ,// comment after comma2 ,/* comment after comma */3,// comment after comma}_ = T{/* comment before literal */1,2/* comment before comma - ok to move after comma */,3 /* comment before comma - ok to move after comma */ ,}fori=0;// comment after semicoloni<9;/* comment after semicolon */i++{// comment after opening curly brace}// TODO(gri) the last comment in this example should be aligned */fori=0;// comment after semicoloni<9/* comment before semicolon - ok to move after semicolon */;i++ /* comment before opening curly brace */ {}}// Line comments with tabsfunc _() {var finput *bufio.Reader // input filevar stderr *bufio.Writervar ftable *bufio.Writer // y.go filevar foutput *bufio.Writer // y.output filevar oflag string // -o [y.go] - y.go filevar vflag string // -v [y.output] - y.output filevar lflag bool // -l - disable line directives}/* This comment is the last entry in this file. It must be printed and should be followed by a newline */
