1
0
mirror of https://github.com/golang/go synced 2024-11-26 13:38:20 -07:00
Commit Graph

90 Commits

Author SHA1 Message Date
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
Robert Griesemer
bc13a1a374 first primitive cut at resolving missing imports automatically:
if an import file is missing, the corresponding source
is compiled automatically, if found

R=r
OCL=13990
CL=13990
2008-08-07 19:32:22 -07:00
Robert Griesemer
882ac63885 - implement scanner token stream via channel
- change test_scanner to scan using both methods
- add -pscan flag to Go front-end to choose between conventional
  synchronous or parallel asynchronous scanning

R=r
OCL=13937
CL=13937
2008-08-06 18:57:37 -07:00
Robert Griesemer
333b70bee0 snapshot of today's changes - more semantic tests
R=r
OCL=13932
CL=13932
2008-08-06 17:26:46 -07:00
Robert Griesemer
687f387c0b - added more semantic checks - more to come
- distinguish float/int literals syntactically
- fixed a tracing bug

R=r
OCL=13906
CL=13906
2008-08-05 18:52:37 -07:00
Robert Griesemer
28547615ce - fixed another export bug
- more self-verification code

R=r
OCL=13894
CL=13894
2008-08-05 15:20:58 -07:00
Robert Griesemer
7a799be49a - switch to new export syntax
- deprecate old syntax in this front-end (use -6g for compatibility)

R=r
OCL=13831
CL=13833
2008-08-04 15:37:47 -07:00
Robert Griesemer
997a94294f - import/export cleanup: added comments, removed dead code, re-org structure
R=r
OCL=13816
CL=13816
2008-08-04 13:27:05 -07:00
Robert Griesemer
71d50b8bf9 - more import/export stuff
- use new export syntax

R=r
OCL=13807
CL=13807
2008-08-04 10:19:36 -07:00
Robert Griesemer
c6eb85aecf - simplified handling of primary types (types w/ names which must
be canonicalized upon import)
- missed some exports

R=r
OCL=13733
CL=13733
2008-08-01 14:50:18 -07:00
Robert Griesemer
0abbb8c76b more import/export stuff:
- no need to import/export predeclared types
- fix for receiver types
- cleanups
- added tests to Makefile

R=r
OCL=13728
CL=13730
2008-08-01 13:33:31 -07:00
Robert Griesemer
54c8948f7f - added import/export test cases
R=r
OCL=13723
CL=13723
2008-08-01 12:14:15 -07:00
Robert Griesemer
57fcdcca21 fixed bug in FixExt routine
R=r
OCL=13695
CL=13695
2008-07-31 15:35:25 -07:00
Robert Griesemer
9761a6d069 - backward link from objs to containing scope
(first step towards cleaner package handling)
- check that map, function, and channel vars are pointers

R=r
OCL=13690
CL=13690
2008-07-31 13:35:30 -07:00
Robert Griesemer
0c374e9f89 - fixed a bug w/ exports (wrong package info)
- keep track of type alias (type T1 T0) so we can print the proper type name

R=r
OCL=13688
CL=13688
2008-07-31 10:47:10 -07:00
Robert Griesemer
9fb9e82fa3 - added missing file
R=r
OCL=13681
CL=13681
2008-07-30 21:51:25 -07:00
Robert Griesemer
6dd92ea6cb - fixed import bug (import "...")
- better debugging support
- removed dead code

R=r
OCL=13680
CL=13680
2008-07-30 21:26:15 -07:00
Robert Griesemer
1f46513917 various fixes:
- missing return in import code
- proper propagation of flags to various components
- better error message when source position is missing
- cleanups

R=r
OCL=13676
CL=13676
2008-07-30 17:36:03 -07:00
Robert Griesemer
6acdf3edff - addded interface pretty printer
R=r
OCL=13646
CL=13646
2008-07-30 13:01:28 -07:00
Robert Griesemer
4b0b7d8dfe - import and export code, bug fixes
- almost back to where I was in C++, but now all in Go

R=r
OCL=13627
CL=13627
2008-07-29 19:02:49 -07:00