container for values.
Instead of having one evaluator function that returns a
generic Value, there is now an evaluator function for each
generalized type that simply returns a native type.
The compiler is more type-safe now because there are almost no
type conversions at evaluation time and it's impossible to
invoke a nil evaluator function during evaluation. This also
makes ideals and pointers really clean.
As an added bonus, expression evaluation should be faster
because it doesn't require heap allocation for every
intermediate value, type switches, or lots of conversions to
and from Value. It also involves fewer function calls.
R=rsc
APPROVED=rsc
DELTA=431 (280 added, 115 deleted, 36 changed)
OCL=31705
CL=31709
pointer types, supports literals, identifiers, type-checking
most unary and binary operators, "compiling" a few unary and
binary operators, and assignment and declaration statements.
R=rsc
APPROVED=rsc
DELTA=1751 (1751 added, 0 deleted, 0 changed)
OCL=31309
CL=31691
This is meant to be implemented per platform and used by
higher-level debugging libraries.
R=rsc
APPROVED=rsc
DELTA=211 (211 added, 0 deleted, 0 changed)
OCL=31003
CL=31423
- replacement for pretty; app to format a single .go file
printer.go (pkg/go/printer):
- replacement for astprinter.go; implements AST printing
- also replaces pkg/go/ast/format.go for now
cleanups:
- removed/saved away old code
R=r,rsc,iant
DELTA=2833 (1183 added, 1628 deleted, 22 changed)
OCL=30226
CL=30306
extract comment text code out of go/doc/doc.go into comment.go.
no code changes, just rearrangement.
first step so i can write tests.
R=gri
DELTA=633 (318 added, 301 deleted, 14 changed)
OCL=29269
CL=29293
format.go:
- better error handling, indentation, support for defaults,
environments for custom formatters, cleanups (more functionality, less code)
pretty.go:
- better comment printing using format.go
made test script more robust
TBR=r
DELTA=622 (175 added, 305 deleted, 142 changed)
OCL=28956
CL=28956
- one node for array and slice types
- one node for index and slice expressions
- simplified parser, astprinter, and ast.txt
R=r
DELTA=71 (0 added, 43 deleted, 28 changed)
OCL=28768
CL=28768
This also adds a missing 'return' when a malformed URL is passed to it.
R=rsc
APPROVED=rsc
DELTA=30 (13 added, 2 deleted, 15 changed)
OCL=28598
CL=28710
if both types are named, they must be
the same type (arising from the same
declaration).
R=r,gri
DELTA=44 (21 added, 4 deleted, 19 changed)
OCL=28436
CL=28577
- template-driven ast printing now can successfully
reproduce entire Go programs
next steps:
- fine-tuning of output
- print interspersed comments
- cleanup and testing against all Go programs
- replace astprinter
R=r
OCL=28181
CL=28181
- work-around for incorrect import path
- added tmpl root in order to run against a goroot w/o templates
- clarifications
Daily snapshot of syntax-driven formatter. Some progress.
Updated gccgo Makefile.
TBR=r
OCL=28004
CL=28004
if the name contains a metacharacter, use regexp matching;
otherwise require strict equality.
now
godoc flag '.*Var'
can give you all the FooVar functions.
R=gri
DELTA=19 (19 added, 0 deleted, 0 changed)
OCL=27711
CL=27713