pulumi/pkg/tokens
joeduffy 69b23ca2ea Implement structured token binding
This change fixes a whole host of issues with our current token binding
logic.  There are two primary aspects of this change:

First, the prior token syntax was ambiguous, due to our choice of
delimiter characters.  For instance, "/" could be used both as a module
member delimiter, in addition to being a valid character for sub-modules.
The result is that we could not look at a token and know for certain
which kind it is.  There was also some annoyance with "." being the
delimiter for class members in addition to being the leading character
for special names like ".this", ".super", and ".ctor".  Now, we just use
":" as the delimiter character for everything.  The result is unambiguous.

Second, the simplistic token table lookup really doesn't work.  This is
for three reasons: 1) decorated types like arrays, maps, pointers, and
functions shouldn't need token lookup in the classical sense; 2) largely
because of decorated naming, the mapping of token pieces to symbolic
information isn't straightforward and requires parsing; 3) default modules
need to be expanded and the old method only worked for simple cases and,
in particular, would not work when combined with decorated names.
2017-02-08 14:10:16 -08:00
..
constants.go Begin tracking graph dependencies 2017-01-31 17:42:06 -08:00
decors.go Fix up a bunch of golint errors 2017-01-27 15:42:39 -08:00
decors_test.go Add a crazy recursive parsing test...and fix some bugs 2017-01-24 05:25:08 -08:00
names.go Dump eval state afterwards; also rename a few things 2017-01-28 10:51:30 -08:00
names_test.go Run class and module initializers 2017-01-27 14:47:26 -08:00
tokens.go Implement structured token binding 2017-02-08 14:10:16 -08:00
tokens_test.go Implement structured token binding 2017-02-08 14:10:16 -08:00