1
0
mirror of https://github.com/golang/go synced 2024-11-26 16:46:58 -07:00
Commit Graph

962 Commits

Author SHA1 Message Date
Rob Pike
69baaa9751 move regexp to lib
next cl will update names and add to build

R=rsc
DELTA=1876  (938 added, 938 deleted, 0 changed)
OCL=17149
CL=17166
2008-10-14 19:22:17 -07:00
Russ Cox
4248607ffe simplify comma code per ken's suggestion
R=ken
OCL=17164
CL=17164
2008-10-14 18:47:24 -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
Rob Pike
0b05e91f8b add some tests
fix some bugs in () ordering and rune processing

R=rsc
DELTA=72  (27 added, 5 deleted, 40 changed)
OCL=17147
CL=17147
2008-10-14 17:45:49 -07:00
Russ Cox
82e41cc533 allow trailing comma in braced initialized list
R=ken
OCL=17141
CL=17143
2008-10-14 17:10:39 -07:00
Rob Pike
5933dbda3a delete hack for interface equality now that it supported by the 6g compiler
R=rsc
DELTA=21  (0 added, 21 deleted, 0 changed)
OCL=17123
CL=17136
2008-10-14 16:33:11 -07:00
Rob Pike
75df21ceff implement matching
clean up interface equality hack

still needs more tests; checking in for gccgo testing

R=rsc
DELTA=304  (261 added, 14 deleted, 29 changed)
OCL=17128
CL=17135
2008-10-14 16:32:43 -07:00
Ken Thompson
e2e8aa0ee1 interface equality (strings specifically)
R=r
OCL=17134
CL=17134
2008-10-14 16:10:44 -07:00
Ken Thompson
edb1412c50 interface equality
R=r
OCL=17116
CL=17118
2008-10-14 15:08:23 -07:00
Ken Thompson
1836541566 bug with struct-type { 1 }
R=r
OCL=17096
CL=17096
2008-10-14 12:48:14 -07:00
Ken Thompson
1ea5bc7533 stack allocation for the init function
R=r
OCL=17063
CL=17063
2008-10-13 20:14:09 -07:00
Rob Pike
99c5b2ed4d 6g thinks a struct with one entry yields a composite that is a basic conversion
R=rsc
DELTA=12  (12 added, 0 deleted, 0 changed)
OCL=16989
CL=16998
2008-10-13 12:26:58 -07:00
Rob Pike
e8828dcbe1 add character classes.
allocate into an array for easier scanning and printing.

R=rsc
DELTA=282  (193 added, 44 deleted, 45 changed)
OCL=16955
CL=16955
2008-10-11 16:48:05 -07:00
Rob Pike
0f0648d33c convert from integer indexes to interface variables.
update printing.

R=rsc
DELTA=194  (60 added, 41 deleted, 93 changed)
OCL=16942
CL=16945
2008-10-10 18:42:19 -07:00
Robert Griesemer
b5e0cc7ef5 - added language re: interface compparison using ==, !=
(seems not controversial)

R=r
DELTA=8  (3 added, 2 deleted, 3 changed)
OCL=16940
CL=16940
2008-10-10 16:34:44 -07:00
Russ Cox
900e076d21 handle zeroed interface in ifaceI2I
R=r
OCL=16938
CL=16938
2008-10-10 16:21:50 -07:00
Robert Griesemer
32d00e6cc6 - added missing ';' according to new rules
(no effect on the test, but now parseable)

R=r
OCL=16936
CL=16936
2008-10-10 16:18:01 -07:00
Russ Cox
0adc1db757 until 6g implements it, warn about using int in interface.
R=ken
OCL=16935
CL=16935
2008-10-10 16:14:13 -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
Russ Cox
827dcb86b7 add sys.BUG_intereq to compare interfaces for equality
R=r
OCL=16929
CL=16929
2008-10-10 15:30:32 -07:00
Robert Griesemer
e7c8e78879 - removed extra package clause
R=rsc
DELTA=2  (0 added, 2 deleted, 0 changed)
OCL=16927
CL=16927
2008-10-10 14:50:23 -07:00
Robert Griesemer
57b34617e0 - Fixed bug in spec: PrimaryExpr is too restrictive in most places
(for instance *p was not allowed on the left side of "="). Changed
to Expression everywhere (this is too liberal, UnaryExpr is probably
good enough, but it seems funny, and we need to check semantically
anyway). This matches 6g yacc.
- Write expression syntac recursively to express evaluation order
and precedence syntactically.
- Organized open issues list, folded in stuff from todo.txt which
is now obsolete.

R=r
DELTA=108  (41 added, 52 deleted, 15 changed)
OCL=16903
CL=16910
2008-10-10 12:45:44 -07:00
Rob Pike
41c462c0a1 cat unmatched )
delete unused This() in preparation for removing linking via array indexes

R=rsc
DELTA=26  (2 added, 23 deleted, 1 changed)
OCL=16895
CL=16909
2008-10-10 12:41:43 -07:00
Robert Griesemer
7271e048fc - added missing case for opt. semicolons (labels)
- more precise wording by having an explicit list of cases
- simplified statement list

R=r
DELTA=16  (10 added, 0 deleted, 6 changed)
OCL=16871
CL=16875
2008-10-09 20:05:24 -07:00
Rob Pike
8f5b277cac beginnings of regular expression library.
will move elsewhere when more complete.
parses, does not execute.
no character classes yet.

