(PUP-2859) Specify call by position/name
(PUP-2859) Specify that a default value expression may not add variables

define foo($a = ($b = 10)) { }

should not be allowed
(PUP-2859) Add reference to PUP-1985
(PUP-2859) Make corrections to terms Call-by => Pass-by

The terms for "by-name", and "by-position" should be "pass-by" instead
of "call-by" since that is a different CS concept.

This also makes the grammar snippet for parameters comply with the same
snippet elsewhere in the specification.

The mention of "private" is removed.
Merge pull request #4 from hlindberg/PUP-2859_call-by-name-vs-call-by-position

(PUP-2859) Specify call by position/name
(PUP-511) Remove Non- and Q-Values

The language is getting fixed up so that there isn't any need for
Non-Value or Q-Value expressions. Q-Values are handled by just
specifying the precedence rules and depending on that. Non-Values are
going away by instead defining a value for every expression.
(maint) Correct word for "commutative"

The property in which changing the position of the operands does not
change the result of the operation is called the "commutative property".
(PUP-511) Remove references to Q-Value

This removes a few references to Q-Values, which are going away. It also
has some small style cleanups.
(PUP-511) Remove Non-Value expressions

This removes the final references to non-value producing expressions.
(PUP-511) Specify resource expressions

This brings the specification of resource expressions in line with the
work done for PUP-2898 as well as clarifying some of the semantic
constraints on the expressions (no duplicate titles, no duplicate
attributes, etc.)
(maint) Add information for Default type

The default expression was given the type Default, but we forgot to add
it to the language specification.
Merge pull request #14 from zaphod42/update/master/pup-511-specify-resource-expressions

(PUP-511) specify resource expressions
(PUP-511) Allow nested arrays in titles

Previously there was a disconnect between the implemented behavior and
the specified behavior. The specification did not allow arbitrarly
nested arrays of titles (e.g. `[[title1], [[title2], default]]`), but
the implementation did. After some discussion it was determined that the
implementation's behavior is desired and so should be allowed.

This updates the language spec to allow nesting of arrays for titles.
This is specified by using a special type specification in the grammar
that relies on generic, recursive types. Although such a capability
doesn't exist in the puppet type system, the expression here should be
clear enough.
Merge pull request #15 from zaphod42/update/master/pup-511-specify-resource-expressions

(PUP-511) Allow nested arrays in titles
(PUP-2972) Remove += and -=

These operators are being removed because users find them confusing.
There is no loss of power in the language, however, because they were
just shortcuts for . = . + . and . = . - .
Merge pull request #16 from zaphod42/issue/master/pup-2972-remove-plussignment

(PUP-2972) Remove += and -=
Add a (tentative / first cut) of an executable specification model.

This adds an ecore model (+ diagram in source and PNG form) of
a specification language / model that can be used to describe Puppet
Language assertions / expectancies of parse results (resulting AST tree,
and validation/diagnostics).

This model is experimental at this point.
Add type declaration to attritute Test/Name in ecore model

The ecore:EAttribute for the name feature of the Test class was
missing its type. This commit sets the type to EString.
Merge pull request #17 from puppetlabs/add-missing-type

Add type declaration to attritute Test/Name in ecore model
(maint) Correct LanguageSpec ecore model