mirror of
https://github.com/golang/go
synced 2024-11-22 05:04:40 -07:00
remove uses of *T as an implicit forward declaration of T
R=gri,r OCL=16648 CL=16652
This commit is contained in:
parent
96da920f1a
commit
e6cd1e445b
@ -98,6 +98,12 @@ func atob(str string) (value bool, ok bool) {
|
||||
return false, false
|
||||
}
|
||||
|
||||
type (
|
||||
BoolValue struct;
|
||||
IntValue struct;
|
||||
StringValue struct;
|
||||
)
|
||||
|
||||
// -- Bool Value
|
||||
type BoolValue struct {
|
||||
val bool;
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
package main
|
||||
|
||||
type T struct
|
||||
type S struct {
|
||||
p *T // BUG T never declared
|
||||
}
|
||||
|
@ -6,6 +6,10 @@
|
||||
|
||||
package main
|
||||
|
||||
type (
|
||||
Type struct;
|
||||
Object struct;
|
||||
)
|
||||
|
||||
type Scope struct {
|
||||
entries *map[string] *Object;
|
||||
|
@ -9,6 +9,12 @@ package main
|
||||
|
||||
const nilchar = 0;
|
||||
|
||||
type (
|
||||
Atom struct;
|
||||
List struct;
|
||||
Slist struct;
|
||||
)
|
||||
|
||||
type Atom struct {
|
||||
str string;
|
||||
integer int;
|
||||
|
@ -13,6 +13,11 @@ package Globals
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
type Type struct
|
||||
type Scope struct
|
||||
type Elem struct
|
||||
type Compilation struct
|
||||
|
||||
export type Object struct {
|
||||
exported bool;
|
||||
pos int; // source position (< 0 if unknown position)
|
||||
@ -86,7 +91,7 @@ export type Compilation struct {
|
||||
// environment
|
||||
flags *Flags;
|
||||
env *Environment;
|
||||
|
||||
|
||||
// TODO use open arrays eventually
|
||||
pkg_list [256] *Package; // pkg_list[0] is the current package
|
||||
pkg_ref int;
|
||||
@ -199,7 +204,7 @@ func (L *List) at(i int) *Elem {
|
||||
for ; i > 0; i-- {
|
||||
p = p.next;
|
||||
}
|
||||
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
|
@ -8,11 +8,54 @@ package AST
|
||||
// ----------------------------------------------------------------------------
|
||||
// Visitor
|
||||
|
||||
type (
|
||||
Nil struct;
|
||||
Ident struct;
|
||||
ArrayType struct;
|
||||
StructType struct;
|
||||
MapType struct;
|
||||
ChannelType struct;
|
||||
PointerType struct;
|
||||
InterfaceType struct;
|
||||
FunctionType struct;
|
||||
VarDeclList struct;
|
||||
ImportDecl struct;
|
||||
ConstDecl struct;
|
||||
TypeDecl struct;
|
||||
VarDecl struct;
|
||||
Declaration struct;
|
||||
FuncDecl struct;
|
||||
MethodDecl struct;
|
||||
Selector struct;
|
||||
Index struct;
|
||||
Call struct;
|
||||
Pair struct;
|
||||
Binary struct;
|
||||
Unary struct;
|
||||
Literal struct;
|
||||
CompositeLit struct;
|
||||
FunctionLit struct;
|
||||
Label struct;
|
||||
Block struct;
|
||||
ExprStat struct;
|
||||
Assignment struct;
|
||||
ControlClause struct;
|
||||
IfStat struct;
|
||||
ForStat struct;
|
||||
CaseClause struct;
|
||||
SwitchStat struct;
|
||||
ReturnStat struct;
|
||||
IncDecStat struct;
|
||||
ControlFlowStat struct;
|
||||
GoStat struct;
|
||||
Program struct;
|
||||
)
|
||||
|
||||
export type Visitor interface {
|
||||
// Basics
|
||||
DoNil(x *Nil);
|
||||
DoIdent(x *Ident);
|
||||
|
||||
|
||||
// Types
|
||||
DoFunctionType(x *FunctionType);
|
||||
DoArrayType(x *ArrayType);
|
||||
@ -21,7 +64,7 @@ export type Visitor interface {
|
||||
DoChannelType(x *ChannelType);
|
||||
DoInterfaceType(x *InterfaceType);
|
||||
DoPointerType(x *PointerType);
|
||||
|
||||
|
||||
// Declarations
|
||||
DoImportDecl(x *ImportDecl);
|
||||
DoConstDecl(x *ConstDecl);
|
||||
@ -31,7 +74,7 @@ export type Visitor interface {
|
||||
DoFuncDecl(x *FuncDecl);
|
||||
DoMethodDecl(x *MethodDecl);
|
||||
DoDeclaration(x *Declaration);
|
||||
|
||||
|
||||
// Expressions
|
||||
DoBinary(x *Binary);
|
||||
DoUnary(x *Unary);
|
||||
|
Loading…
Reference in New Issue
Block a user