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
Rob Pike
5d30161ca7
move reflection code into final place.
...
this is just a branch.
next cl will update and add to build
R=rsc
DELTA=4528 (2264 added, 2264 deleted, 0 changed)
OCL=17670
CL=17672
2008-10-22 17:12:07 -07:00
Rob Pike
34b8873722
Reflection values.
...
R=rsc
DELTA=206 (79 added, 25 deleted, 102 changed)
OCL=17652
CL=17669
2008-10-22 16:48:17 -07:00
Rob Pike
0061e56196
Add names to types to avoid recursive explosion and to get
...
the right answer when a type name redefines an existing type.
R=rsc
DELTA=133 (53 added, 8 deleted, 72 changed)
OCL=17637
CL=17639
2008-10-22 13:02:43 -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
Rob Pike
fac3dfe638
More reflection code.
...
Beginnings of values.
typestrings are grabbed from the environment.
R=rsc
APPROVED=rsc
DELTA=1046 (952 added, 3 deleted, 91 changed)
OCL=17593
CL=17621
2008-10-22 11:02:56 -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
Rob Pike
265e73ee14
beginnings of reflection values.
...
R=rsc
DELTA=421 (357 added, 17 deleted, 47 changed)
OCL=17388
CL=17401
2008-10-17 18:06:29 -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
Rob Pike
cac904b609
add simple synchronization mechanism.
...
R=rsc
DELTA=25 (19 added, 1 deleted, 5 changed)
OCL=17346
CL=17346
2008-10-17 10:58:34 -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
Rob Pike
060f157dc8
type string parser; now handles all types
...
R=rsc
DELTA=253 (153 added, 81 deleted, 19 changed)
OCL=17331
CL=17331
2008-10-16 18:09:38 -07:00
Rob Pike
32b84d5a94
parsing of type strings. still missing: func, struct, interface, chan
...
R=rsc
DELTA=366 (337 added, 7 deleted, 22 changed)
OCL=17321
CL=17324
2008-10-16 16:38: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
Rob Pike
082f116b2d
Change file name from "print" to "tostring" and update the rest.
...
R=rsc
DELTA=225 (109 added, 107 deleted, 9 changed)
OCL=17294
CL=17294
2008-10-16 11:19:48 -07:00
Rob Pike
e5c114eff8
convert print to ToString.
...
file name change in next round.
R=rsc
DELTA=71 (18 added, 19 deleted, 34 changed)
OCL=17291
CL=17293
2008-10-16 11:12:02 -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
Rob Pike
693a31b88e
reflection type structure. no parsing etc. yet.
...
main is a simple tester outside the Makefile.
R=rsc
DELTA=455 (455 added, 0 deleted, 0 changed)
OCL=17235
CL=17242
2008-10-15 17:11:51 -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
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
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
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
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
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
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