pulumi/pkg
joeduffy 7b0dc8ee8d Overhaul names versus tokens
I was sloppy in my use of names versus tokens in the original AST.
Now that we're actually binding things to concrete symbols, etc., we
need to be more precise.  In particular, names are just identifiers
that must be "interpreted" in a given lexical context for them to
make any sense; whereas, tokens stand alone and can be resolved without
context other than the set of imported packages, modules, and overall
module structure.  As such, names are much simpler than tokens.

As explained in the comments, tokens.Names are simple identifiers:

    Name = [A-Za-z_][A-Za-z0-9_]*

and tokens.QNames are fully qualified identifiers delimited by "/":

    QName = [ <Name> "/" ]* <Name>

The legal grammar for a token depends on the subset of symbols that
token is meant to represent.  However, the most general case, that
accepts all specializations of tokens, is roughly as follows:

    Token       = <Name> |
                  <PackageName>
                    [ ":" <ModuleName>
                        [ "/" <ModuleMemberName>
                            [ "." <Class MemberName> ]
                        ]
                    ]

where:

    PackageName         = <QName>
    ModuleName          = <QName>
    ModuleMemberName    = <Name>
    ClassMemberName     = <Name>

Please refer to the comments in pkg/tokens/tokens.go for more details.
2017-01-19 17:57:20 -08:00
..
cmdutil Begin overhauling semantic phases 2017-01-18 12:18:37 -08:00
compiler Overhaul names versus tokens 2017-01-19 17:57:20 -08:00
config Begin overhauling semantic phases 2017-01-18 12:18:37 -08:00
diag Implement diag.Diagable on MuIL AST nodes 2017-01-17 18:01:11 -08:00
encoding Begin overhauling semantic phases 2017-01-18 12:18:37 -08:00
graph Begin overhauling semantic phases 2017-01-18 12:18:37 -08:00
pack Overhaul names versus tokens 2017-01-19 17:57:20 -08:00
tokens Overhaul names versus tokens 2017-01-19 17:57:20 -08:00
util Begin overhauling semantic phases 2017-01-18 12:18:37 -08:00
workspace Overhaul names versus tokens 2017-01-19 17:57:20 -08:00