Robert Griesemer
4137f02bb7
- permit ()'s in types (TODO: update spec)
...
- accept embedded interfaces in interfaces
- missing: output incorrect, but at least all source code is accepted again
R=r
OCL=25223
CL=25223
2009-02-19 16:47:58 -08:00
Robert Griesemer
18ed7e690a
- accept new composite literal syntax
...
- remove all parsing heuristics
- as a result, accept a wider syntax, but parser is simpler
R=r
OCL=25029
CL=25029
2009-02-13 16:27:53 -08:00
Robert Griesemer
127526649f
- vector package (identical to array except for names)
...
- updated some file (but not all - left array package in place for now)
R=rsc
DELTA=530 (483 added, 0 deleted, 47 changed)
OCL=25025
CL=25025
2009-02-13 15:07:56 -08:00
Russ Cox
9f8f2e6130
convert composite literals from { } to ( ).
...
only non-trivial changes are in
convlit1.go
golden.out
R=gri
OCL=25019
CL=25024
2009-02-13 14:48:32 -08:00
Robert Griesemer
8e7873672e
- fixed bugs related to the empty statement
...
(now in sync with the spec and with 6g)
- fixed incorrect logging statement in gds
R=r
OCL=24970
CL=24970
2009-02-12 16:06:21 -08:00
Russ Cox
49e2087848
insert type assertions when narrowing.
...
R=r
OCL=24349
CL=24913
2009-02-11 17:55:16 -08:00
Robert Griesemer
e08cc15251
Some real GDS functionality:
...
- directory listings w/ working links
- some links working in source code (most don't do the right thing yet)
- use of logging
R=r
OCL=24728
CL=24728
2009-02-09 21:05:14 -08:00
Robert Griesemer
9acd2a9731
snapshot:
...
- first stab at a Go Documentation Server (gds)
- various fixes to make initial version of gds work
R=r
OCL=24588
CL=24588
2009-02-06 15:26:30 -08:00
Robert Griesemer
187cf78a7c
- preparation for setting up types
...
- 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
2009-02-06 11:10:25 -08:00
Robert Griesemer
89fc8465a8
- caseify parser functions (all but a few should not be exported)
...
- more elegant tracing code
- removed some dead code, cleanups
R=r
OCL=24452
CL=24452
2009-02-05 14:22:09 -08:00
Robert Griesemer
5d571cc67e
snapshot:
...
- ast statements now use interfaces
- deleted old (now unused) code
R=r
OCL=24422
CL=24422
2009-02-05 11:05:02 -08:00
Robert Griesemer
1595a1947c
today's snapshot: steps towards using interfaces for statements in ast
...
R=r
OCL=24380
CL=24380
2009-02-04 18:28:41 -08:00
Robert Griesemer
c048ee21ad
- converted expr representation of ast into a new representation
...
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
2009-02-03 17:44:01 -08:00
Robert Griesemer
b67603dfef
- added experimental flag '-def': will print (not parse!)
...
'def' instead of 'func', 'const', or 'type'
R=r
OCL=24092
CL=24094
2009-02-02 11:51:07 -08:00
Robert Griesemer
6dd93bbfbc
- changed pretty parser to parse and print new function type syntax
...
- added more test cases
- fixed a bug in test script which prevented errors to show up...
R=r
OCL=23832
CL=23974
2009-01-30 15:31:04 -08:00
Robert Griesemer
699721a0ea
- removed obsolete files from repository
...
(most of this has been integrated into pretty,
the rest has been archived).
R=r
OCL=23842
CL=23842
2009-01-29 17:00:18 -08:00
Robert Griesemer
eecce5f130
- make test work with 6g
...
R=r
OCL=23821
CL=23823
2009-01-29 15:16:22 -08:00
Robert Griesemer
3d4d5ad04c
defer statement
...
R=r
OCL=23542
CL=23542
2009-01-26 17:48:27 -08:00
Robert Griesemer
88da39feea
- snapshot before making larger change
...
R=r
OCL=23403
CL=23403
2009-01-23 13:50:14 -08:00
Robert Griesemer
9e3b0f444a
snapshot before making more changes:
...
- 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
2009-01-23 09:44:01 -08:00
Robert Griesemer
96c20204a7
- updated pretty (removed "export")
...
R=r
OCL=23134
CL=23134
2009-01-20 15:22:33 -08:00
Russ Cox
839a68469b
delete export
...
TBR=r
OCL=23121
CL=23127
2009-01-20 14:40:40 -08:00
Robert Griesemer
626d25065d
casify struct fields
...
R=r
OCL=22998
CL=22998
2009-01-16 15:31:34 -08:00
Russ Cox
360962420c
casify, cleanup sys
...
R=r
OCL=22978
CL=22984
2009-01-16 14:58:14 -08:00
Robert Griesemer
2527bba993
casify pretty
...
R=r
OCL=22899
CL=22899
2009-01-15 17:16:41 -08:00
Robert Griesemer
2ab55776b5
- fixed untab.go to compile again
...
R=r
OCL=22871
CL=22871
2009-01-15 15:14:19 -08:00
Robert Griesemer
aa1264472e
- added mechanism to detect capitalization issues
...
Use: pretty -naming files
R=r
OCL=22859
CL=22859
2009-01-15 14:19:35 -08:00
Rob Pike
61f3302044
printf->Printf etc.
...
the raw fmt routines will be another, smaller but subtler pass.
R=rsc
DELTA=157 (0 added, 0 deleted, 157 changed)
OCL=22851
CL=22851
2009-01-15 13:48:11 -08:00
Robert Griesemer
a0c709bef8
- use new letter definition for pretty
...
- fixed a bug with error column reporting in the presence of utf-8 chars
- fixed an assertion failure
R=r
OCL=22762
CL=22762
2009-01-14 15:19:34 -08:00
Robert Griesemer
ba556a8818
- removed an unnecessary field from AST.Expr nodes
...
R=r
OCL=22601
CL=22601
2009-01-12 17:44:10 -08:00
Robert Griesemer
0a0ee89f8b
- remove obsolete files (missed before)
...
R=r
OCL=22475
CL=22475
2009-01-09 16:30:00 -08:00
Robert Griesemer
c620dd9759
- preparation to add type info to ast
...
- 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
2009-01-09 16:28:09 -08:00
Rob Pike
c45d2a767c
simplify flag interface. no more BVal etc. you just get a pointer.
...
fixed everything except the tutorial.
R=rsc
DELTA=404 (94 added, 139 deleted, 171 changed)
OCL=22414
CL=22422
2009-01-09 13:42:46 -08:00
Robert Griesemer
d54abad06f
- first (global) idents with proper links to declarations in html output
...
(e.g. pretty -html source.go > source.html; then look at the html.file in a browser)
R=r
OCL=22331
CL=22331
2009-01-08 14:43:56 -08:00
Robert Griesemer
4dc3d74a36
- fixed a bug with building right-recursive trees iteratively
...
- moving scope handling into parser (simpler)
- snapshot of work today so far
R=r
OCL=22301
CL=22301
2009-01-08 12:04:00 -08:00
Robert Griesemer
cb13c4d552
- more steps towards tracking idents in scopes
...
- snapshot of today
R=r
OCL=22247
CL=22247
2009-01-07 16:54:03 -08:00
Robert Griesemer
a3ddf4cfd1
- enabling tracking of declarations
...
- removed dead code
- snapshot before making a lareger structural change
R=r
OCL=22226
CL=22226
2009-01-07 13:58:56 -08:00
Robert Griesemer
5bd3c3b755
- support for [...] parsing and pretty printing
...
R=r
OCL=22185
CL=22185
2009-01-06 17:39:25 -08:00
Robert Griesemer
af065a0c77
- make code in gosrc compile again, check in all pending changes
...
(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
2009-01-06 16:26:45 -08:00
Robert Griesemer
e286260686
- fix parse heuristic: make(x) must accept a type for x
...
R=r
OCL=22171
CL=22171
2009-01-06 15:30:26 -08:00
Robert Griesemer
9662e7b2db
- adjusted pretty to use old new, make
...
R=r
OCL=22160
CL=22160
2009-01-06 15:01:04 -08:00
Robert Griesemer
215eb7eb7f
- steps towards augmenting ast with declaration info
...
(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
2009-01-06 14:54:18 -08:00
Ian Lance Taylor
4f3506b4ee
Update for source code changes.
...
R=gri
DELTA=15 (13 added, 1 deleted, 1 changed)
OCL=21632
CL=21639
2008-12-19 14:32:00 -08:00
Russ Cox
08ca30bbfa
change *map to map; *chan to chan; new(T) to new(*T)
...
fix bugs left over from *[] to [] conversion.
TBR=r
OCL=21576
CL=21581
2008-12-19 03:05:37 -08:00
Robert Griesemer
e9741e7dbd
fix syntax error (syntax accepted by 6g, but not by pretty printer)
...
R=r
OCL=21385
CL=21385
2008-12-16 18:08:16 -08:00
Robert Griesemer
003f0ad6af
- added missing file
...
R=r
OCL=21384
CL=21384
2008-12-16 18:03:18 -08:00
Robert Griesemer
b86359073e
Snapshot.
...
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
2008-12-16 18:02:22 -08:00
Robert Griesemer
c9859e7bc6
- support for range clauses
...
R=r
OCL=21030
CL=21030
2008-12-11 17:45:45 -08:00
Robert Griesemer
4873bb217c
Snapshot:
...
- 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
2008-12-10 13:51:19 -08:00
Robert Griesemer
4ad804679d
- snapshot if current state
...
- fix pretty printer to work with new tabwriter interface
R=r
OCL=20854
CL=20854
2008-12-09 15:29:15 -08:00
Robert Griesemer
77aaf4f3a2
- adjusted const decl grammar to reflect spec changes
...
- 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
2008-12-04 18:18:41 -08:00
Robert Griesemer
2dba9a66e2
- fixed a bug with import printing (missing separator between alias and string)
...
- rewrote declaration printing - was unreadable before
- no semicolons after closing "}" for types
R=r
OCL=20379
CL=20379
2008-12-03 15:47:30 -08:00
Robert Griesemer
acfd1fd443
- oversight: extra allow source-level line breaks inside statement lists
...
- fixed printing of empty structs/interfaces
- enable two more tests
R=r
OCL=20296
CL=20296
2008-12-02 17:01:31 -08:00
Robert Griesemer
cb67a8324b
- fine-tuning of white space
...
- 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
2008-12-02 16:49:44 -08:00
Ian Lance Taylor
748287d49e
The flag and fmt libraries are now available from gccgo by
...
default. Fix PRETTY_OBJS to include compilation.o rather than
compilation.go.
R=gri
DELTA=10 (0 added, 8 deleted, 2 changed)
OCL=20248
CL=20257
2008-12-02 12:52:47 -08:00
Robert Griesemer
37bdd3c3f5
- enabled comment printing by default
...
- 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
2008-12-01 17:20:59 -08:00
Robert Griesemer
8bbd873c34
- better comment formatting, starting to look good
...
- comment printing still disabled by default because idempotency test fails
- whitespace control better but not perfect yet
- snapshot before making some heuristics changes
R=r
OCL=20151
CL=20151
2008-12-01 14:03:20 -08:00
Robert Griesemer
d79f687ed8
- collect addition source position information in parser
...
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
2008-11-26 17:07:45 -08:00
Robert Griesemer
732b53a1fe
- snapshot of state before trying yet another, hopefully better working
...
way to integrate comments into the generated output
- various simplificatins and cleanups throughout
R=r
OCL=20062
CL=20062
2008-11-26 13:23:26 -08:00
Robert Griesemer
b1297aa04f
- move error handling out of scanner
...
- use more of the existing library code
R=r
OCL=19957
CL=19959
2008-11-24 18:24:21 -08:00
Robert Griesemer
130e6f42f1
- implemented arbitrary padding char for tabwriter
...
- implemented right-to-left alignment (numerical results)
- better comments and error handling
- added more tests
- updated dependent files
R=r
DELTA=232 (175 added, 11 deleted, 46 changed)
OCL=19761
CL=19780
2008-11-21 09:35:49 -08:00
Robert Griesemer
01b44bbfc8
- move tabwriter into library
...
- added preliminary tests (more to do)
- renamed type from TabWriter -> Writer
- adjusted my code where necessary
R=r
DELTA=825 (474 added, 346 deleted, 5 changed)
OCL=19744
CL=19753
2008-11-20 17:39:41 -08:00
Robert Griesemer
0998eaf4a1
- correct error handling throughout
...
- documentation, cleanups
- more options
R=r
OCL=19736
CL=19736
2008-11-20 16:26:43 -08:00
Robert Griesemer
fcdcf33a71
- array-ify code, remove local implementation
...
R=r
OCL=19648
CL=19651
2008-11-19 16:49:50 -08:00
Robert Griesemer
34533f06eb
- support for alignment via tabs instead of blanks
...
- exclude a test due to syntax errors
R=r
OCL=19563
CL=19565
2008-11-18 19:25:43 -08:00
Robert Griesemer
127c65b400
- untab app (snapshot - not quite complete)
...
R=r
OCL=19558
CL=19558
2008-11-18 18:44:17 -08:00
Robert Griesemer
654bc2badc
- factored out tabwriter a separate writer filter
...
(to be moved into std lib eventually)
- rewrote tabwriter to use byte buffers instead of strings
(byte buffers to be moved into stdlib eventually)
- support for recent syntax changes
- no space printed after function name and before function parameters
- comments still disabled due to a known bug
R=r
OCL=19430
CL=19430
2008-11-17 19:58:52 -08:00
Robert Griesemer
22e0e1b049
- better comment classification
...
- related cleanups
R=r
OCL=19227
CL=19227
2008-11-13 19:06:57 -08:00
Robert Griesemer
3c2f0ae132
* pretty printing snapshot: towards printing comments nicely
...
- 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
2008-11-13 17:50:46 -08:00
Robert Griesemer
2a58e7d7a0
more work on elastic tabs:
...
- new code enabled, but no comments printed yet (so the effect
of the elastic tabs is not seen yet)
TBR=r
DELTA=200 (93 added, 69 deleted, 38 changed)
OCL=18951
CL=18951
2008-11-10 17:56:46 -08:00
Robert Griesemer
a3b4a3c29d
- steps towards "flexible tab stops" simulation in pretty
...
printing output
- not yet enabled
R=r
OCL=18842
CL=18842
2008-11-07 18:30:58 -08:00
Robert Griesemer
b3c983f3a0
- fixed typo in parser.go
...
- re-enabled bug118.go for pretty
R=r
OCL=18604
CL=18604
2008-11-05 16:05:36 -08:00
Robert Griesemer
11a3f759fd
- temporarily excluding bug118.go, causing pretty trouble
...
R=r
OCL=18602
CL=18602
2008-11-05 15:55:51 -08:00
Robert Griesemer
17596948e3
get rid of bignum leftovers
...
R=r
OCL=18475
CL=18475
2008-11-04 14:08:47 -08:00
Robert Griesemer
e2eccf3bd0
install bignum as library
...
R=r
DELTA=3501 (1752 added, 1749 deleted, 0 changed)
OCL=18460
CL=18471
2008-11-04 13:55:18 -08:00
Robert Griesemer
e2fe2f3f23
- better support for string conversions
...
- removed trailing tabs
R=r
OCL=18458
CL=18458
2008-11-04 11:37:19 -08:00
Robert Griesemer
7cd11c1c09
- completed integer support (some logical functions missing)
...
- completed rational support
- better documentation
- more tests
- cleanups
R=r
OCL=18438
CL=18438
2008-11-04 09:33:15 -08:00
Robert Griesemer
78b0013a07
- changed general div/mod implementation to a faster algorithm
...
(operates on 30bit values at a time instead of 20bit values)
- refactored and cleaned up lots of code
- more tests
- close to check-in as complete library
R=r
OCL=18326
CL=18326
2008-11-03 09:21:10 -08:00
Robert Griesemer
db27d309d1
- gcd, exponentiation, population count
...
- more rational numbers stuff
- more tests
R=r
OCL=18295
CL=18295
2008-10-31 16:58:56 -07:00
Robert Griesemer
42ae5270d8
- handle field tags in pretty printer
...
R=r
OCL=18264
CL=18264
2008-10-31 14:27:34 -07:00
Robert Griesemer
00dc6e9678
- fixed another test (arithmetic vs. logic shift bug)
...
R=r
OCL=18235
CL=18237
2008-10-31 10:52:59 -07:00
Robert Griesemer
afad827255
- div and mod (arbitrary precision)
...
- more tests
- some global renames
R=r
OCL=18219
CL=18219
2008-10-30 23:37:34 -07:00
Robert Griesemer
7112dc1db7
- implemented Shr
...
- removed shift work-arounds (6g code appears to work now)
- made similar routines more regular in structure
- more tests
R=r
OCL=18102
CL=18102
2008-10-29 22:05:42 -07:00
Robert Griesemer
276ffd297d
- added shl operation, extra tests
...
- fixed code so it works with any base between 9 and 64
- work-around for 6g shift problems in various places
R=r
OCL=18080
CL=18080
2008-10-29 16:48:53 -07:00
Robert Griesemer
0ed4576c6a
- update test.sh (caused an error since src/pkg dir is empty now)
...
R=r
OCL=17987
CL=17987
2008-10-28 20:20:55 -07:00
Robert Griesemer
379b5a3921
- steps towards implementation of div and mod
...
- string conversion in different bases
- tracked down a 6g bug, use work-around for now
R=r
OCL=17981
CL=17981
2008-10-28 18:42:26 -07:00
Robert Griesemer
1daad03545
- bug fixes, cleanups
...
- integer string conversion
R=r
OCL=17923
CL=17923
2008-10-27 17:57:31 -07:00
Robert Griesemer
2e777b44b8
- created staging area for getting bignum package up-to-speed again,
...
now using up-to-date language features
- moved old code away from pkg (defunct anyway because of language changes)
R=r
OCL=17916
CL=17916
2008-10-27 15:44:32 -07:00
Robert Griesemer
eba73552d2
- added simple facility to print Makefile dependency rules given a Go source file
...
(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
2008-10-26 21:32:30 -07:00
Ken Thompson
b379d54dea
another step toward interface subtypes
...
put explicit ./ on some runtime tests
R=r
OCL=17839
CL=17839
2008-10-24 20:14:28 -07:00
Robert Griesemer
63ed2b710b
- missing file
...
R=r
OCL=17813
CL=17813
2008-10-24 14:08:01 -07:00
Robert Griesemer
cec64a2dd5
- some factoring of scan/parse phase so we can attach other functionality
...
easily (for instance import dependency extraction)
- support for new "..." syntax
- minor cleanup
R=r
OCL=17811
CL=17811
2008-10-24 14:04:54 -07:00
Robert Griesemer
816c1cefff
- expanded parsing heuristics to deal with new(T, ...)
...
- 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
2008-10-23 17:56:54 -07:00
Robert Griesemer
79985fa569
- exclude newfn.go from tests - cannot be parsed syntactically alone
...
in general
R=rsc
DELTA=2 (1 added, 0 deleted, 1 changed)
OCL=17624
CL=17624
2008-10-22 11:27:18 -07:00
Robert Griesemer
71d6cda6b2
- remove inconsistent directory from tests
...
R=rsc
DELTA=1 (0 added, 1 deleted, 0 changed)
OCL=17514
CL=17514
2008-10-20 17:37:48 -07:00
Robert Griesemer
baac04b518
enable tests that verify that pretty-printed code can be compiled with 6g again
...
R=r
OCL=17510
CL=17510
2008-10-20 17:13:02 -07:00
Robert Griesemer
9d20c85ae9
- fixed missing parens in some cases of unary expressions
...
- added validation test verifying that pretty output compiles with 6g again (disabled at the moment)
- replaced another recursive function with an interative solution
R=r
OCL=17505
CL=17505
2008-10-20 16:44:03 -07:00
Robert Griesemer
5d0e5a7867
- use stringtorune library function for faster rune scanning
...
- converted 2 right-recursive parsing functions into iterative versions
- renamed node.go -> ast.go (clearer)
R=r
OCL=17496
CL=17498
2008-10-20 15:03:40 -07:00
Robert Griesemer
a11d5aecb8
- removed double-declaration of len()
...
R=r
OCL=17463
CL=17463
2008-10-20 12:51:18 -07:00
Robert Griesemer
6440c59e22
- removed need for lhs field in stat node
...
- as a result deleted some more code
R=r
OCL=17449
CL=17449
2008-10-20 10:01:34 -07:00
Robert Griesemer
52e9080d56
- simplified parsing of composite literals and slices by
...
treating ":" as lowest-level binary operator
- more precise error message for composites
- added flag -columns (false) - when set, prints precise error column
- a few more tests
R=r
OCL=17428
CL=17428
2008-10-18 20:20:30 -07:00
Robert Griesemer
e45eb60657
Added mechanism for very precise self-testing:
...
- in selftest mode (-t) interpret comments of the form /* ERROR */ and /* SYNC */
and validate reported errors with the error markings in a file
- added initial selftest.go file
Also:
- fixed an issue with empty blocks
- generally report better error messages
- added many more tests to the test script (essentially all .go programs which
have no syntax errors)
R=r
OCL=17426
CL=17426
2008-10-18 16:42:25 -07:00
Robert Griesemer
071e963e0e
- fixed bug that wasn't caught by 6g (but by gccgo)
...
R=r
DELTA=1 (0 added, 0 deleted, 1 changed)
OCL=17380
CL=17380
2008-10-17 16:27:49 -07:00
Robert Griesemer
f39b518bcb
- fixed a couple of corner cases (empty statements, empty composites)
...
- more robust printing in presence of errors
- fixed incorrect printing of function literals
R=r
OCL=17378
CL=17378
2008-10-17 16:19:31 -07:00
Robert Griesemer
61d9a3c3b0
- stronger syntax checks
...
- fixed a bug with non-eof terminated //-style comments
- collecting comments
- first experiments with reproducing comments
(works but not very pretty, disabled for now)
- idempotent for all correct .go files we have checked in
R=r
OCL=17333
CL=17333
2008-10-16 23:30:42 -07:00
Robert Griesemer
c4f9f369a6
- added test script
...
- fixed a couple of printing bugs
status: parses, reproduces, and idempotently reproduces all correct .go files
R=r
OCL=17332
CL=17332
2008-10-16 19:24:33 -07:00
Robert Griesemer
bc641d1e9c
- more robust TokenString implementation
...
R=r
OCL=17319
CL=17319
2008-10-16 15:28:36 -07:00
Robert Griesemer
3c9b817257
snapshot:
...
- typeguards, var decls, several printing bug fixed
- now fully idempotent on many files (which are accepted by 6g afterwards)
- still some detail issues
R=r
OCL=17310
CL=17310
2008-10-16 14:25:23 -07:00
Robert Griesemer
b705ac6cf5
- composites, receivers, various add. checks
...
R=r
OCL=17295
CL=17295
2008-10-16 12:16:50 -07:00
Robert Griesemer
a09b7fdd6c
snapshot:
...
- fallthrough stat, label decls
- improved printing layout
R=r
OCL=17283
CL=17283
2008-10-16 10:16:59 -07:00
Robert Griesemer
237eea4ea5
- updated makefile for gccgo
...
R=r
OCL=17243
CL=17245
2008-10-15 17:13:00 -07:00
Robert Griesemer
6b49713df5
snapshot of pretty printer:
...
- almost there, receivers, labels, composites, comments are not yet printed
- runs through 18KLOC of Go code and prints it again
R=r
OCL=17237
CL=17237
2008-10-15 17:06:28 -07:00
Robert Griesemer
82fbbdfc7d
snapshot
...
- fixed expression and statement printing
- missing: declarations, comments
R=r
OCL=17207
CL=17207
2008-10-15 11:48:18 -07:00
Robert Griesemer
7c3a2c47b0
- snapshot of pretty printer work
...
- 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
2008-10-14 18:14:01 -07:00
Robert Griesemer
89319cfbf9
- implemented heuristic for composite literals starting with a type name:
...
if in a if, for, or switch header, must be parenthesized
- implemented string concatenation
- simplified a lot of code
- added many more tests: can now parse all *.go files I got my hands on
- printing output currently broken in some cases, use with -s (silent) option
R=r
OCL=16932
CL=16934
2008-10-10 16:03:32 -07:00
Robert Griesemer
583dac04e3
- more cleanups (simpler code for optional semi's, bug fixes)
...
R=r
OCL=16869
CL=16869
2008-10-09 18:03:16 -07:00
Robert Griesemer
638233a7d6
- don't allow empty decl lists (e.g. const ())
...
R=r
OCL=16698
CL=16698
2008-10-07 18:30:08 -07:00
Robert Griesemer
44dffd92fc
- accept new semicolon syntax (at the moment,
...
the parser accepts a bit more then it should)
R=r
OCL=16694
CL=16694
2008-10-07 17:57:19 -07:00
Russ Cox
e6cd1e445b
remove uses of *T as an implicit forward declaration of T
...
R=gri,r
OCL=16648
CL=16652
2008-10-07 12:59:54 -07:00
Russ Cox
983f06bdb6
update code to follow new semicolon rules:
...
* 1. all statements and declarations are terminated by semicolons
* 2. semicolons can be omitted at top level.
* 3. semicolons can be omitted before and after the closing ) or }
* on a list of statements or declarations.
/home/rsc/bin/addsemi and then diff+tweak.
R=r,gri
OCL=16620
CL=16643
2008-10-07 12:31:31 -07:00
Robert Griesemer
4fb6064c11
- fixed Makefile, added more tests
...
- fixed parsing of parameter lists (sigh)
R=r
DELTA=48 (22 added, 7 deleted, 19 changed)
OCL=16319
CL=16321
2008-10-01 14:31:44 -07:00
Robert Griesemer
a6400dd448
more fine-tuning of ;'s
...
R=r
OCL=16274
CL=16274
2008-09-30 19:31:27 -07:00
Robert Griesemer
6349d38ebc
- fixed semicolon handling in pretty printer
...
- some scanner cleanup
- new pretty-printed code can be compiled again (for some files)
R=r
OCL=16272
CL=16272
2008-09-30 18:50:29 -07:00
Robert Griesemer
bf855f5a94
- allow for embeded types in fields, and parameter lists w/o parameter names
...
- temporary work-around for 6g bug
R=r
OCL=16052
CL=16052
2008-09-27 17:42:18 -07:00
Robert Griesemer
3548350d3e
Snapshot.
...
Added support for function literals, composite literals.
Bug fixes.
R=r
OCL=15911
CL=15911
2008-09-25 17:20:39 -07:00
Robert Griesemer
8415280699
- more missing constructs added
...
- removed excessive ";"'s
- no ()'s around expressions where not needed
- parser.go now reproduced and parseable again
R=r
OCL=15881
CL=15881
2008-09-25 15:14:26 -07:00
Robert Griesemer
c51195386e
snapshot: more pretty printer stuff
...
R=r
OCL=15863
CL=15863
2008-09-25 11:50:34 -07:00
Robert Griesemer
2a19d7dc42
- added names to result signatures to make it compile with gccgo
...
- adjusted the makefile to explicitly compile flag.go and fmt.go for gccgo
R=r
OCL=15822
CL=15822
2008-09-24 22:01:52 -07:00
Robert Griesemer
c5a29a6dd4
- more ast buidling and printing
...
- almost complete language reproduced
R=r
OCL=15801
CL=15801
2008-09-24 15:50:28 -07:00
Robert Griesemer
83267dce11
- added initial formatting: indentation
...
- more AST nodes built and printed
R=r
OCL=15735
CL=15735
2008-09-23 18:34:17 -07:00
Robert Griesemer
09bed25621
- snapshot of pretty printer status
...
- parts of AST built and printed
- no formatting yet
R=r
OCL=15727
CL=15727
2008-09-23 16:40:12 -07:00
Robert Griesemer
b390608636
- added gccgo makefile
...
R=r
OCL=15693
CL=15695
2008-09-23 11:17:44 -07:00
Robert Griesemer
c13c03c261
- first cut at building and printing AST
...
R=r
OCL=15675
CL=15675
2008-09-22 18:26:12 -07:00
Robert Griesemer
d910e90edd
- heuristics for parsing composite literals in some cases
...
- fixed result parsing of function types
R=r
OCL=15585
CL=15585
2008-09-19 18:06:53 -07:00
Robert Griesemer
bf04eefddf
- simplified parser by better factoring
...
R=r
OCL=15539
CL=15542
2008-09-19 12:12:28 -07:00
Robert Griesemer
26adb31c30
- fix for out-of-bounds error found by rsc
...
- removed tests that may have wrong Go code from Makefile
R=r
OCL=15532
CL=15532
2008-09-19 10:56:35 -07:00
Robert Griesemer
6e08991eba
- fixed another parser bug, now correctly parse more tests
...
R=r
OCL=15518
CL=15518
2008-09-18 23:30:32 -07:00
Robert Griesemer
2b70c6add3
- fixed old test cases with wrong syntax
...
- added more test cases to Makefile
- fixed another parser issue (possibly a 6g bug - to be tracked down)
R=r
OCL=15516
CL=15516
2008-09-18 23:09:07 -07:00
Robert Griesemer
a1ee6804dd
- fixed bug which prevented parser.go from compiling
...
(typo in ptr decl lead to an unresolved forward declaration)
- fixed parser bugs
- fixed Makefile
- now successfully parses most code
Issues:
- composite literals (cannot be identified easily from syntax alone)
- new(T, ...) (cannot be identified easily from syntax alone since
new is not a keyword and thus could be a different function then
the allocation function at which point "new((x + y))" is legal,
but the inner "(x" looks like the beginning of a function type)
R=r
OCL=15515
CL=15515
2008-09-18 22:53:54 -07:00
Robert Griesemer
81d7c51837
First cut at a Go pretty printer:
...
- code scavenged from Go-in-Go front-end (will merge back)
- using "symbol-table" free parsing to build AST
- no printing yet
R=r
OCL=15504
CL=15504
2008-09-18 16:58:37 -07:00
Robert Griesemer
119324d785
- updated printing of chan types
...
R=r
OCL=15448
CL=15448
2008-09-17 14:26:01 -07:00
Robert Griesemer
a456463891
- changed my scanner/parser to accept new channel syntax
...
R=r
OCL=15439
CL=15439
2008-09-17 13:05:39 -07:00
Robert Griesemer
e1a9b6ee77
- updated code to work again with latest 6g version
...
R=r
OCL=15235
CL=15235
2008-09-12 12:09:43 -07:00
Robert Griesemer
0ba1db7475
- fixed missing return issues
...
R=r
OCL=15168
CL=15168
2008-09-11 15:38:22 -07:00
Robert Griesemer
478090851b
- adjust my code and tests to new function syntax
...
R=r
OCL=14939
CL=14941
2008-09-08 13:26:52 -07:00
Robert Griesemer
30aa83ca6e
- adjusted my submitted code to work with latest compiler changes
...
R=r
OCL=14734
CL=14734
2008-09-02 17:26:00 -07:00
Robert Griesemer
683ded80c9
- changed go-in-go parser to require ()'s for panic and print
...
- adjusted much of the existing go code
- missing: tests
R=r
DELTA=229 (1 added, 17 deleted, 211 changed)
OCL=14103
CL=14103
2008-08-11 21:20:42 -07:00
Robert Griesemer
58ba20b5a2
- allow reserved words as field and method names
...
R=r
OCL=14102
CL=14102
2008-08-11 20:40:37 -07:00
Robert Griesemer
40c93a5238
- experiments with forward-declaring types of non-imported packages
...
- adjusted switch syntax (no repeated case: case: anymore)
- enabled some constant expressions that work now
R=r
OCL=14098
CL=14098
2008-08-11 18:44:41 -07:00
Robert Griesemer
c7fb27f6e4
- more steps towards automatic recursive compilation of dependencies
...
- make forward declarations of types match 6g
- better factoring
R=r
OCL=14059
CL=14059
2008-08-11 09:45:40 -07:00