Linux vmi284606.contaboserver.net 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Apache/2.4.57 (Ubuntu)
: 167.86.127.34 | : 216.73.217.31
Cant Read [ /etc/named.conf ]
7.2.24-0ubuntu0.18.04.17
root
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
local /
go /
src /
go /
types /
[ HOME SHELL ]
Name
Size
Permission
Action
testdata
[ DIR ]
drwxr-xr-x
api.go
13.6
KB
-rw-r--r--
api_test.go
41.52
KB
-rw-r--r--
assignments.go
8.58
KB
-rw-r--r--
builtins.go
17.25
KB
-rw-r--r--
builtins_test.go
7.54
KB
-rw-r--r--
call.go
13.86
KB
-rw-r--r--
check.go
12.43
KB
-rw-r--r--
check_test.go
8.65
KB
-rw-r--r--
conversions.go
4.86
KB
-rw-r--r--
decl.go
22.25
KB
-rw-r--r--
errors.go
3.14
KB
-rw-r--r--
eval.go
2.92
KB
-rw-r--r--
eval_test.go
7.12
KB
-rw-r--r--
example_test.go
8.77
KB
-rw-r--r--
expr.go
44.32
KB
-rw-r--r--
exprstring.go
4.54
KB
-rw-r--r--
exprstring_test.go
1.76
KB
-rw-r--r--
gccgosizes.go
1016
B
-rw-r--r--
gotype.go
8.4
KB
-rw-r--r--
hilbert_test.go
3.63
KB
-rw-r--r--
initorder.go
8.84
KB
-rw-r--r--
issues_test.go
12.86
KB
-rw-r--r--
labels.go
7.01
KB
-rw-r--r--
lookup.go
13.05
KB
-rw-r--r--
methodset.go
8.38
KB
-rw-r--r--
object.go
14.69
KB
-rw-r--r--
object_test.go
2.82
KB
-rw-r--r--
objset.go
927
B
-rw-r--r--
operand.go
7.46
KB
-rw-r--r--
package.go
2.19
KB
-rw-r--r--
predicates.go
9.01
KB
-rw-r--r--
resolver.go
20.76
KB
-rw-r--r--
resolver_test.go
4.58
KB
-rw-r--r--
return.go
4.23
KB
-rw-r--r--
scope.go
5.48
KB
-rw-r--r--
selection.go
3.99
KB
-rw-r--r--
self_test.go
2.2
KB
-rw-r--r--
sizes.go
6.61
KB
-rw-r--r--
sizes_test.go
2.46
KB
-rw-r--r--
stdlib_test.go
8.32
KB
-rw-r--r--
stmt.go
22.8
KB
-rw-r--r--
token_test.go
1.21
KB
-rw-r--r--
type.go
16.81
KB
-rw-r--r--
typestring.go
7.8
KB
-rw-r--r--
typestring_test.go
6.56
KB
-rw-r--r--
typexpr.go
20.6
KB
-rw-r--r--
universe.go
6.47
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : exprstring.go
// Copyright 2013 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 file implements printing of expressions. package types import ( "bytes" "go/ast" ) // ExprString returns the (possibly shortened) string representation for x. // Shortened representations are suitable for user interfaces but may not // necessarily follow Go syntax. func ExprString(x ast.Expr) string { var buf bytes.Buffer WriteExpr(&buf, x) return buf.String() } // WriteExpr writes the (possibly shortened) string representation for x to buf. // Shortened representations are suitable for user interfaces but may not // necessarily follow Go syntax. func WriteExpr(buf *bytes.Buffer, x ast.Expr) { // The AST preserves source-level parentheses so there is // no need to introduce them here to correct for different // operator precedences. (This assumes that the AST was // generated by a Go parser.) switch x := x.(type) { default: buf.WriteString("(bad expr)") // nil, ast.BadExpr, ast.KeyValueExpr case *ast.Ident: buf.WriteString(x.Name) case *ast.Ellipsis: buf.WriteString("...") if x.Elt != nil { WriteExpr(buf, x.Elt) } case *ast.BasicLit: buf.WriteString(x.Value) case *ast.FuncLit: buf.WriteByte('(') WriteExpr(buf, x.Type) buf.WriteString(" literal)") // shortened case *ast.CompositeLit: buf.WriteByte('(') WriteExpr(buf, x.Type) buf.WriteString(" literal)") // shortened case *ast.ParenExpr: buf.WriteByte('(') WriteExpr(buf, x.X) buf.WriteByte(')') case *ast.SelectorExpr: WriteExpr(buf, x.X) buf.WriteByte('.') buf.WriteString(x.Sel.Name) case *ast.IndexExpr: WriteExpr(buf, x.X) buf.WriteByte('[') WriteExpr(buf, x.Index) buf.WriteByte(']') case *ast.SliceExpr: WriteExpr(buf, x.X) buf.WriteByte('[') if x.Low != nil { WriteExpr(buf, x.Low) } buf.WriteByte(':') if x.High != nil { WriteExpr(buf, x.High) } if x.Slice3 { buf.WriteByte(':') if x.Max != nil { WriteExpr(buf, x.Max) } } buf.WriteByte(']') case *ast.TypeAssertExpr: WriteExpr(buf, x.X) buf.WriteString(".(") WriteExpr(buf, x.Type) buf.WriteByte(')') case *ast.CallExpr: WriteExpr(buf, x.Fun) buf.WriteByte('(') for i, arg := range x.Args { if i > 0 { buf.WriteString(", ") } WriteExpr(buf, arg) } if x.Ellipsis.IsValid() { buf.WriteString("...") } buf.WriteByte(')') case *ast.StarExpr: buf.WriteByte('*') WriteExpr(buf, x.X) case *ast.UnaryExpr: buf.WriteString(x.Op.String()) WriteExpr(buf, x.X) case *ast.BinaryExpr: WriteExpr(buf, x.X) buf.WriteByte(' ') buf.WriteString(x.Op.String()) buf.WriteByte(' ') WriteExpr(buf, x.Y) case *ast.ArrayType: buf.WriteByte('[') if x.Len != nil { WriteExpr(buf, x.Len) } buf.WriteByte(']') WriteExpr(buf, x.Elt) case *ast.StructType: buf.WriteString("struct{") writeFieldList(buf, x.Fields, "; ", false) buf.WriteByte('}') case *ast.FuncType: buf.WriteString("func") writeSigExpr(buf, x) case *ast.InterfaceType: buf.WriteString("interface{") writeFieldList(buf, x.Methods, "; ", true) buf.WriteByte('}') case *ast.MapType: buf.WriteString("map[") WriteExpr(buf, x.Key) buf.WriteByte(']') WriteExpr(buf, x.Value) case *ast.ChanType: var s string switch x.Dir { case ast.SEND: s = "chan<- " case ast.RECV: s = "<-chan " default: s = "chan " } buf.WriteString(s) WriteExpr(buf, x.Value) } } func writeSigExpr(buf *bytes.Buffer, sig *ast.FuncType) { buf.WriteByte('(') writeFieldList(buf, sig.Params, ", ", false) buf.WriteByte(')') res := sig.Results n := res.NumFields() if n == 0 { // no result return } buf.WriteByte(' ') if n == 1 && len(res.List[0].Names) == 0 { // single unnamed result WriteExpr(buf, res.List[0].Type) return } // multiple or named result(s) buf.WriteByte('(') writeFieldList(buf, res, ", ", false) buf.WriteByte(')') } func writeFieldList(buf *bytes.Buffer, fields *ast.FieldList, sep string, iface bool) { for i, f := range fields.List { if i > 0 { buf.WriteString(sep) } // field list names for i, name := range f.Names { if i > 0 { buf.WriteString(", ") } buf.WriteString(name.Name) } // types of interface methods consist of signatures only if sig, _ := f.Type.(*ast.FuncType); sig != nil && iface { writeSigExpr(buf, sig) continue } // named fields are separated with a blank from the field type if len(f.Names) > 0 { buf.WriteByte(' ') } WriteExpr(buf, f.Type) // ignore tag } }
Close