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
(this code doesn't match the existing language at this point,
but it's a large code base which compiles - will eventually go
away)
- enable compilation of it again in run.bash
R=r
DELTA=1147 (534 added, 311 deleted, 302 changed)
OCL=22176
CL=22176
(will help produce html output where we can click on identifiers and
get to the declaration)
- snapshot before changing back to old new
R=r
OCL=22159
CL=22159
Preparations to track identifiers and declarations so that we can
generate good html links as pretty printer output:
- brought over old code and adjusted it
- initial hookups, nothing really running yet
R=r
OCL=21383
CL=21383
- fixed html tag generation
- simplified html escaping machinery
(not 100% correct for strings yet)
- can now produce the first mostly correct formatted html pages from source
with (fake) links: e.g. pretty -html srcfile.go > srcfile.html
R=r
OCL=20915
CL=20915
mark and sweep, stop the world garbage collector
(intermediate step in the way to ref counting).
can run pretty with an explicit gc after each file.
R=r
DELTA=502 (346 added, 143 deleted, 13 changed)
OCL=20630
CL=20635
can run peano 10 in 100 MB (instead of 1+ GB) of memory
when linking against this.
can run peano 11 in 1 GB of memory now.
R=r
DELTA=100 (44 added, 44 deleted, 12 changed)
OCL=20504
CL=20553
- first cut at html writer (will do html escaping, html tag production)
- first cut at generating basic html output via pretty
- some cleanups
R=r
OCL=20550
CL=20550
- by default consider extra newlines in src for better formatting
- additional flags for control (-newlines, -maxnewlines, -optsemicolons)
- don't print ()'s around single anonymous result types
Status: Comparing the output of pretty with the input for larger files
shows mostly whitespace/formatting differences, which is what is desired.
TODO:
- Handling of overlong lines
- some esoteric cases which look funny
R=r
OCL=20293
CL=20293
- 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