- converted more of AST and parser to use interfaces and explicit
structs for individual Go constructs (can be replaced now with
interface calls such that the parser becomes AST structure
independent, as suggested by rsc)
- added more tests (find all .go files under GOROOT)
- (temporarily) lost html links for identifiers when generating
html output
- TODO: lots of cleanups
R=r
OCL=25518
CL=25518
- moved Object, Type, Scope out of AST into symboltable
- moved universe into symboltable
- removed dead code
- fixed dependency computation (pretty -d filename.go)
- lots of cleanups
- removed tocken channel connection between parser and scanner
(was cute, but not really needed)
R=r
OCL=24545
CL=24545
using interfaces properly => much cleaner code
- converted tracing code to use 'defer' statement
- next steps: convert rest of ast as well
R=r
OCL=24277
CL=24277
- fine-tuning of ast
- more accurate block pos info (improved printing in some cases)
- collecting local variables and fields
- more work on type checking
- lots of minor tweaks
R=r
OCL=23375
CL=23375
- consolidation of files, cleanup
- more success producing idempotent output for some files with comments
containing tabs
- snapshot of the day
R=r
OCL=22474
CL=22474
- changed tab width to 8 chars by default to make test run properly
- excluded 4 files that are not idempotently printed
- fixed a couple of incorrect file position recordings in parser
- fine-tuned layout engine
- white-space formatting reasonable, but not perfect
- no handling of overlong lines
R=r
To use with smaller tabs: pretty -tabwidth=4 file.go
To use with blanks instead of tabs: pretty -usetabs=0 file.go
OCL=20184
CL=20184
for end of declarations, blocks, parameter lists, etc.
- use extra src positions to more accurately print comments
- fine-tuned low-level printing routine for comments
- added better debugging support
Status:
- comments now appear at the right place (inbetween the right tokens)
- newline control needs improvement (not very hard)
- comment printing disabled for now because pretty is not idempotent
with it; to enable: -comments
R=r
OCL=20079
CL=20079
- implemented elastic tabstops algorithm, now correct and documented
- first cut at printing comments (use -comments flag, disabled for now)
- struct field types are now aligned (using elastic tab stops)
- needs more fine-tuning
* fixed a bug in test script
* added quick smoke test to makefile and invoke it in run.bash
instead of the full test
R=r
OCL=19220
CL=19220
(e.g.: pretty -d pretty.go will print the Makefile dep. rules of the involved
Go files that are not part of the installed library)
- minor fix in pretty printer (tested against ken's test files)
R=r
OCL=17872
CL=17872
- fixed an issue with select
- added all bugs and fixedbugs tests that are syntactically correct to the test suite
- minor cosmetic changes
R=r
OCL=17759
CL=17759
- accepts all Go code (use -s flag)
- complete rewrite of AST, AST building, and printing
(as a result much more compact)
- printing severely screwed up at the moment, but should be
fully working in 1 more day
R=r
DELTA=2118 (514 added, 980 deleted, 624 changed)
OCL=17161
CL=17161