Primary expressions

Primary expressions include the simplest forms of expressions. primary-expression : array-creation-expressionprimary-no-array-creation-expressionprimary-no-array-creation-expression : literalsimple-nameparenthesized-expressionmember-accessinvocation-expressionelement-accessthis-accessbase-accesspost-increment-expressionpost-decrement-expressionobject-creation-expressiondelegate-creation-expressiontypeof-expressionsizeof-expressionchecked-expressionunchecked-expression
Primary expressions are divided between array-creation-expressions and primary-no-array-creation-expressions. Treating array-creation-expression in this way, rather than listing it along with the other simple expression forms, enables the grammar to disallow potentially confusing code such as object o = new int[3][1]; which would otherwise be interpreted as object o = (new int[3])[1];