R=rsc
DELTA=522  (522 added, 0 deleted, 0 changed)
OCL=16863
CL=16874
2008-10-09 19:40:53 -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
bbfe31238b More spec progress:
- language for selectors and array/map indices
- formal description of syntax notation used
- factor out common productions to better show
  symmetries in grammar

R=r
DELTA=113  (77 added, 13 deleted, 23 changed)
OCL=16853
CL=16865
2008-10-09 17:12:09 -07:00
Cary Hull
f960840a0e Adding Mkdir.
R=rsc
APPROVED=rsc
DELTA=21  (21 added, 0 deleted, 0 changed)
OCL=16794
CL=16803
2008-10-09 00:15:37 -07:00
Robert Griesemer
aed247fdb9 - make optional semicolons explicit in grammar in all places
except in statement list, where it is expressed in words
- allow for empty import, const, type, and var decl lists inside ()'s
- fixed grammar for inc/dec statements
- added empty statement as it appears to be accepted by 6g

R=r
DELTA=75  (23 added, 21 deleted, 31 changed)
OCL=16785
CL=16785
2008-10-08 17:05:30 -07:00
Russ Cox
7e241107f1 test of new empty productions
R=gri
DELTA=8  (8 added, 0 deleted, 0 changed)
OCL=16765
CL=16767
2008-10-08 15:33:18 -07:00
Russ Cox
5f1202428b add empty var ( ), type ( ), const ( ) factorings
suggested by rob (could make programs generating
go easier to write).

R=ken
DELTA=13  (13 added, 0 deleted, 0 changed)
OCL=16766
CL=16766
2008-10-08 15:33:09 -07:00
Russ Cox
bbb00c62e1 split all.bash into make.bash and run.bash
R=r
OCL=16720
CL=16728
2008-10-08 09:46:54 -07:00
Russ Cox
103fec0455 add http to lib build
R=r
OCL=16721
CL=16727
2008-10-08 09:46:31 -07:00
Russ Cox
047c6ec6da check $GOROOT before diving into build
R=r
DELTA=6  (6 added, 0 deleted, 0 changed)
OCL=16726
CL=16726
2008-10-08 09:46:20 -07:00
Cary Hull
f4a8db667b Fixes breakage caused by semicolon restriction.
R=rsc
APPROVED=rsc
DELTA=50  (4 added, 0 deleted, 46 changed)
OCL=16707
CL=16725
2008-10-08 09:34:50 -07:00
Russ Cox
b4f8e01acb more interface checks:
- pointer to interface cannot have methods
	- record type names for better runtime error

R=r,ken
DELTA=85  (80 added, 0 deleted, 5 changed)
OCL=16658
CL=16722
2008-10-08 09:21:57 -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
Cary Hull
38c2472609 Unterminated declaration breaks build.
R=rsc
APPROVED=rsc
DELTA=1  (0 added, 0 deleted, 1 changed)
OCL=16688
CL=16690
2008-10-07 17:25:32 -07:00
Robert Griesemer
7abfcd981f - precise scope rules
- forward decls for interface and struct types
- complete & incomplete types
- optional semicolons

R=r
DELTA=216  (95 added, 15 deleted, 106 changed)
OCL=16465
CL=16687
2008-10-07 17:14:30 -07:00
Russ Cox
02d184b303 remove support for *T as an implicit declaration of T
R=ken
OCL=16651
CL=16653
2008-10-07 13:00:10 -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
96da920f1a fix bug:
type T struct
	export type T struct { a int }

was not exporting T

R=ken
OCL=16650
CL=16650
2008-10-07 12:42:57 -07:00
Russ Cox
eb452f4b6e test that mutually recursive interfaces compile
R=r
DELTA=18  (18 added, 0 deleted, 0 changed)
OCL=16639
CL=16647
2008-10-07 12:36:39 -07:00
Russ Cox
d364d28142 implement 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.

now that semicolons are in, uncomment forward declaration
	of interfaces

R=ken
DELTA=285  (124 added, 114 deleted, 47 changed)
OCL=16638
CL=16646
2008-10-07 12:36:30 -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
Rob Pike
7ee60b174d sys.stringtorune doesn't need a length parameter.
R=rsc
DELTA=7  (0 added, 0 deleted, 7 changed)
OCL=16600
CL=16630
2008-10-07 10:03:34 -07:00
Russ Cox
74e2e087e2 change type names to go live at the name, so that
type T struct {
		next *T
	}

and

	type T *struct {
		next T
	}

are valid without needing forward declarations.

add "type T struct" syntax for forward struct declarations.

add "type T interface" syntax, but commented out
	(need to fix semicolons first)

R=ken
DELTA=452  (259 added, 115 deleted, 78 changed)
OCL=16580
CL=16584
2008-10-06 16:44:17 -07:00
Rob Pike
717de79976 change in spec results in non-error
R=gri
DELTA=4  (0 added, 3 deleted, 1 changed)
OCL=16565
CL=16579
2008-10-06 16:27:14 -07:00
Russ Cox
1b257b2bb3 silence gcc warning - initialize two variables
R=ken
OCL=16550
CL=16550
2008-10-06 13:52:23 -07:00